stian123 Skrevet 8. august 2011 Del Skrevet 8. august 2011 (endret) Hei! Jeg har laget en gjestebok, men har ikke kunnskap nok til å lage en selv. Fulgte derfor tourialen til phpeasystep Har laget en DB som vist i tourialen, og tre sider addguestbook.php, viewguestbook.php og guestbook.php guestbook.php kjører addguestbook.php der spørringen min mysql foregår. mysql_connect("$host", "$username", "$password")or die("cannot connect server "); mysql_select_db("$db_name")or die("cannot select DB"); $datetime=date("y-m-d h:i:s"); //date time $sql="INSERT INTO $tbl_name(name, email, comment, datetime) VALUES('$name', '$email', '$comment', '$datetime')"; $result=mysql_query($sql); //check if query successful if($result){ echo "Takk for din tilbakemelding!"; echo "<BR>"; Jeg får kontakt med DB, men får ikke lagret navn, epost eller kommentar, bare id og dato. Har kjørt med 777-rettigheter på samtlige av guestbook-filene. Noen som kan hjelpe meg? EDIT: Siden kan forøvrig vises/prøves her: http://www.labastidedelange.no/guestbook.php Endret 8. august 2011 av stian123 Lenke til kommentar
iChristian Skrevet 8. august 2011 Del Skrevet 8. august 2011 Jeg regner med at du et eller annet sted på siden din gir verdier til variablene for tilkobling til databasen? Lenke til kommentar
stian123 Skrevet 8. august 2011 Forfatter Del Skrevet 8. august 2011 Jeg regner med at du et eller annet sted på siden din gir verdier til variablene for tilkobling til databasen? Mener du der jeg kobler opp mot min DB? Ja det gjør jeg. Og får jo registrert et svar, da dato og id lagres, men jeg får ikke inn verdiene fra name, email og comment. Jeg gir jo databaseradene verdi ved $sql="INSERT INTO $tbl_name(name, email, comment, datetime) VALUES('$name', '$email', '$comment', '$datetime')"; $result=mysql_query($sql); Trenger jeg noe mer enn dette? Lenke til kommentar
stian123 Skrevet 8. august 2011 Forfatter Del Skrevet 8. august 2011 Jeg regner med at du et eller annet sted på siden din gir verdier til variablene for tilkobling til databasen? Mener du der jeg kobler opp mot min DB? Ja det gjør jeg. Og får jo registrert et svar, da dato og id lagres, men jeg får ikke inn verdiene fra name, email og comment. Jeg gir jo databaseradene verdi ved $sql="INSERT INTO $tbl_name(name, email, comment, datetime) VALUES('$name', '$email', '$comment', '$datetime')"; $result=mysql_query($sql); Trenger jeg noe mer enn dette? Jeg lurer på om feilen ligger i at jeg ikke klarer å få med meg verdiene fra form'ene videre til neste side, og at de derfor blir blanke. Noen som vet noe om dette? Lenke til kommentar
Thomas. Skrevet 8. august 2011 Del Skrevet 8. august 2011 Jeg lurer på om feilen ligger i at jeg ikke klarer å få med meg verdiene fra form'ene videre til neste side, og at de derfor blir blanke. Noen som vet noe om dette? Hvis formen din har en input som f.eks ser slik ut: Ditt navn: <input type="text" name="navn"> Må du bruke $_POST['navn'] på neste siden for og få ut verdien av feltet (vi skriver navnet på input mellom brakettene i $_POST[]). Lenke til kommentar
stian123 Skrevet 8. august 2011 Forfatter Del Skrevet 8. august 2011 Hvis formen din har en input som f.eks ser slik ut: Ditt navn: <input type="text" name="navn"> Må du bruke $_POST['navn'] på neste siden for og få ut verdien av feltet (vi skriver navnet på input mellom brakettene i $_POST[]). Du mener i addguestbook.php? Hvor i denne koden må denne da? <?php $host="****************"; // Host name $username="***********"; // Mysql username $password="***********"; // Mysql password $db_name="************"; // Database name $tbl_name="guestbook"; // Table name // Connect to server and select database. mysql_connect("$host", "$username", "$password")or die("cannot connect server "); mysql_select_db("$db_name")or die("cannot select DB"); $datetime=date("y-m-d h:i:s"); //date time $sql="INSERT INTO $tbl_name(name, email, comment, datetime) VALUES('$name', '$email', '$comment', '$datetime')"; $result=mysql_query($sql); //check if query successful if($result){ echo "Takk for din tilbakemelding!"; echo "<BR>"; echo "<a href='viewguestbook.php'>Til gjestebok</a>"; // link to view guestbook page } else { echo "ERROR"; } mysql_close(); ?> Lenke til kommentar
Thomas. Skrevet 8. august 2011 Del Skrevet 8. august 2011 Samme hvor, bare før $sql="INSERT INTO $tbl_name(name, email, comment, datetime) VALUES('$name', '$email', '$comment', '$datetime')"; Lenke til kommentar
stian123 Skrevet 8. august 2011 Forfatter Del Skrevet 8. august 2011 Samme hvor, bare før $sql="INSERT INTO $tbl_name(name, email, comment, datetime) VALUES('$name', '$email', '$comment', '$datetime')"; Får bare en blank side når jeg setter inn $_POST['name'] $_POST['email'] $_POST['comment'] Lenke til kommentar
Thomas. Skrevet 8. august 2011 Del Skrevet 8. august 2011 Samme hvor, bare før $sql="INSERT INTO $tbl_name(name, email, comment, datetime) VALUES('$name', '$email', '$comment', '$datetime')"; Får bare en blank side når jeg setter inn $_POST['name'] $_POST['email'] $_POST['comment'] Ja, du mangler variabelen du bruker i spørringen og ;. $name = $_POST['name']; $email = $_POST['email']; $comment = $_POST['comment']; $datetime = date('d, M - Y || H:i:s'); $sql="INSERT INTO $tbl_name(name, email, comment, datetime) VALUES('$name', '$email', '$comment', '$datetime')"; $result=mysql_query($sql); Lenke til kommentar
Terrasque Skrevet 9. august 2011 Del Skrevet 9. august 2011 legg merke til at du bør kjøre mysql_real_escape_string på verdiene før du dytter de inn i databasen. Og du bør også kjøre de igjennom htmlspecialchars før de vises på siden. Det vil hjelpe en del på sikkerheten, hovedsaklig hindre SQL injection og XSS. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå