formulier / $_POST wordt niet gevuld
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:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<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>
<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:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<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>
<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?
- Ariën -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 08/09/2017 12:18:09 door - Ariën -
Hoe voer je het uit? Wat doe je precies?
ik hanteerde verkeerde url, file:///C:/xampp/htdocs/PHPcursus/4/form.html
in plaats van http://localhost/form.html
ik kan weer verder :)
Inderdaad, anders wordt PHP ook niet aangeroepen.
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.
Gewijzigd op 08/09/2017 10:27:50 door Bart V B
@Bart Zit je achter een trage proxy ofzo?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<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>
<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
Gewijzigd op 09/09/2017 13:29:51 door Frank Nietbelangrijk
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"