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!
Dus ik zou in bedankt.php gewoon weer een form moeten maken (alles hidden), net zoals bij het bevestigen, en dan met een mailfunctie versturen?
Ergens hoor ik wel een bel rinkelen... maar heeft iemand even tijd om alle tips te verwerken in de scripts? Ik begin nu een beetje de weg kwijt t raken :(...
Ik zou zeggen: begin met een script en post hier je problemen, volledig in de traditie van PHPhulp.
<?php
$name = $_POST["name"];
$email = $_POST["email"];
$adres = $_POST["adres"];
$aantal = $_POST["aantal"];
// checks hier uitvoeren
?>

<form name="naam" action="bedankt.php" method="post">
<input type="text" name="name" value="<?php echo $_POST["name"]; ?>"><br>
<input type="text" name="email" value="<?php echo $_POST["email"]; ?>"><br>
<input type="text" name="adres" value="<?php echo $_POST["adres"]; ?>"><br>
<input type="text" name="aantal" size=4 value="<?php echo $_POST["aantal"]; ?>"><br>
<input type="submit" name="submit" value="submit">
</form>
Ik zou zoiets maken:

<?php
if(isset($_POST['bestellen']) || isset($_POST['bevestigd']))
{

if(isset($_POST['bestellen']))
{
//ingevulde gegevens laten zien, met in hidden fields de waarde die je ophaalt.
}

if(isset($_POST['bevestigd']))
{
//emailen
}

}else{
//formuliertje
}
zou ik ook doen, maar niet teveel helpen he.. je kan wel alles gaan voorkouwen..
Robert heeft de manier die ik zocht! Ik ga er morgen gelijk mee verder, hartstikke bedankt!

PS nee ik snap dat voorkauwen niet de manier is, maar deze voorzet had ik net even nodig!
Ben weer aan de gang gegaan, maar loop tegen een andere probleem aan. Het lijkt aardig te lukken, maar: ik heb een controle script gekopieerd van mijn contactformulier, maar hier zit een mailfunctie in. De 'if' van de mail simpelweg verwijderen zorgt ervoor dat er niet meer gecontroleerd wordt...

<?php
session_start ();

// zet de variabelen neer die ik ga gebruiken!!
$strError = "";
$Naam = "";
$Email = "";
$Adres = "";
$Postcode = "";
$Woonplaats = "";
$Tel = "";
$Bericht = "";
$EmailCheck = "";
$To = "";
$Subject = "";
$IP = $_SERVER['REMOTE_ADDR'];


// kijkt of er data is gepost!! dus zeg maar of er op de knop verzenden is geklikt
// zo ja, gaat ie in de if dingen uitvoeren
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
//kijk of de variabelen bestaan, zo ja geef ik daar een naam aan
if(isset($_POST['Naam'])) { $Naam = $_POST['Naam']; }
if(isset($_POST['Email'])) { $Email = $_POST['Email']; }
if(isset($_POST['Adres'])) { $Adres = $_POST['Adres']; }
if(isset($_POST['Postcode'])) { $Postcode = $_POST['Postcode']; }
if(isset($_POST['Woonplaats'])) { $Woonplaats = $_POST['Woonplaats']; }
if(isset($_POST['Tel'])) { $Tel = $_POST['Tel']; }
if(isset($_POST['Bericht'])) { $Bericht = $_POST['Bericht']; }
if(isset($_POST['To'])) { $To = $_POST['To']; }
if(isset($_POST['Subject'])) { $Bericht = $_POST['Bericht']; }

// Toon het ip adres van de bezoeker
if(isset($_POST['IP'])) { $IP = $_SERVER['REMOTE_ADDR']; }

// zijn de checks die ik uitvoer voor email en postcode
$EmailCheck = "^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$";
$PostcodeCheck = "^[1-9]{1}[0-9]{3}[ ]{0,1}[a-zA-Z]{2}$";

// als er niks bij bericht is ingevult geef error
if($Bericht == "")
{ $strError = "Je moet wel een bericht invullen."; }

// als er niks bij postcode is ingevult geef error
if($Postcode == "")
{$strError = "Je moet wel een postcode invoeren.";
// als er wel wat is ingevult check dat of het wel met 4 cijfers en 2 letters is
}else
{ if(!eregi($PostcodeCheck, $Postcode))
{ $strError = "Je moet wel een geldige postcode invoeren."; }
}
// als er niks bij email is ingevult geef error
if($Email == "")
{ $strError = "Je moet wel een emailadres opgeven.";
}else
// als er wel wat is ingevult check of het een geldig email adres is in hoevere dat kan natuulijk!!
{ if(!eregi($EmailCheck, $Email))
{ $strError = "Je moet wel een geldig emailadres opgeven."; }
}
// als er niks bij naam is ingevult geef error
if($Naam == "")
{ $strError = "Je moet wel je naam invullen."; }
// als er geen errors zijn mag ie de mail gaan versturen
if($strError == "")
{
$Mail ="
************************************************************
Naam : $Naam
Email : $Email
Adres : $Adres
Postcode : $Postcode
Woonplaats : $Woonplaats
Tel. : $Tel
IP : $IP
Bericht :

$Bericht
************************************************************";
// mail , naar, onderwerp, en de inhoud naar jou toe
// de $TO en $Subject kan je veranderen in het form onderaan.
mail ($To, $Subject, $Mail);
$_SESSION['Naam'] = $Naam;
// als de mail goed is verstuurd wordt je automatisch naar bedankt.php gestuurd!!
// vooropgesteld dat je die hebt anders zet je er // voor
header('location: stap2contr.php');

}
}

?>


Binnen de body staat dan:

<?php echo "<b>" .$strError."</b>"; ?>

Hoe zorg ik ervoor dat er slechts gecontroleerd wordt (dus niet gemaild), zodat ik met action naar een controlepagina kan verwijzen?
Waarom kan ik

if($strError == "")
{
$Mail =" .....
}

niet weghalen zonder het script te verpesten?
Wie kan dit aan een n00b als ik uitleggen?

Reageren