Autor | Zpráva | ||
---|---|---|---|
hal_sk Profil |
#1 · Zasláno: 19. 1. 2009, 08:58:29
Zdravím.
Ako nastavím php.ini, aby nezobrazovalo chybu pri prázdnej premennej? |
||
Joker Profil |
#2 · Zasláno: 19. 1. 2009, 09:18:48
Prázdná proměnná nevyhodí chybu, ale poznámku.
Jde vypnout zobrazování poznámek v error_reporting, ovšem to vypne i jiné poznámky. Jinak "nejčistší" řešení je ve skriptu používat isset() nebo empty() pro odchycení prázdných proměnných. |
||
Majkl578 Profil |
#3 · Zasláno: 19. 1. 2009, 10:09:29
error_reporting E_ALL ^ E_NOTICE
|
||
hal_sk Profil |
#4 · Zasláno: 19. 1. 2009, 10:47:35
Majkl578
error_reporting E_ALL ^ E_NOTICE Hmm, dal som to, všade kde som mohol a teraz to nevypisuje žiadne chyby, nielen pri prázdnych premenných, ale aj napr. pri volaní neznámych funkcií. |
||
srigi Profil |
#5 · Zasláno: 19. 1. 2009, 11:02:03
Majkl578
To je chybne, spravne: E_ALL & ~E_NOTICE |
||
Majkl578 Profil |
#6 · Zasláno: 19. 1. 2009, 12:39:19 · Upravil/a: Majkl578
---
|
||
srigi Profil |
#7 · Zasláno: 19. 1. 2009, 20:08:11
Majkl578
Aj ten znak pre NOT je v tomto jedinom pripade odlisny od zbytku PHP. |
||
ninja Profil |
#8 · Zasláno: 19. 1. 2009, 20:21:03
Tak ted jste me zmatli. Ktera varianta tedy:
E_ALL ^ E_NOTICE nebo E_ALL & ~E_NOTICE PHP manual na toto tema moc nesdeluje. |
||
Majkl578 Profil |
#9 · Zasláno: 19. 1. 2009, 21:58:53 · Upravil/a: Majkl578
tak dle manualu je to jak jsem rikal:
// Report all errors except E_NOTICE // This is the default value set in php.ini error_reporting(E_ALL ^ E_NOTICE); vice v manualu bitovych operaci |
||
hal_sk Profil |
#10 · Zasláno: 20. 1. 2009, 15:06:26 · Upravil/a: hal_sk
Hodnotu
E_ALL ^ E_NOTICE error_reporting Ale stále to zobrazuje "notice" pri výpise prázdnej premennej. Toto mám na Wamp localhoste. Na inom PC používam Xamp a tam je to tak, ako chcem (nezobrazuje sa "notice" pri výpise prázdnej premennej). Tak som skúsil php.ini zo Xamp nakopírovať do Wamp. Ale to potom nezobrazuje nielen "notice" ale ani chyby, atď. Bol by som vďačný ak by ste sa mi nato pozreli. |
||
Alphard Profil |
#11 · Zasláno: 20. 1. 2009, 15:19:49
problémem není prázdná proměnná, ale nenastavená proměnná
nejlepší řešení je použít funkci isset() a s nenastavenými proměnnými nepracovat pokud se vám toto řešení nelíbí a zobrazování E_NOTICE považujete jako DoubleThink a další za kreténismus, můžete php.ini nastavit takto error_reporting = E_ALL & ~E_NOTICE | E_STRICT editujte správné php.ini a nezapomeňte restartovat server |
||
hal_sk Profil |
#12 · Zasláno: 20. 1. 2009, 15:34:29
Tak som skúsil:
error_reporting = E_ALL & ~E_NOTICE | E_STRICT a "notice" to stále zobrazuje. Notice: Undefined variable: a in C:\wamp\www\pokus\index.php on line 2 Môj aktuálny php.ini je tu. |
||
joe Profil |
#13 · Zasláno: 20. 1. 2009, 15:52:58
hal_sk
A kde máš to error reporting odkomentované? |
||
Alphard Profil |
#14 · Zasláno: 20. 1. 2009, 15:53:46 · Upravil/a: Alphard
co to odkomentovat?
// tak jsem to nestihl, joe čekal celý den, aby byl rychlejší |
||
hal_sk Profil |
#15 · Zasláno: 20. 1. 2009, 15:57:18
joe
Alphard Lamím, nerozumiem, kde čo treba odkomentovať? |
||
joe Profil |
#16 · Zasláno: 20. 1. 2009, 15:58:26 · Upravil/a: joe
Alphard
:)) Mimochodem, pravděpodobně to nahradil úplně nahoře v tom komentáři :) hal_sk Na tomto řádku smaž první středník ;error_reporting = E_ALL & ~E_NOTICE | E_STRICT Mj. tohle E_ALL ^ E_NOTICE vážně nefunguje? edit: jasně, koukám ti přes rameno ;-) |
||
Alphard Profil |
#17 · Zasláno: 20. 1. 2009, 15:59:21 · Upravil/a: Alphard
smaž ; ať tam zůstane jen
error_reporting = E_ALL & ~E_NOTICE | E_STRICT nebo to může kamkoliv dopsat jen jednou, ať se to zbytečně nemládí // joe, děláš to schválně? |
||
hal_sk Profil |
#18 · Zasláno: 21. 1. 2009, 07:50:10
joe
Alphard Tak tomu fakt nechápem. Príkaz error_reporting = E_ALL & ~E_NOTICE | E_STRICT som odkomentoval, uložil php.ini, reštartoval server, spustil skript: <?php echo $a; ?> A výsledok zas: Notice: Undefined variable: a in C:\wamp\www\pokus\index.php on line 2 |
||
joe Profil |
#19 · Zasláno: 21. 1. 2009, 11:22:55
Používej isset a empty, PHP tě naučí :)
|
||
hal_sk Profil |
#20 · Zasláno: 21. 1. 2009, 12:38:36
No budem musieť, ajtak dík.
|
||
Joker Profil |
#21 · Zasláno: 21. 1. 2009, 12:43:47
hal_sk
Jak nezobrazovat poznámky je přímo v PHP manuálu: - ve skriptu: http://cz.php.net/error-reporting - v php.ini: http://cz.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting U obou je tam přímá ukázka na vynechání poznámek. Každopádně ale předstírat, že problém neexistuje, není úplně ideální řešení problému. |
||
hal_sk Profil |
#22 · Zasláno: 21. 1. 2009, 13:33:09
Joker
Skúšal som to a zistil som že ak to uvediem do skriptu, tak to funguje. |
||
Joker Profil |
#23 · Zasláno: 21. 1. 2009, 13:39:16
V tom php.ini to taky musí fungovat- není náhodou v php.ini ještě později jiný zápis error reporting (anebo to není správný php.ini anebo to bude nějaký takový problém, bych tipoval)?
|
||
hal_sk Profil |
#24 · Zasláno: 21. 1. 2009, 14:12:24
Joker
ee Nechajme tak, vzdávam to. Prispôsobím sa zapisovaniu do skriptu. Neskôr si dám Xampp, tam je to ok. |
||
Časová prodleva: 15 let
|
0