PHP script probleem
Hallo iedereen,
Ik heb een php script, dat gemaakt is voor PHP4.2
Nu wil ik dit script gebruiken op een server met PHP5.3.8
Als het script goed zou zijn, dan zou ik niet zoveel problemen moeten hebben, maar het script is niet zo goed.
Ik heb problemen met dit stukje code:
if($action=="hiscore")
Ik krijg de fout melding in mijn logs:
PHP Notice: Undefined variable: action in C:\\Program Files\\blabla on line 180
Line 180 is dat stukje code.
Ik heb op de server al Register_global op on gezet. mijn phpinfo zegt ook dat het aan staat.
Weet iemand misschien iets precieser wat mijn probleem is? Ik neem aan dat de syntax niet klopt, en hoop dat er een simpele aanpassing voor is.
Alvast bedankt
Roel
Ik heb een php script, dat gemaakt is voor PHP4.2
Nu wil ik dit script gebruiken op een server met PHP5.3.8
Als het script goed zou zijn, dan zou ik niet zoveel problemen moeten hebben, maar het script is niet zo goed.
Ik heb problemen met dit stukje code:
if($action=="hiscore")
Ik krijg de fout melding in mijn logs:
PHP Notice: Undefined variable: action in C:\\Program Files\\blabla on line 180
Line 180 is dat stukje code.
Ik heb op de server al Register_global op on gezet. mijn phpinfo zegt ook dat het aan staat.
Weet iemand misschien iets precieser wat mijn probleem is? Ik neem aan dat de syntax niet klopt, en hoop dat er een simpele aanpassing voor is.
Alvast bedankt
Roel
Gesponsorde koppelingen:
Toon eens wat meer code. Een stukje ervoor en een stukje erna.
"Undefined variable: action"
Dat zegt toch alles? $action is blijkbaar niet eerder gedeclareerd en kan daarom niet geevalueerd worden.
Dat zegt toch alles? $action is blijkbaar niet eerder gedeclareerd en kan daarom niet geevalueerd worden.
Roel Veld op 23/11/2011 22:37:46:
Weet iemand misschien iets precieser wat mijn probleem is?
Alleen jijzelf kunt precies het probleem aangeven. Wij kunnen proberen je te helpen bij het vinden van een oplossing...
De informatie die je geeft is daarvoor wel heel erg beperkt, zoals bovenstaande reacties ook aangeven. En Erwin H heeft helemaal gelijk: hoe duidelijk kan je foutmelding zijn ;-)
Heb echter de laatste paar dagen diverse keren zo'n probleem voorbij zien komen.
Het bleek toen telkens te gaan om het verwerken van een formulier. Men vroeg daarbij niet op de juiste wijze de variabelen op. Dit moet, in dit geval, met $_GET['action'] of $_POST['action'] (net hoe het formulier wordt verzonden).
Gewijzigd op 23/11/2011 22:47:18 door Obelix en Idefix
Het is een stukje code uit een open-source browser game:
if($action=="hiscore") {
echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">";
echo "<html><head><title>dopewars</title><link rel=\"stylesheet\" href=\"default.css\" type=\"text/css\"></head><body><h3>dopewars - high scores</h3>";
echo "<p><b>active dealers</b></p>";
$qry = "select name, score from dopewars order by score desc";
$results = $db->qry($qry);
while (list($key, $val) = each ($results)) {
echo $key+1;
echo " - " . htmlentities($val["name"]) . " (\$" . $val["score"] . ")<br>";
}
echo "<p><b>legendary dead dealers - all time high scores</b></p><p>(top 50)</p>";
$qry = "select name, score from dopescores order by score desc limit 50";
$results = $db->qry($qry);
while (list($key, $val) = each ($results)) {
echo $key+1;
echo " - " . htmlentities($val["name"]) . " (\$" . $val["score"] . ")<br>";
}
echo "<p><a href=\"$PHP_SELF\">back</a></p>";
echo "</body></html>";
exit;
Ik krijg door de eerste line dus die 500 melding. Het is ook die variable, maar ik weet dus niet hoe ik het kan verhelpen.
if($action=="hiscore") {
echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">";
echo "<html><head><title>dopewars</title><link rel=\"stylesheet\" href=\"default.css\" type=\"text/css\"></head><body><h3>dopewars - high scores</h3>";
echo "<p><b>active dealers</b></p>";
$qry = "select name, score from dopewars order by score desc";
$results = $db->qry($qry);
while (list($key, $val) = each ($results)) {
echo $key+1;
echo " - " . htmlentities($val["name"]) . " (\$" . $val["score"] . ")<br>";
}
echo "<p><b>legendary dead dealers - all time high scores</b></p><p>(top 50)</p>";
$qry = "select name, score from dopescores order by score desc limit 50";
$results = $db->qry($qry);
while (list($key, $val) = each ($results)) {
echo $key+1;
echo " - " . htmlentities($val["name"]) . " (\$" . $val["score"] . ")<br>";
}
echo "<p><a href=\"$PHP_SELF\">back</a></p>";
echo "</body></html>";
exit;
Ik krijg door de eerste line dus die 500 melding. Het is ook die variable, maar ik weet dus niet hoe ik het kan verhelpen.
Waar wordt je $action geset?
Ergens moet staan
$action = ....
Ergens moet staan
$action = ....
Code aub tussen code-tags.
Waar komt $action vandaan (volgens jou)?
Gebruik in php ' en in html " --> scheelt je een boel escapen en maakt het overzichtelijker en de kans op foute
Dit gaat volgens mij niet werken. $PHP_SELF ???
Vermoedelijk bedoel je $_SERVER['PHP_SELF']; en dat is onveilig.
Edit: Ozzie was net wat sneller (en korter).
Waar komt $action vandaan (volgens jou)?
Gebruik in php ' en in html " --> scheelt je een boel escapen en maakt het overzichtelijker en de kans op foute
Dit gaat volgens mij niet werken. $PHP_SELF ???
Vermoedelijk bedoel je $_SERVER['PHP_SELF']; en dat is onveilig.
Edit: Ozzie was net wat sneller (en korter).
Gewijzigd op 23/11/2011 22:52:11 door Obelix en Idefix



