Bestelformulier-bevestigingspagina-hulp-gevraagd
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> <br>
<b>E-mail:</b> <br>
<b>Adres:</b> <br>
<b>Aantal:</b> <br>
euro
<p>
<INPUT type="submit" value="Bevestig">
-----bedankt.php-----
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$name = $_POST["name"];
$email = $_POST["email"];
$adres = $_POST["adres"];
$aantal = $_POST["aantal"]; ?>
$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!
Gewijzigd op 12/01/2006 22:50:00 door Vincent
let op: ik heb alleen even de form-gedeelten van de pagina's weergegeven, om eindeloos lange posts te voorkomen.
Gewijzigd op 12/01/2006 22:49:00 door Vincent
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'.
GET moet zijn POST.
Vervolgens een mailfunctie en de boel beveiligen :)
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$name = $_POST["name"];
$email = $_POST["email"];
$adres = $_POST["adres"];
$aantal = $_POST["aantal"];
?>
$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 ;)?
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 :).
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.
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$name = $_POST["name"];
$email = $_POST["email"];
$adres = $_POST["adres"];
$aantal = $_POST["aantal"];
// checks hier uitvoeren
?>
$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=""><br>
<input type="text" name="email" value=""><br>
<input type="text" name="adres" value=""><br>
<input type="text" name="aantal" size=4 value=""><br>
<input type="submit" name="submit" value="submit">
</form>
zou ik ook doen, maar niet teveel helpen he.. je kan wel alles gaan voorkouwen..
PS nee ik snap dat voorkauwen niet de manier is, maar deze voorzet had ik net even nodig!
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<?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');
}
}
?>
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:
Hoe zorg ik ervoor dat er slechts gecontroleerd wordt (dus niet gemaild), zodat ik met action naar een controlepagina kan verwijzen?
if($strError == "")
{
$Mail =" .....
}
niet weghalen zonder het script te verpesten?
Gewijzigd op 14/01/2006 15:43:00 door Vincent
Wie kan dit aan een n00b als ik uitleggen?