Autor Zpráva
blazej44800
Profil
Zobrazuje sa mi nasledujuca chyba v php

Parse error: syntax error, unexpected T_STRING in /home/free/ic.cz/b/blazej943/root/www/spracuj.php on line 24

pomozte mi ze co znamena to t_string

dik

Moderátor Majkl578: Tvůj projev je špatně srozumitelný, piš prosím s diakritikou.
Moderátor Chamurappi: Titulek „chybova hlaska v php“ nevystihuje podstatu dotazu. Příště zkus prosím vymyslet lepší.
Leopik 2x
Profil
Skus sa pozrieť na riadok 24 (poprípade o riadok vyššie a nižšie) a prídeš na to aj sám :)
blazej44800
Profil
pls toto je ten riadok 23,24,25
skuste sa na to pozriet ze ci tam daco neobjavite

$ip = $_SERVER[REMOTE_ADDR];
$oprava = "INSERT INTO ipx (ip,a,b,c,da,db,e,f,g,h,i,j,k,l,m,n,o,p,r,s,meno,files) VALUES ('$ip','$_GET[a]','$_GET','$_GET[c]','$_GET[da]','$_GET[db]','$_GET[e]','$_GET[f]','$_GET[g]','$_GET[h]','$_GET[i]','$_GET[j]','$_GET[k]','$_GET[l]','$_GET[m]','$_GET[n]','$_GET[o]','$_GET[p]','$_GET[r]','$_GET[s]','$_GET[meno]','$xxx')";
$dooprava = mysql_query($oprava, $link);


Moderátor Majkl578: Tvůj projev je špatně srozumitelný, piš prosím s diakritikou.


Moderátor Majkl578: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
Leopik 2x
Profil
Vo values (3 z ľava) máš len $_GET ktorý ti vráti array
Majkl578
Profil
V tomto kusu kódu parse error není.

'$_GET'

Tohle je předpokládám špatně - chybí tam klíč.

Taktéž klíče polí (jako řetězec) by měly být v uvozovkách:
$ip = $_SERVER['REMOTE_ADDR'];
AM_
Profil
blazej44800:
pomozte mi ze co znamena to t_string
T_STRING je token - string, čili že překladač narazil na řetězec někde, kde jej neočekával.
Pokud se ti zobrazí parse error, většinou nemá smysl přemýšlet o přesném překladu chyby, ale prostě na dané řádce a v jejím okolí hledat syntaktickou chybu.
Hint: chyba nemusí být na daném řádku, ale klidně o několik řádků výš. Zapomenutá ukončovací uvozovka o 10 řádků výše může způsobit, že 10 následujících řádků je bráno jako stringová hodnota (špatně, ale to kompilátor neví), na dalším řádku se objeví uvozovka, která je pochopena jako ukončovací, a za ní teprve kompilátor narazí na něco, co neumí přeložit.
Příklad:
$a = 'ahoj; //chybi uvozovka, problem je zde
funkce();
cosi();
blabla();
$b = 'neco jineho'; //zde je az pro prekladac ukoncen retezec, nasleduje neznamy identifikator "neco", u ktereho kompilator zahlasi chybu. Viz barevne zvyrazneni kodu


Hint 2: Pokud chybu nemůžeš najít, zkus kód rozdělit na více řádků nebo kousky umazávat - zjistíš přesněji, kde máš hledat problém.
AM_
Profil
Majkl578:
Taktéž klíče polí (jako řetězec) by měly být v uvozovkách:
divil jsem se tomu, ale při inline zapisování proměnných do stringů se klíč nedává do uvozovek.
'...'.$_GET['test'].' ...'
je totéž co "...$_GET[test] ...", ačkoli to druhé je nepěkný zápis, chyba to není.
Majkl578
Profil
AM:
Je tomu tak (bohužel), konkrétně jsem narážel na první řádek s REMOTE_ADDR. Souhlasím, že je to nepěkné. Navíc je to celé náchylné k SQL injection.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0