xzibiz Skrevet 12. oktober 2012 Del Skrevet 12. oktober 2012 Hei Holder på med en nettside hvor jeg skal bruke checkbox i et form. Og sliter med å få lagret denne infoen i databasen, om det er 0 eller 1. Form: <form action="include/insert.php" method="post"> <fieldset> <legend>Registrer ny kunde</legend> <label class="title" for="fornavn">Fornavn: </label><input type="text" name="fornavn" /><br /> <label class="title" for="etternavn">Etternavn: </label><input type="text" name="etternavn" /><br /> <label class="title" for="telefon">Telefon: </label><input type="int" name="telefon" /><br /> <label class="title" for="epost">Epost: </label><input type="text" name="epost" /><br /> <label class="title" for="adresse">Postadresse: </label><input type="text" name="adresse" /><br /> <label class="title" for="forstehjelp">Godkjent Førstehjelpsprøve: </label><input type="checkbox" name="fortehjelp" value="1" /><br /> <br /> <input type="submit" value="Legg til" /> </fieldset> insert.php: <?php $con = mysql_connect("localhost","sql","passord"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("sql", $con); $sql="INSERT INTO medlemmer (fornavn, etternavn, telefon, epost, adresse, forstehjelp) VALUES ('$_POST[fornavn]','$_POST[etternavn]','$_POST[telefon]','$_POST[epost]','$_POST[adresse]','$_POST[forstehjelp]')"; if (!mysql_query($sql,$con)) { die('Error: ' . mysql_error()); } echo "1 record added"; mysql_close($con); ?> Alt annet fungerer. Men ikke checkboxen "forstehjelp". Lenke til kommentar
process Skrevet 12. oktober 2012 Del Skrevet 12. oktober 2012 (endret) Du sender name="fortehjelp" fra HTML og forsøker å putte $_POST ['forstehjelp]' inn i databasen. Skrivefeil altså Du må virkelig ikke bruke koden slik den er til noe viktig, du må sanitere inputene dine slik at folk ikke kan kjøre all mulig sql på databasene dine. Relevant og velbrukt xkcd (men jeg ler fortsatt av den ) Endret 12. oktober 2012 av process Lenke til kommentar
xzibiz Skrevet 12. oktober 2012 Forfatter Del Skrevet 12. oktober 2012 Fikk fikset skrivefeilen..., da fikk jeg infoen inn databasen. Men det med å sanitere inputene såg ikke veldig enkelt ut. Har googlet en del, og funnet ut at mange bruker mysql_real_escape_string. Men er veldig usikker på hvor i koden den skal inn. Er første php/mysql koden jeg prøver å bygge opp fra grunn. Har brukt mange før, men ofte ferdige løsninger. Lenke til kommentar
slacky Skrevet 12. oktober 2012 Del Skrevet 12. oktober 2012 (endret) Det blir vel noe alà dette: <?php $con = mysql_connect("localhost","sql","passord") or die('Could not connect: ' .mysql_error()); mysql_select_db("sql", $con) or die(mysql_error()); $fornavn = mysql_real_escape_string($_POST['fornavn']); $etternavn = mysql_real_escape_string($_POST['etternavn']); $telefon = mysql_real_escape_string($_POST['telefon']); $epost = mysql_real_escape_string($_POST['epost']); $adresse = mysql_real_escape_string($_POST['adresse']); $forstehjelp = mysql_real_escape_string($_POST['forstehjelp']); $sql="INSERT INTO medlemmer (fornavn, etternavn, telefon, epost, adresse, forstehjelp) VALUES ('$fornavn', '$etternavn', '$telefon', '$epost', '$adresse', '$forstehjelp')"; mysql_query($sql) or die("MySQL ERROR: ".mysql_error());; mysql_close($con); echo "1 record added"; ?> PHP-relaterte spørsmål er vel lettere å få svar på i php-forumet. Endret 12. oktober 2012 av warpie Lenke til kommentar
xzibiz Skrevet 12. oktober 2012 Forfatter Del Skrevet 12. oktober 2012 Det såg jo greit ut prøvde med det, men fikk mysql error: Unknown column 'torbjørn' in 'field list' Lenke til kommentar
slacky Skrevet 12. oktober 2012 Del Skrevet 12. oktober 2012 (endret) Redigerte posten over, bare å se om det gjør susen. Endret 12. oktober 2012 av warpie Lenke til kommentar
xzibiz Skrevet 12. oktober 2012 Forfatter Del Skrevet 12. oktober 2012 Det fungerte supert Men et lite spørsmål.. Dersom jeg vil liste opp alle som har trykket på checkboxen om at di har førstehjelp. Hvordan gjør jeg det ? Sånn at jeg får en liste med bare navn først, (bare di som har krysset av) så dersom jeg trykker på navnet kommer resten av kontaktinfoen opp, Lenke til kommentar
slacky Skrevet 12. oktober 2012 Del Skrevet 12. oktober 2012 (endret) Går litt fort i svingene, så noen småfeil kan oppstå. <?php $con = mysql_connect("localhost","sql","passord") or die('Could not connect: ' .mysql_error()); mysql_select_db("sql", $con) or die(mysql_error()); $q="SELECT * FROM `medlemmer` WHERE `forstehjelp`='1'"; $sql = mysql_query($q) or die("MySQL ERROR: ".mysql_error()); echo "<h2>Disse pesonene har valgt Førstehjelp:</h2>"; while($data=mysql_fetch_array($sql)) { echo $data['fornavn']." ".$data['etternavn']; echo "<br />"; } mysql_close($con); ?> Endret 12. oktober 2012 av warpie Lenke til kommentar
xzibiz Skrevet 12. oktober 2012 Forfatter Del Skrevet 12. oktober 2012 Går litt fort i svingene, så noen småfeil kan oppstå. <?php $con = mysql_connect("localhost","sql","passord") or die('Could not connect: ' .mysql_error()); mysql_select_db("sql", $con) or die(mysql_error()); $q="SELECT * FROM `medlemmer` WHERE `forstehjelp`='1'"; $sql = mysql_query($q) or die("MySQL ERROR: ".mysql_error()); echo "Disse pesonene har valgt Førstehjelp:" while($data=mysql_fetch_array($sql)) { echo $data['fornavn']." ".$data['etternavn']; echo "<br />"; } mysql_close($con); ?> syntax error linje 11 Men såg ut til å fungere utenom den.., sånn teoretiskt Lenke til kommentar
slacky Skrevet 12. oktober 2012 Del Skrevet 12. oktober 2012 (endret) Manglet semikolon bak echo-statmenten på linje 11, har redigert posten min over. Gammel vane fra Python (Trenger ikke ha noe forferdelig semikolon i Python). Trenger du mer PHP-hjelp, så kan du satse på PHP-forumet - Er mange personer som ivrig etter å hjelpe til! Nå tar jeg natt! Endret 12. oktober 2012 av warpie 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å