Autor | Zpráva | ||
---|---|---|---|
Dark Profil * |
Ahote. Nainstaloval som si EasyPHP, vsetko ide, ALE mam jeden problem.. spravil som si taky chat a pri kolonke kde pisem spravu to vyhadzuje " Notice: Undefined variable: sprava in c:\internet\chat\form.php on line 8 "
Ked ale poslem nejaky text na ten chat tak sa normalne napise.. ono to v podstate ide, ale vyhadzuje tam toto.. neviete niekto co to je ? vsetky register_globals com som nasiel v kazdom php.ini som nastavil na On a stale to robi :( |
||
WertriK Profil * |
#2 · Zasláno: 12. 11. 2005, 19:53:58
Soupni sem kod jinak ti asi nehelpnem....
|
||
Dark Profil * |
#3 · Zasláno: 12. 11. 2005, 20:05:00
Zdrojovy kod toho chatu co mi to tam robi najdete komplet na adrese http://www.tipyatriky.sk/index.php?cat=www27&kat=8
|
||
jozob Profil |
#4 · Zasláno: 12. 11. 2005, 20:07:40
Ide o to, že používas premennú, ktorá neexistuje. Robí to aj vtedy, ak zistuješ v podmienke, akú má premenná hodnotu a pod. Skrátka vždy, keď pristupuješ k tejto premennej a nebola jej vopred pridelená hodnota, php engine nahlási poznámku (nie chybu, len poznámku), že daná premenná nebola zadefinovaná (php automaticky zadefinuje premennú pri prvom vložení hodnoty do tejto premennej).
Prvé možné riešenie tohto problému je otestovanie, či premenna existuje funkcou isset:
Druhé riešenie spočíva v editácii súboru php.ini, ktorý pri štandardnej inštalácii EasyPHP nájdeš v priečinku C:\Program Files\EasyPHP1-8\php\. Otvor ho v nejakom editore a nájdi kľúč error_reporting. Tento kľúč sa nachádza v sekcii Error handling and logging. V Tvojom prípade má error_reporting pravdepodobne hodnotu E_ALL. To znamená, že php engine hlási všetky chyby - vrátane poznámok, čo v podstate nie sú chyby. Túto hodnotu zmeň na error_reporting = E_ALL & ~E_NOTICE Po uložení súboru php.ini a reštartovaní služby Apache už nebude poznámky hlásiť. Ja osobne mám hodnotu error_reporting nastavenú na E_ALL a to z jednoduchého dôvodu. Radšej si dám viac práce na ošetrení tohto problému pomocou testovania premenných funkciou isset() priamo v skripte, pretože ak robím skript, ktorý bude bežať aj na inom servery, nikto mi nezaručí, že tam nebude error_reporting hlásiť aj poznámky. To je všetko... Ámen |
||
jozob Profil |
#5 · Zasláno: 12. 11. 2005, 20:12:13
Ešte doplňujem:
Tvoj kód som videl až teraz, takže: Celú časť:
by som zmenil na:
|
||
jozob Profil |
#6 · Zasláno: 12. 11. 2005, 20:21:41
A ešte do tretice:
ešte by pre dokonalosť bolo dobré ošetriť udalosť, kedy by bola premenná $sprava zadefinovaná, ale bola by prázdna, takže podmienku by som ešte upravil pridaním otestovania, či niečo obsahuje:
|
||
Dark Profil * |
#7 · Zasláno: 13. 11. 2005, 22:02:01
Super.. Dakujem velmi pekne za taketo podrobne vysvetlenie a navrhy. Naozaj dik este raz za pomoc ;)
|
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0