18. oktober 2005 - 09:05Der er
15 kommentarer og 1 løsning
Fejl i PHP formular
Hej gutter Jeg er ikke så stiv i at programere og har derfor indtastet dette fra et hæfte. jeg får denne fejl nogle gange og kan godt se at det er et udefineret index fejl, men hvad gør jeg for at løse problemet. Hele scriptet har jeg lagt efter disse fejl linier.
Notice: Undefined index: navn in g:\www\malka\svarskema.php on line 18 Notice: Undefined index: natbord in g:\www\malka\svarskema.php on line 19 Notice: Undefined index: favoritmad in g:\www\malka\svarskema.php on line 20
HER ER Scriptet.
<!doctype html public "-//W3C//DTD HTML 4.0 //EN"> <html> <head> <title>Svarskema malka</title> </head> <body>
<!-- Her er formularen --> <form name="svarskema" method="post" action="svarskema.php"> <p>Skriv dit navn her: <input type="text" name="navn" size="50" maxlength="50"></p> <p>Hvilken bog ligger på dit natbord lige nu? <textarea name="natbord"></textarea></p> <p>Favoritmad for tiden? <textarea name="favoritmad"></textarea></p> <input type="submit" name="send" value="Del dine oplysninger med andre"> </form>
// Skab forbindelse til databasen her mysql_connect("localhost", "malka", "libris") or die(mysql_error()); mysql_select_db("mindb") or die(mysql_error());
//Indsæt indholdet af formularfelterne i databasen mysql_query("INSERT INTO svarskema(svarID, navn, natbord, favoritmad) values(0, '$navn', '$natbord', '$favoritmad')"); ?> </body> </html>
// Skab forbindelse til databasen her mysql_connect("localhost", "malka", "libris") or die(mysql_error()); mysql_select_db("mindb") or die(mysql_error());
//Indsæt indholdet af formularfelterne i databasen mysql_query("INSERT INTO svarskema(svarID, navn, natbord, favoritmad) values(0, '$navn', '$natbord', '$favoritmad')");
I stedet for REQUEST, synes jeg du bør bruge $_POST, eller $_GET Og du bør også tjekke for sql-injection, så der ikke er nogen som laver "halløj" med din DB via formularen.
// Skab forbindelse til databasen her mysql_connect("localhost", "malka", "libris") or die(mysql_error()); mysql_select_db("mindb") or die(mysql_error());
//Indsæt indholdet af formularfelterne i databasen mysql_query("INSERT INTO `svarskema` (`svarID`, `navn`, `natbord`, `favoritmad`) VALUES ('', '". my_addslashes($_POST["navn"]) ."', '". my_addslashes($_POST["natbord"]) ."', '". my_addslashes($_POST["favoritmad"]) ."')") or die (mysql_error());
Og faktisk, så gerne smide det i toppen af scriptet, inden du udskriver noget, og lav en header tilbage til filen som viser formularen. Ellers vil man kunne trykke F5 og så bliver det gemt en gang mere :O)
// Skab forbindelse til databasen her mysql_connect("localhost", "malka", "libris") or die(mysql_error()); mysql_select_db("mindb") or die(mysql_error());
//Indsæt indholdet af formularfelterne i databasen mysql_query("INSERT INTO `svarskema` (`svarID`, `navn`, `natbord`, `favoritmad`) VALUES ('', '". my_addslashes($_POST["navn"]) ."', '". my_addslashes($_POST["natbord"]) ."', '". my_addslashes($_POST["favoritmad"]) ."')") or die (mysql_error());
header("Location:". $_SERVER["PHP_SELF"]); exit;
} ?><!doctype html public "-//W3C//DTD HTML 4.0 //EN"> <html> <head> <title>Svarskema malka</title> </head> <body>
<!-- Her er formularen --> <form name="svarskema" method="post" action="svarskema.php"> <p>Skriv dit navn her: <input type="text" name="navn" size="50" maxlength="50"></p> <p>Hvilken bog ligger på dit natbord lige nu? <textarea name="natbord"></textarea></p> <p>Favoritmad for tiden? <textarea name="favoritmad"></textarea></p> <input type="submit" name="send" value="Del dine oplysninger med andre"> </form> </body> </html>
Jeg har nu gennemlæst dine rettelser og fundet de 2 } som du har sat en i den linie som er indsat og en afsluttende forneden,meget mærkeligt at hun (Malka) ikke har lavet det.
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.