Autor | Zpráva | ||
---|---|---|---|
divady Profil |
#1 · Zasláno: 17. 3. 2014, 19:19:52
dobrý den, dokázal by mi někdo poradit s touhle chybou?
Parse error: syntax error, unexpected '[', expecting ',' or ';' in /home/abczakazky.cz/servis.abczakazky.cz/srovnavac.php on line 324 menil jsem hosting, web normalně na starém hostingu funguje ale na novém mi to hlásí tuhle chybu. nevíte čím by to mohlo být? nic jsem němenil v kodu, takže to mělo fungovat i nadále |
||
juriad_ Profil * |
#2 · Zasláno: 17. 3. 2014, 19:25:18
Ukaž okolí zmíněné řádky. Je na novém hostingu stejná verze PHP?
|
||
divady Profil |
http://servis.abczakazky.cz/poptavka-detail-637/
koukni na to je tam toho docela dost verze na na starym hostingu byla PHP verze 5.4.4 a nanovym by mělo být podporováno také PHP verze 5xx ale neni už podporovaná verze 4 |
||
Tori Profil |
#4 · Zasláno: 17. 3. 2014, 19:43:10
Undefined constant: všechny chybné zápisy
$pole[text] opravte na $pole['text'] .
Undefined index + undefined variable znamená, že chcete pracovat s proměnnou, která nebyla ještě definovaná. Obecně je potřeba doplnit někam před chybové místo definici nějaké výchozí hodnoty, anebo celý výpočet uzavřít do podmínky, aby se provedl jen pokud proměnná existuje. Konkrétně by se dalo poradit u konkrétního příkladu. Jak vypadají řádky 85-87? |
||
divady Profil |
#5 · Zasláno: 17. 3. 2014, 19:47:39
ale na starym hostingu to fungovalo
takhle vypadaji <TR><TD>Cena: <TD><STRONG>".c_nf($res[cena])." Kč</STRONG> <TR><TD>Kraj / Okres: <TD><STRONG>".nuts2text($res[okres])[kraj]." / ".nuts2text($res[okres])[okres]."</STRONG> <TR><TD>Jméno: <TD><STRONG>$res[jmeno]</STRONG> |
||
Tori Profil |
#6 · Zasláno: 17. 3. 2014, 20:00:37
Tohle funguje až od verze PHP 5.4. V nižších musíte použít pomocnou proměnnou:
$tmp = nuts2text($res['okres']); a potom dál v kódu "<strong>" . $tmp['kraj'] . " / " . $tmp['okres'] . "</strong>" ....atd.
|
||
divady Profil |
Tori:
takže na začátek dám $tmp = nuts2text($res['okres']); a pak kde mi t háže chybu dám toto?"<strong>" . $tmp['kraj'] . " / " . $tmp['okres'] . "</strong>" ??
|
||
Tori Profil |
#8 · Zasláno: 17. 3. 2014, 20:47:30
divady:
Nevím jestli na začátek. Spíš za řádek, na kterém přiřazujete nějakou hodnotu do $res .
A ano, jen nahradíte volání funkce proměnnou. |
||
divady Profil |
#9 · Zasláno: 17. 3. 2014, 21:19:26
Tori:
takže když mám takhle začátek souboru //=========================================================== // Start session $session = new Session(new Request(new UrlScript), new Response); $session->start(); $logineu = $session->getSection('logineu'); // Rest in peace function get_prilohy($id) { global $mysql; $sql=$mysql->arrays("SELECT * FROM prilohy WHERE typ = 'poptavky' AND parent = '$id'"); if ($sql) foreach ($sql as $res) $out.="- <A HREF = \"/download.php?name=$res[tmpname]\">$res[filename]</A><BR>"; else $out="<EM>žádný soubor nepřiložen</EM>"; return $out; } function nuts2text($okresID) { global $mysql; if ($okresID!="------"){ $sql=$mysql->arrays("SELECT * from okresy WHERE nuts4='$okresID'"); if ($sql) foreach ($sql as $res){ $c[okres]=$res[nazev]; $kod=$res[kod_kraj]; } $sql=$mysql->arrays("SELECT * from kraje WHERE kod='$kod'"); if ($sql) foreach ($sql as $res) { $c[kraj]=$res[kratky_text]; } } else{ $c[okres]="nezadáno";} return $c; } global $sql,$login; $sq=$sql->query("SELECT * from poptavky WHERE ID = '$_GET[id]'"); $res=MySQL_Fetch_Array($sq); |
||
Tori Profil |
Za ř.40.
|
||
divady Profil |
#11 · Zasláno: 17. 3. 2014, 21:57:02
Tori:
bohužel to nepomohlo píše to pořád Parse error: syntax error, unexpected '>' in /home/abczakazky.cz/servis.abczakazky.cz/poptavka.php on line 86 |
||
Tori Profil |
divady:
Tak vám někde v tom řádku chybí (nebo přebývají) uvozovky okolo řetězce. Doporučuju používat editor, který umí aspoň základní barevné zvýraznění syntaxe, např. PSPad, rychleji odhalíte chybnou syntax. |
||
divady Profil |
#13 · Zasláno: 18. 3. 2014, 01:23:05
Tori:
a nemuže to být také něčím jiným? protože na starém hostingu to fungovalo, a na novém ne. Když poupravím sintaxi, tak pak vyskakuje chyba s nette. |
||
Tori Profil |
#14 · Zasláno: 18. 3. 2014, 01:26:39
divady:
„pak vyskakuje chyba s nette.“ Jaká? Jinak standardně je Nette FW vyvíjený pro PHP 5.3, ale možná používáte nějaké rozšíření od jiných uživatelů, které počítá s vyšší verzí. |
||
divady Profil |
#15 · Zasláno: 18. 3. 2014, 19:07:35
Tori:
Fatal error: Uncaught exception 'Nette\InvalidStateException' with message 'Cannot set cookie after HTTP headers have been sent (output started at /home/abczakazky.cz/servis.abczakazky.cz/class/mysql.php:61).' in /home/abczakazky.cz/servis.abczakazky.cz/class/nette.min.php:4705 Stack trace: #0 /home/abczakazky.cz/servis.abczakazky.cz/class/nette.min.php(4763): Nette\Http\Response->setCookie('PHPSESSID', '63637f1cb0e45f1...', 0, '/', '', false, true) #1 /home/abczakazky.cz/servis.abczakazky.cz/class/nette.min.php(4716): Nette\Http\Session->sendCookie() #2 /home/abczakazky.cz/servis.abczakazky.cz/poptavka.php(23): Nette\Http\Session->start() #3 /home/abczakazky.cz/servis.abczakazky.cz/index.php(89): require_once('/home/abczakazk...') #4 {main} thrown in /home/abczakazky.cz/servis.abczakazky.cz/class/nette.min.php on line 4705 tuto v nette se moc nevyznám. tak moc netušim |
||
Tori Profil |
#16 · Zasláno: 18. 3. 2014, 19:24:00
To znamená, že nelze poslat prohlížeči cookie, protože už byl odeslán nějaký textový výstup (a s ním i HTTP hlavičky). Tím výstupem jsou právě ty všechny předchozí chybové hlášky. Když je opravíte, zmizí i tahle chyba.
|
||
divady Profil |
#17 · Zasláno: 18. 3. 2014, 19:47:18
Tori:
aha, takže do každého souboru který mi hází chybu tak tam musim nahrát $tmp = nuts2text($res['okres']); samozdřejmě zmením proměnou, je to tak? tak že musím vyřešit všechna upozornění? http://servis.abczakazky.cz/poptavka-detail-453/ |
||
Tori Profil |
#18 · Zasláno: 18. 3. 2014, 20:14:41
No tak podle toho jakou chybu vám to hází. "Undefined index" nebo "Undefined constant" způsobuje něco úplně jiného (viz [#4]).
|
||
divady Profil |
#19 · Zasláno: 18. 3. 2014, 20:23:06
dobře, ale když to bude Undefined index, tak řešení by mělo být podobné jako u Undefined constant ne?
|
||
Tori Profil |
#20 · Zasláno: 18. 3. 2014, 21:11:15
ne
|
||
divady Profil |
#21 · Zasláno: 18. 3. 2014, 21:34:38
Tori:
třeba při hlášce Notice: Undefined index: mojeudaje in /home/abczakazky.cz/servis.abczakazky.cz/index.php on line 78 tady přikládám kiod v indexu elseif ($_GET[mojeudaje]) require_once ("mojeudaje.php"); elseif (!isset($_GET['mojeudaje'])){$_GET['mojeudaje.php']='';} |
||
Tori Profil |
#22 · Zasláno: 18. 3. 2014, 22:05:20
spíš
elseif (!empty($_GET['mojeudaje'])) require_once ("mojeudaje.php");
|
||
divady Profil |
#23 · Zasláno: 18. 3. 2014, 22:24:46
Tori:
děkuji, takže chybu Undefined index: vyřeším takto elseif (!empty($_GET['mojeudaje'])) require_once ("mojeudaje.php");
a chybu Undefined constant: takto $tmp = nuts2text($res['okres']); jen abch věděl jestli to dělám správně
|
||
Tori Profil |
#24 · Zasláno: 18. 3. 2014, 22:42:54
divady:
Undefined constant znamená jenom to, že někde používáte řetězec, který není v uvozovkách/apostrofech. Např.: $barva = zelena; nebo $GET[mojeudaje] .
To, co píšete, bylo jen náhradní řešení pro starší verzi PHP, která házela chybu "Parse error: syntax error, unexpected '['". |
||
divady Profil |
#25 · Zasláno: 18. 3. 2014, 23:03:32
Tori:
takže stačí pouze když to dám do uvozovek je to tak? např: $barva = 'zelena';
|
||
Tori Profil |
#26 · Zasláno: 18. 3. 2014, 23:11:31
ano
|
||
divady Profil |
#27 · Zasláno: 19. 3. 2014, 00:39:53
Tori:
ještě se omlouvám ale potřeboval bych poradit tady u tohoto řádku mi to píše Undefined index: page in /home/abczakazky.cz/servis.abczakazky.cz/index.php on line 80 řádek vypadá takto elseif ($_GET['page']=="loginform") require_once ("loginform.php"); ale nemužu tam použít tot (!empty použít, protože to vyhazuje pak fatal error
to samí na dalším řádku if ($_POST['form']=="poptávka") require_once ("odeslano.php"); elseif ($_POST['form']=="registrace") require_once ("registrace.php"); |
||
Tori Profil |
#28 · Zasláno: 19. 3. 2014, 00:47:08
if (isset($_POST['form']) && $_POST['form'] == 'poptávka') |
||
divady Profil |
#29 · Zasláno: 19. 3. 2014, 01:14:04
Tori:
dobře, tak ja se to pokusim vše opravit zítra. jen jsem se chtěl zeptat, když to puvodní fungovalo na starém hostingu proč to nefunguje na novém? |
||
Tori Profil |
#30 · Zasláno: 19. 3. 2014, 07:57:05
Na starém bylo vypnuté zobrazování chyb + novější verze PHP.
|
||
Téma pokračuje na další straně.
|
0