Door
Vincent
op 12-01-2006 22:43
gewijzigd op 12-01-2006 22:50
3.030 views
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
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!
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 :(...
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...
// 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?