Momenteel ben ik bezig met een script voor het bestellen van foto's. Het is de bedoeling dat mensen in een formulier de gegevens opgeven, dat vervolgens na 'versturen' een pagina verschijnt waarop de ingevulde gegevens verschijnen, met de vraag of de gegevens goed zijn. Mocht dit niet het geval zijn, dan kan er teruggekeerd worden en worden verbeterd. Is alles goed, dan moet het formulier verstuurd worden per mail.

De files die ik tot nu heb gemaakt, heb ze even versimpeld

-----bestellen.html-----

<form action="bestellen_bevestig.php" method="POST">
Naam: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
Adres: <input type="text" name="adres"><br>
Aantal: <input type="text" name="aantal" size=4><p>
<input type="submit" value="Verstuur">
</form>

-----bestellen_bevestig.php-----

<form action="bedankt.php" method="GET">
<b>Naam:</b> <?php echo $_POST["name"]; ?><br>
<b>E-mail:</b> <?php echo $_POST["email"]; ?><br>
<b>Adres:</b> <?php echo $_POST["adres"]; ?><br>
<b>Aantal:</b> <?php echo $_POST["aantal"]; ?><br>
euro
<p>
<INPUT type="submit" value="Bevestig">

-----bedankt.php-----

<?php
$name = $_POST["name"];
$email = $_POST["email"];
$adres = $_POST["adres"];
$aantal = $_POST["aantal"]; ?>
<br>
<p>
Uw bestelling werd succesvol geplaatst!<br>


Maar als ik nu de bestelling wil versturen per email, dan moet ik volgens mij weer een method="post" gebruiken... Kan iemand mij een klein stapje opweg helpen? Elke hint is zeer welkom!
Kzag al een paar foutjes, die heb ik er even uitgehaald...

let op: ik heb alleen even de form-gedeelten van de pagina's weergegeven, om eindeloos lange posts te voorkomen.
In bedankt.php zijn de variabelen gewoon op te vragen via POST. Daar moet je dus met de functie mail () aan de gang gaan.
Waarom moet dat? Je kan ook vanuit een link een php functie aanroepen die het verzenden van de gegevens doet. Of je maakt een hidden form (hidden fields) zet daar de gegevens in en die post je dan weer.
@Robert: Ik heb een vaag idee wat je bedoelt, maar zou je een voorbeeldje kunnen geven?
@ Robert: er is altijd meer dan één mogelijkheid. Lees mijn 'moeten' maar als 'kunnen'.
<form action="bedankt.php" method="GET">

GET moet zijn POST.

Vervolgens een mailfunctie en de boel beveiligen :)
Ja, wat ik al zei. Dit:

<?php
$name = $_POST["name"];
$email = $_POST["email"];
$adres = $_POST["adres"];
$aantal = $_POST["aantal"];
?>

heeft niet veel zin. Je moet iets doen met die variabelen. Op zijn minst htmlspecialchars of zo.
@mod: Heb je toevallig een voorstel ;)?
Vincent, je zei al dat je niet alle code plaatste (code versimpeld) maar zoals de code nu is, zullen de gegevens niet worden weergegeven op je bedankt.php

Als dat wel werkt, dan gewoon idd een mail() opdracht op bedankt.php maken.
Oehja, in die bestellen_bevestig.php zou je dus wel even wat hidden fields moeten aanmaken, anders stuur je niks door... Je zou het ook met een sessie kunnen oplossen :).

Reageren