Jeg kører Win2000 + Mysql og Php 4.2.1. Efter skift til php 4.2.1 fra 4.0.6 ( hvor det virkede fint) Får jeg denne fejl Undefined variable: ID i script <?
Variablen $ID er ikke deklareret (sikkert fordi du har den fra en submitted form fra en anden side og register_globals er sat til off) og error_reporting er sat til E_ALL, fordi den nye installation har pillet ved din php.ini
register_globals gør at alle variabler fra submittede forms o.l. bliver til globale variabler (http://server/lal.php?noget=andet giver en variabel der hedder noget i lal.php) og error_reporting sætter niveauet for fejl php-scriptene giver videre til dig. Normalt er det en pestilens hvis det giver fejl under E_PARSE...
Eller bare vænne sig til at register_globals er sat til off, hvilket er gjort af sikkerhedsmæssige hensyn (hovedsagligt), og som en sidegevinst gør nogle ting nemmere :)
det jeg kan se som problemet i den nye version er, at har man et kæmpe site, kodet på "gammeldags" manér, og ens udbyder ændrer register_globals til Off, så skal man ligepludselig til at i gang med at kode en hulens masse om
jeg har prøvet at indsætte $Row = mysql_fetch_array(mysql_query("SELECT * FROM $MySQLtable WHERE ID = '" $_POST['ID'] "'")); Så får jeg denne fejl i linjen parse error, unexpected T_VARIABLE in ????????????
???????????? er ikke med i fejlen. Jeg har prøvet at sætte "globals = on" og så virker det gammel script igen. Men det hjælper mig ikke så meget, da min udbyder kører med "globals = off". Jeg vil arbejde videre med det, men håber der er en der kan hjælpe mig, med at løse dette problem. I Mysql databasen er ID sat = Int, håber det kan hjælpe.
Du skal bare huske at hvis variabolen kommer fra en form skal du enten bruge $_POST['formfeltetsnavn'] eller $_GET['formfeltetsnavn'] alt efter om du har skrevet method="post" eller method="get" du kan ikke længere bare bruge $formfeltetsnavn
Desuden findes der også en rækker andre arrays, du muligvis får brug for
$_COOKIE[] Til cookies $_SESSION[] Til sessions $_SERVER[] til ting som f.eks. PHP_SELF
Omkring den linie, så prøv at lav den om sådan her
$query = "SELECT * FROM $MySQLtable WHERE ID = '" . $_POST['ID'] . "'" ; $Row = mysql_fetch_array(mysql_query($query));
med disse linier indsat: $query = "SELECT * FROM $MySQLtable WHERE ID = '" . $_POST['ID'] . "'" ; $Row = mysql_fetch_array(mysql_query($query)); får jeg denne fejl. Parse error: parse error, unexpected T_VARIABLE in.
Scriptet virker som en link counter til mine sider, bliver kaldt på denne måde: <a href="ReDirector.phtml?ID=28" target="mainFrame"> Jeg har også prøvet med $_GET['ID'], men får samme fejl. Jeg har søgt rundt på php.net, for at finde den rigtige løsning på problemet, men uden det store held. Jeg håber med de nye oplysninger, at det kan hjælpe på løsningen.
Jeg har selv løst problemet, ved at indsætte dette : $ID = isset($_REQUEST["ID"]) ? $_REQUEST["ID"] : ""; Så nu virker det med PHP 4.2.1, så jeg lukke spørgsmålet.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.