Stránka 1 z 2

chyby v PHP

Napsal: 15 bře 2011 22:16
od Honza.T3
Dobrý den,
může mi někdo vysvětlit proč skripty napsané v práci mi tam fungují, ale když si to donesu domů, tak to háže chyby typu Notice: undefined.....
apod. Mam doma server konfigurovaný ručně, ale i když si nainstaluji Complex web server, přesně ten co je v práci, tak to ty chyby vyhazuje také. Neví někdo v čem tohle může být? Díky

Re: chyby v PHP

Napsal: 15 bře 2011 22:48
od Stene
Pokud na jednom místě fungují a na druhém ne, bude to asi špatně nastavené - nemyslíš?

Re: chyby v PHP

Napsal: 15 bře 2011 22:49
od General
Dej nám kód a co ti to vyhazuje, jako příklad, pak řeknem víc.. Může to bejt taky konfigurací. Jestli ti hází e_notice tak neprogramuješ "čistě" :D - např. klíče pole se dávaj do uvozovek, nebo proměnný se maj před použitim definovat..

Re: chyby v PHP

Napsal: 16 bře 2011 08:33
od Honza.T3
například na tomhle řádku:
echo "<tr><td bgcolor=\"white\">Datum</td><td bgcolor=\"white\"><input type=\"text\" name=\"den\" size=\"2\" value=\"".SUBSTR($row->datum,8,2)."\">. <input type=\"text\" name=\"mesic\" size=\"2\" value=\"".SUBSTR($row->datum,5,2)."\">. <input type=\"text\" name=\"rok\" size=\"4\" value=\"".SUBSTR($row->datum,0,4)."\"></td></tr>";
vyhodí u každého toho row chybu Notice: Undefined index a Notice: Trying to get property of non-object in row.. chyb je samozřejmě víc, ale podobného typu.
Je ale zajímavé, že i když si na notebooku nainstaluji stejnej complex web server jako je v práci, tak to vyhazuje chyby taky, stejně jako na mnou konfigurovaným serveru.

Re: chyby v PHP

Napsal: 16 bře 2011 10:02
od Stene
Pokud nepřidáš celý kód, těžko poradíme.
Nechápu jak ti to v práci může fungovat. SUBSTR($row->datum,8,2)

Co máš uložené v proměnné $row nevíme. Co pomocí toho oříznutí chceš docílit taky nevíme. Pokud do $row ukládáš datumy, proč to nezpracuješ rovnou ve funkci date?

Re: chyby v PHP

Napsal: 16 bře 2011 10:04
od General
Když ti to vyhazuje chyby, varování.. tak je to dobře, máš je zapnutý a dozvíš se o nich. V uvedenym kódu musí bejt $row objekt a musí obsahovat vlastnost 'datum' abys moch zavolat $row->datum. Parsování datumu podle pozic písmen je prasárna, udělej to třeba takhle:

Kód: Vybrat vše

list($den, $mesic, $rok, $hodina, $minuta) = preg_split('/\.|\s|:/', 'd.m.Y H:i');
echo "$den $mesic $rok $hodina $minuta";

nebo jak píše Stene, funkcí Date()

Kód: Vybrat vše

//např. den
echo date('d', strtotime($row->datum));

Re: chyby v PHP

Napsal: 16 bře 2011 19:23
od Honza.T3
To s tím datem máš pravdu, to jsem tady měl nějakou kravinu.. Zkrátka ten PC na kterým to funguje je asi nakonfigurován správně, protože to tak funguje i na ostrém provozu. Co teda může být jinak na PC na kterým to nejede? Nebo na tom ntb, když je tam úplně stejná verze Complex web serveru?

Re: chyby v PHP

Napsal: 16 bře 2011 20:05
od General
Dej kód a napiš co ti to hlásí když jak řikáš to nejede, jinak ti nemůžem pomoct. Nastavení PHP najdeš v souboru PHP.INI, to porovnávej.

Re: chyby v PHP

Napsal: 16 bře 2011 21:05
od Honza.T3
Ano v php.ini bylo jediný rozdlíný register_blobals. Po zapnutí už to trošku jede líp. Přesto to pořád vypisuje chybové hlášení, například po odeslání formuláře

Kód: Vybrat vše

Notice: Undefined variable: popis1 in C:\dev\www\administrace\aktuality.php on line 15
Notice: Undefined variable: popis2 in C:\dev\www\administrace\aktuality.php on line 21
Notice: Undefined variable: popis3 in C:\dev\www\administrace\aktuality.php on line 27
Notice: Undefined variable: popis4 in C:\dev\www\administrace\aktuality.php on line 33
Notice: Undefined variable: popis4 in C:\dev\www\administrace\aktuality.php on line 39
Notice: Undefined variable: fotky in C:\dev\www\administrace\aktuality.php on line 121
Notice: Undefined variable: soubory in C:\dev\www\administrace\aktuality.php on line 121
Aktualitu se nepodařilo vložit

nebo před odesláním formuláře nad ním je

Kód: Vybrat vše

Notice: Undefined variable: idF in C:\dev\www\administrace\aktuality.php on line 136

rozdílné nastavení v serverech není, bylo jen to register_blobals, tak nechápu proč to někde funguje bez problému a vypisování těchto chyb a jinde ne. Psát sem kód asi stejně nemá smysl.

Re: chyby v PHP

Napsal: 16 bře 2011 21:09
od jackm
Divíš se?Nemáš definované proměnné, takže je definuj například $promenna=0; a potom kontroluj if(isset($prom)){//..}, takto tvůj kód vyžaduje proměnné, které nejsou definovány(nemají hodnotu), tak po PHP nemůžeš chtít aby s nimi pracovalo.A při získávání je nezapomeň získávat dle metody $_GET['prom']; nebo $_POST['prom'];.

Re: chyby v PHP

Napsal: 16 bře 2011 21:23
od Honza.T3
Díky. Nechápu ale, jak to, že to na jednom PC funguje? Přitom nastavení mají stejné?

Re: chyby v PHP

Napsal: 16 bře 2011 21:41
od General
Ono to funguje na obou (pravděpodobně), jenže na tom 1 jsou e_notice vyplý tak ti je to nevyhazuje. To že je to vyhazuje tam kde je zobrazování zaplý je jen ukázka jak prasácky programuješ (sorry) :D