Ik ben aan het proberen mijn eerste stapjes in php te zetten... Ik ben aan een enquête (over voeding) bezig. Eerst heb ik met html een formulier gemaakt om het later met php te verzenden. Er moet niet worden nagegaan of alles is ingevuld. En het moet ook anoniem verzonden worden... Alles zag er goed uit, tot ik de mail in mijn mailbox zag:

Leeftijd:
Geslacht:
Beroep:
...

Alles wat ik had ingevuld stond niet in de mail... Kan er iemand mij hier mee helpen?

Hier is een stukje html-code:

<html>
<html>
<body>
<form name="enqu&ecirc;te voeding" action="process.php" method="post" enctype="text/plain">
  <h6 class="style6">Gegevens: </h6>
  <h6 class="style4"> Leeftijd</h6>
  <h6 class="style4">
    <input name="leeftijd" type="text" id="Leeftijd">
  </h6>
  <h6 class="style4">&nbsp;</h6>
  <h6 class="style4">Geslacht</h6>
  <h6 class="style4">
    <input name="geslacht" type="radio" value="Man">
    Man </h6>
  <h6 class="style5"> <span class="style1">
    <input name="geslacht" type="radio" value="Vrouw">
  Vrouw</span></h6>
  <h6 class="style4">&nbsp;</h6>
  <h6 class="style4">Beroep</h6>
  <h6 class="style4">
    <input name="beroep" type="text" id="Beroep">
  </h6>
  <h6 class="style4"><strong> &nbsp;</strong></h6>
  <h6 class="style4">
    <input type="submit" name="Submit" value="Verzend de enqu&ecirc;te">
    <input type="reset" name="Reset" value="Wissen">
  </h6>
</form>
<h6 align="left" class="style1">&nbsp;</h6>
<p class="style1">&nbsp;</p>
<h6 class="style1">&nbsp; </h6>
<p class="style1">&nbsp;</p>
</body>
</html>
</HTML>
<html>


En hier een stukje PHP:

<?php

ini_set('display_errors', 1);
error_reporting(E_ALL);

$leeftijd = $_POST['leeftijd'];
$geslacht = $_POST['geslacht'];
$beroep = $_POST['beroep'];


$recipient = "[email protected]";
$subject = "enquête voeding";
$mail_body ="De enquête is op " . date("d-m-Y") . " om " . date("H:i") . "uur verzonden.\n";
$mail_body.="Het bevat de volgende inhoud:\n\n";
$mail_body.="Leeftijd: " . $leeftijd . "\n";
$mail_body.="Geslacht: " . $geslacht . "\n";
$mail_body.="Beroep: " . $beroep . "\n\n";

$check = mail($recipient,$subject,$mail_body);
if($check) echo"de enquête is correct verzonden!" . "\n\n" . "Hartelijk bedankt," . "\n\n" . "Klara";

?>
1. Controleer of de POST variabelen zijn verzonden
if($_SERVER['REQUEST_METHOD']=='POST'){ //verzend mail }else{ //fout }
2. Met extract($_POST); wordt $_POST['voorbeeld'] automatisch $voorbeeld
3. Gebruik de juiste headers om te voorkomen dat de mail in junkmail beland
Alle code ziet er op het 1e gezicht goed uit... nu moet het alleen nog werken.

Kijk eens naar de verschillende fasen waar je php mee bezig is. Eerst verzamelt hij de gegevens, dan maakt hij er de $mail_body van die hij dan verstuurt. Probleem lijkt in de 1e te zitten.

Gooi je invoer dus eens naar echo. Kun je zien of dat eigenlijk wel goed gaat.

Dus

<?php

ini_set('display_errors', 1);
error_reporting(E_ALL);

$leeftijd = $_POST['leeftijd'];
$geslacht = $_POST['geslacht'];
$beroep = $_POST['beroep'];

echo $leeftijd;
echo $geslacht;
echo $beroep;
?>
Volgens mij hoort enctype="text/plain" in html-regel 4 daar niet.
Laat het enctype maar gewoon weg.
Het zou me niets verbazen als je dubbele <html> tag voor de problemen zorgt.
Sorry, die dubbele <html> is er gekomen met "het in code-zetten in dit forum" :D
zet er maar eens enquete zonder ê in, html vind dat niet lief, php al helemaal niet
Allemaal hartelijk bedankt voor al jullie hulp, maar ik ben eruit... Na zelf nog wat geprutst te hebben en jullie tips te hebben uitgeprobeerd bleek de tip van Kees te kloppen :D

Merci merci aan iedereen (en zeker aan Kees :))

Reageren