Hi,

Ik krijg het formulier uit de online cursus http://www.learnit.nl/gratiscursus/php-en-mysql/4 niet werkende.

Form.html ziet er als volgt uit:

<html>
<head>
	<title>Formulier</title>
</head>
<body>
<form name="reactie_formulier" method="post" action="verwerk.php">
<table width="300" border="0">
  <tr>
    <td>Naam:</td>
    <td><input type="text" name="naam" /></td>
  </tr>

  <tr>
    <td>E-mail:</td>
    <td><input type="text" name="email"  /></td>
  </tr>
  <tr>
    <td>Reactie:</td>
    <td><textarea name="reactie" rows="8" cols="43"></textarea></td>

  </tr>
  <tr>
    <td></td>
    <td><input type="submit" value="verstuur" /></td>
  </tr>
</table>
</form>
</body>
</html>


Mijn PHP bestand (verwerk.php) ziet er als volgt uit:

<html>
<head>
	<title>Formulier verwerken</title>
</head>
<body>
U vulde in:
<table>
<?php
echo "<tr><td>Naam: </td><td>" . $_POST['naam']  . "</td></tr>\n";
echo "<tr><td>E-mail: </td><td>" . $_POST['email']  . "</td></tr>\n";
echo "<tr><td>Reactie: </td><td>" . $_POST['reactie']  . "</td></tr>\n";
?>
</table>
</body>
</html>

Als resultaat krijg ik:

U vulde in: \n"; echo "\n"; echo "\n"; ?>
Naam: " . $_POST["naam"] . "
E-mail: " . $_POST["email"] . "
Reactie: " . $_POST["reactie"] . "

Wat doe ik fout?
Hoe voer je het uit? Wat doe je precies?
Inderdaad, anders wordt PHP ook niet aangeroepen.
Roep jij je url wel goed aan?
Want dit moet gewoon werken.
Hoewel, het misschien wel netter kan.

EDIT
Iets met mosterd en maaltijd...
Huh? dat is vreemd, ik zie nu pas dat mijn tijd en jullie tijd anders is?
Ik weet toch zeker dat er nog geen reacties stonden toen ik aan het posten ging.
Dat heeft nog geen 2 minuten geduurd voordat ik was ingelogd en mijn reactie heb geplaatst.
@Bart Zit je achter een trage proxy ofzo?
Dit ziet er niet gezond uit:


<html>
<head>
    <title>Formulier verwerken</title>
</head>
<body>
U vulde in:
<table>
<?php
echo "<tr><td>Naam: </td><td>" . $_POST['naam']  . "</td></tr>\n";
echo "<tr><td>E-mail: </td><td>" . $_POST['email']  . "</td></tr>\n";
echo "<tr><td>Reactie: </td><td>" . $_POST['reactie']  . "</td></tr>\n";
?>
</table>
</body>
</html>


Waarom?

Omdat $_POST elementen enkel bestaan als het formulier op de juiste wijze gePOST is.
Vraag je deze pagina op door de url in je url balk te typen en op enter te drukken dan wordt de pagina opgevraagd in de GET methode in plaats van de POST methode en zul je foutmeldingen krijgen als de foutmeldingen niet onderdrukt worden tenminste.

Zie ook mijn reactie hier
Wellicht een toelichting op het punt dat Frank Nietbelangrijk maakt:

Je kunt een hidden input opnemen in het formulier. En testen bij de overdracht of de variabele van de hidden input aanwezig is. Zo ja, dan doorgaan, anders melding oid.

bijgaand een voorbeeld"

if(isset($_POST['Submit'])) {

If($_POST['verify_password']!=true) {

Reageren