Autor Zpráva
Mix
Profil *
Co znamená hláška... Notice: Undefined variable

Na webu mi to chodí, ale pod localhostem mi to vyhauzuje todle.

Ví někdo co to je a proč to dělá?
Hugo
Profil
Protoze pouzivas napr. v podmince neinicializovanou promennou.

Staci nastavit v php.ini
error_reporting = E_ALL & ~E_NOTICE

a restartovat apache
Mix
Profil *
díky.. zkusím to
Hugo
Profil
Mix

Ale je lepsi a bezpecnejsi vsechny promenne pred pouzitim inicializovat a pak ti to pobezi i bez zmeny konfigurace.
Mix
Profil *
Tomu nerzumím... proč mi to teda hlásí tu NOTICE, když to běhá v pohodě. Proč je lepší to mít zapnutý?
Tomik
Profil
Pro ladění je lepší to mít zapnuté, protože script hlásí i sebemenší chybku, pro ostrý provoz se to doporučuje vypnout (a taky má většina hostingů vypnuté).
Ta hláška říká, že nebyla definována proměnná, je ji tedy potřeba zinicializovat...
Mix
Profil *
O.K.

Tak co mi třeba říká todle.. žádnou chybu tam nevidim...

Notice: Undefined variable: send in c:\inet_srv\http\doc_root\anketa.php3 on line 11

<?
//pro pripad ze jeste nebyl odeslan formular
if (File_Exists ("anketa.dat")):
$fp = FOpen("anketa.dat", "r");
$data_anketa = FRead ($fp, FileSize("anketa.dat"));
List($ano,$ne) = Explode("#", $data_anketa);
endif;

//formular jiz byl odeslan a bylo hlasovano ano nebo ne
//soubory jeste neexistuji
if ($send=="ano" && ($anketa == "ano" || $anketa == "ne")):
if (!File_Exists ("anketa.dat")):
$ano = "0";
$ne = "0";
//zapis do anketa.dat
$fp = FOpen("anketa.dat", "w");
FWrite ($fp, $ano ."#" . $ne);
FClose($fp);
endif;[b][/b]
Hugo
Profil
Ale to uz sem ti psal, ta promenna $send neni nikde inicializovana, takze ji nemuzes testovat. Ale chyba je pouze NOTICE, to znamena, ze skript jede dal. Je to ovsem potencialni bezpecnostni dira, protoze pokud mas zaple register_globals, tak se da hodnota teto promenne ovlivnit pres URL
Mix
Profil *
Jo už to chápu... díky
SMtex
Profil *
jinak.. staci to zmenit jen na error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT a taky to jde...
krteczek
Profil
prostě je duležité abyste se naučili všechny proměnné které ve skriptu použijete nejprve definovat a potom k nim mužete přistupovat.


$ano="";//definice proměnné
$neco="";
if(!empty($_REQUEST["ano"]))//misto pole request použijte klidně jen pole GET nebo POST
{
$ano =$_REQUEST["ano"];//zde ji předám obsah
}


prostě tímto zpusobem, navíc je třeba ošetřovat co ta proměnná obsahuje a podle toho řešit,co dál s ní
krteczek
Toto téma je uzamčeno. Odpověď nelze zaslat.