if ($submit) is niet echt een goede methode om te testen als je submit button name="submit" heeft. Liever zo:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
}
?>
hij zegt dat er gewoon een update is geweest van de php, meer niet!
is dat dan ok nog goed?
<form method="post" action="">
er wordt een nieuwe rij gemaakt, maar er wordt niet in gezet:s
dit is de volledige code:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// process form
$db = mysql_connect("localhost", "user", "pswrd");
mysql_select_db("databse",$db);
$sql = "INSERT INTO vragenlijst (voornaam,familienaam,geslacht,geboortedatum,straat,nr,postcode,gemeente,voornaammoeder,familienaammoeder,voornaamvader,familienaamvader,voornaampartner,familienaampartner,telefoonprive,gsm,emailprive,telefoonwerk,emailwerk) VALUES ('$voornaam','$familienaam','$geslacht','$geboortedatum','$straat','$nr','$postcode', '$gemeente','$voornaammoeder','$familienaammoeder','$voornaamvader','$familienaamvader','$voornaampartner','$familienaampartner','$telefoonprive','$gsm','$emailprive','$telefoonwerk','$emailwerk')";
$result = mysql_query($sql);
echo "Bedankt voor de gegevens in te vullen, klik op index om terug naar de hoofdpagina te gaan.\n";
} else{
// display form
?>
<table>
<tr>
<td colspan="2" class="style1">
Beste familieleden,<br/><br/>
Hier dus onze vragenlijst. Zoals je ziet verzamelen we de personalia van alle leden van onze familie.<br/>
Graag zouden we hebben dat per tante, nonkel, nicht, kozijn, kind, kleinkind één zo’n formulier wordt ingevuld.<br/>
We willen immers op termijn ook een stamboom met foto’s maken.<br/><br/>
Velden die niet van toepassing zijn of die je niet wil invullen laat je gewoon blanco.<br/>
Als iedereen meewerkt hebben we meteen een hele recente adressenlijst van de familie die altijd actueel kan gehouden worden.<br/><br/>
Dank u <br/><br/><br/><br/>
</td>
</tr>
<tr>
<form method="post" action="">
<td class="style1">Voornaam:</td><td><input type="Text" name="voornaam"><br></td></tr>
<tr><td class="style1">Familienaam:</td><td width="40%"><input type="Text" name="familienaam"><br></td></tr>
<tr><td class="style1">Geslacht:</td><td width="40%"><input type="Text" name="geslacht"><br></td></tr>
<tr><td class="style1"> Geboortedatum:</td><td width="40%"><input type="Text" name="geboortedatum"><br></td></tr>
<tr><td class="style1"> Straat:</td><td width="40%"><input type="Text" name="straat"><br></td></tr>
<tr><td class="style1"> Nr:</td><td width="40%"><input type="Text" name="nr"><br></td></tr>
<tr><td class="style1"> Postcode:</td><td width="40%"><input type="Text" name="postcode"><br></td></tr>
<tr><td class="style1"> Gemeente:</td><td width="40%"><input type="Text" name="gemeente"><br></td></tr>
<tr><td class="style1"> Voornaam moeder:</td><td width="40%"><input type="Text" name="voornaammoeder"><br></td></tr>
<tr><td class="style1"> Familienaam moeder:</td><td width="40%"><input type="Text" name="familienaammoeder"><br></td></tr>
<tr><td class="style1"> Voornaam vader:</td><td width="40%"><input type="Text" name="voornaamvader"><br></td></tr>
<tr><td class="style1"> Familienaam vader:</td><td width="40%"><input type="Text" name="familienaamvader"><br></td></tr>
<tr><td class="style1"> Voornaam partner:</td><td width="40%"><input type="Text" name="voornaampartner"><br></td></tr>
<tr><td class="style1"> Familienaam partner:</td><td width="40%"><input type="Text" name="familienaampartner"><br></td></tr>
<tr><td class="style1"> Telefoon prive:</td><td width="40%"><input type="Text" name="telefoonprive"><br></td></tr>
<tr><td class="style1"> Gsm nummer:</td><td width="40%"><input type="Text" name="gsm"><br></td></tr>
<tr><td class="style1"> Email prive:</td><td width="40%"><input type="Text" name="emailprive"><br></td></tr>
<tr><td class="style1"> Telefoon werk:</td><td width="40%"><input type="Text" name="telefoonwerk"><br></td></tr>
<tr><td class="style1"> Email werk:</td><td width="40%"><input type="Text" name="emailwerk"><br></td></tr>
</table>
<input type="Submit" name="submit" value="Verzend">
</form>
<?php
} // end if
?>
Als er een update van PHP geweest is zal hij waarschijnlijk het gebruik van superglobals afdwingen nu. Dat betekent dat je in plaats van $submit met $_POST['submit'] zult moeten gaan werken.
Zoek maar eens met Google naar "PHP superglobals tutorials", dan vind je genoeg.
Het formulier is wel goed, dat is het probleem niet.
Begin je code eens met de volgende regel:
error_reporting(E_ALL);
Je krijgt dan een hele serie notices dat je variabelen niet bestaan. Dat komt omdat $voornaam e.d. niet bestaat. Deze worden nu netjes in de array $_POST gezet en kun je oproepen met $_POST['voornaam'].
Maar voordat je alles zo maar in je database gooit, controleer wel eerst even de input. Wat je nu doet is bijzonder onveilig! Zoek maar eens op de term 'SQL-injection'...
@ Wouter: ik heb je post even ge-edit voor de leesbaarheid. Kijk even in de broncode hoe ik het gedaan heb, dan weet je het voortaan. Ik ga nu even je code bestuderen om te kijken wat er beter kan.
Je kan (niet netjes hoor) bovenin je script alle globals omzetten naar de vars die je nu gebruikt. Dan hoef je niet overal in het script te gaan editen.
Dus zoiets:
$naam = $_POST['naam'];
$bla = $_POST['bla'];
Enz.
Je kan (niet netjes hoor) bovenin je script alle globals omzetten naar de vars die je nu gebruikt. Dan hoef je niet overal in het script te gaan editen.
Dus zoiets:
$naam = $_POST['naam'];
$bla = $_POST['bla'];
Enz.
Als je die vars vaak nodig hebt kan een kortere schrijfwijze handig zijn. Het zal vaker voorkomen dat je iets wilt doen als:
$naam = htmlspecialchars ($_POST['naam']);
$bla = htmlspecialchars ($_POST['bla']);
uit oogpunt van beveiliging.