« 1 2 »
Autor Zpráva
divady
Profil
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 *
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
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
ale na starym hostingu to fungovalo
takhle vypadaji
 <TR><TD>Cena: <TD><STRONG>".c_nf($res[cena])."&nbspKč</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
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
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
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);
tak to dám kam?
Tori
Profil
Za ř.40.
divady
Profil
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
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
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
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
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
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
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
dobře, ale když to bude Undefined index, tak řešení by mělo být podobné jako u Undefined constant ne?
Tori
Profil
ne
divady
Profil
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");
bych to mohl vyřešit takto?
elseif (!isset($_GET['mojeudaje'])){$_GET['mojeudaje.php']='';}
doufám že to mam napsané správně. Děkuji za případnou pomoc
Tori
Profil
spíš elseif (!empty($_GET['mojeudaje'])) require_once ("mojeudaje.php");
divady
Profil
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
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
Tori:
takže stačí pouze když to dám do uvozovek je to tak?
např: $barva = 'zelena';
Tori
Profil
ano
divady
Profil
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
if (isset($_POST['form']) && $_POST['form'] == 'poptávka')
Anebo celou část se zpracováním formuláře obalit do podmínky, aby se prováděla jen pokud je form. odeslaný - pak by tam (s výjimkou checkboxů) nemuselo být isset.
divady
Profil
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
Na starém bylo vypnuté zobrazování chyb + novější verze PHP.
« 1 2 »

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