Te groot bestelformulier?
Hoe ziet het formulier eruit? http://www.passieenfotografie.nl/Bestelinformatie/Formulier.htm
Wat is het doel? Klanten kunnen hun fotobestelling doen, drukken op verzenden en ik wil dat een mailtje krijgen met de inhoud van het formulier (in ongeveer dezelfde layout van het formulier). Dit leek mij niet zo moeilijk...
Hoe ziet het php deel eruit?
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?php
$Voornaam = $_POST["Voornaam"];
$Achternaam = $_POST["Achternaam"];
$Adres = $_POST["Adres"];
$Huisnr = $_POST["Huisnr"];
$Postcode = $_POST["Postcode"];
$Plaats = $_POST["Plaats"];
$Email = $_POST["Email"];
$Evenement1 = $_POST["Evenement1"];
$Evenement2 = $_POST["Evenement2"];
$Evenement3 = $_POST["Evenement3"];
$Evenement4 = $_POST["Evenement4"];
$Evenement5 = $_POST["Evenement5"];
$Evenement6 = $_POST["Evenement6"];
$Evenement7 = $_POST["Evenement7"];
$Evenement8 = $_POST["Evenement8"];
$Evenement9 = $_POST["Evenement9"];
$Evenement10 = $_POST["Evenement10"];
$Fotonr1 = $_POST["Fotonr1"];
$Fotonr2 = $_POST["Fotonr2"];
$Fotonr3 = $_POST["Fotonr3"];
$Fotonr4 = $_POST["Fotonr4"];
$Fotonr5 = $_POST["Fotonr5"];
$Fotonr6 = $_POST["Fotonr6"];
$Fotonr7 = $_POST["Fotonr7"];
$Fotonr8 = $_POST["Fotonr8"];
$Fotonr9 = $_POST["Fotonr9"];
$Fotonr10 = $_POST["Fotonr10"];
$Optie1 = $_POST["Optie1"];
$Optie2 = $_POST["Optie2"];
$Optie3 = $_POST["Optie3"];
$Optie4 = $_POST["Optie4"];
$Optie5 = $_POST["Optie5"];
$Optie6 = $_POST["Optie6"];
$Optie7 = $_POST["Optie7"];
$Optie8 = $_POST["Optie8"];
$Optie9 = $_POST["Optie9"];
$Optie10 = $_POST["Optie10"];
$Aantal1 = $_POST["Aantal1"];
$Aantal2 = $_POST["Aantal2"];
$Aantal3 = $_POST["Aantal3"];
$Aantal4 = $_POST["Aantal4"];
$Aantal5 = $_POST["Aantal5"];
$Aantal6 = $_POST["Aantal6"];
$Aantal7 = $_POST["Aantal7"];
$Aantal8 = $_POST["Aantal8"];
$Aantal9 = $_POST["Aantal9"];
$Aantal10 = $_POST["Aantal10"];
$Formaat1 = $_POST["Formaat1"];
$Formaat2 = $_POST["Formaat2];
$Formaat3 = $_POST["Formaat3"];
$Formaat4 = $_POST["Formaat4"];
$Formaat5 = $_POST["Formaat5"];
$Formaat6 = $_POST["Formaat6"];
$Formaat7 = $_POST["Formaat7"];
$Formaat8 = $_POST["Formaat8"];
$Formaat9 = $_POST["Formaat9"];
$Formaat10 = $_POST["Formaat10"];
if (!$Email) {
echo "U heeft geen e-mailadres ingevuld!";
exit; }
if (!$Achternaam) {
echo "U heeft geen achternaam ingevuld!";
exit; }
if (!$Voornaam) {
echo "U heeft geen Voornaam ingevuld!";
exit; }
if (!$Plaats) {
echo "U heeft geen woonplaats ingevuld!";
exit; }
else {
$tijd = time();
$datum = strftime("%d/%m/%y %H:%M", $tijd);
$ip = getenv("REMOTE_ADDR");
$message = "" . $Voornaam . " stuurde het volgende berich:
_____________________________________________
Adresgegevens:
" . $Voornaam . " " . $Achternaam . "
" . $Ardes . " " . $Huisnr . "
" . $Postcode . " " . $Plaats . "
Emailadres: " . $Email . "
Betelling:
---------------------------------------------------------------------------------------------------------------------
Evenement: Fotonummer: Glanzend/mat Aantal: Formaat
1. " . $Evenement1 . " " . $Fotonr1 . " " . $Optie1 . " " . $Aantal1 . " " . $Formaat1 . "
2. " . $Evenement2 . " " . $Fotonr2 . " " . $Optie2 . " " . $Aantal2 . " " . $Formaat2 . "
3. " . $Evenement3 . " " . $Fotonr3 . " " . $Optie3 . " " . $Aantal3 . " " . $Formaat3 . "
4. " . $Evenement4 . " " . $Fotonr4 . " " . $Optie4 . " " . $Aantal4 . " " . $Formaat4 . "
5. " . $Evenement5 . " " . $Fotonr5 . " " . $Optie5 . " " . $Aantal5 . " " . $Formaat5 . "
6. " . $Evenement6 . " " . $Fotonr6 . " " . $Optie6 . " " . $Aantal6 . " " . $Formaat6 . "
7. " . $Evenement7 . " " . $Fotonr7 . " " . $Optie7 . " " . $Aantal7 . " " . $Formaat7 . "
8. " . $Evenement8 . " " . $Fotonr8 . " " . $Optie8 . " " . $Aantal8 . " " . $Formaat8 . "
9. " . $Evenement9 . " " . $Fotonr9 . " " . $Optie9 . " " . $Aantal9 . " " . $Formaat19 . "
10. " . $Evenement10 . " " . $Fotonr10 . " " . $Optie10 . " " . $Aantal10 . " " . $Formaat10 . "
---------------------------------------------------------------------------------------------------------------------";
$mailadres = "home@passieenfotografie.nl";
$message = str_replace ("<br>","\n", $message);
mail("$mailadres", "Foto bestelling",
$message, "From: " . $Email . "");
echo "Uw bericht is verzonden. U krijgt zo snel mogelijk antwoord.";
}
?>
$Voornaam = $_POST["Voornaam"];
$Achternaam = $_POST["Achternaam"];
$Adres = $_POST["Adres"];
$Huisnr = $_POST["Huisnr"];
$Postcode = $_POST["Postcode"];
$Plaats = $_POST["Plaats"];
$Email = $_POST["Email"];
$Evenement1 = $_POST["Evenement1"];
$Evenement2 = $_POST["Evenement2"];
$Evenement3 = $_POST["Evenement3"];
$Evenement4 = $_POST["Evenement4"];
$Evenement5 = $_POST["Evenement5"];
$Evenement6 = $_POST["Evenement6"];
$Evenement7 = $_POST["Evenement7"];
$Evenement8 = $_POST["Evenement8"];
$Evenement9 = $_POST["Evenement9"];
$Evenement10 = $_POST["Evenement10"];
$Fotonr1 = $_POST["Fotonr1"];
$Fotonr2 = $_POST["Fotonr2"];
$Fotonr3 = $_POST["Fotonr3"];
$Fotonr4 = $_POST["Fotonr4"];
$Fotonr5 = $_POST["Fotonr5"];
$Fotonr6 = $_POST["Fotonr6"];
$Fotonr7 = $_POST["Fotonr7"];
$Fotonr8 = $_POST["Fotonr8"];
$Fotonr9 = $_POST["Fotonr9"];
$Fotonr10 = $_POST["Fotonr10"];
$Optie1 = $_POST["Optie1"];
$Optie2 = $_POST["Optie2"];
$Optie3 = $_POST["Optie3"];
$Optie4 = $_POST["Optie4"];
$Optie5 = $_POST["Optie5"];
$Optie6 = $_POST["Optie6"];
$Optie7 = $_POST["Optie7"];
$Optie8 = $_POST["Optie8"];
$Optie9 = $_POST["Optie9"];
$Optie10 = $_POST["Optie10"];
$Aantal1 = $_POST["Aantal1"];
$Aantal2 = $_POST["Aantal2"];
$Aantal3 = $_POST["Aantal3"];
$Aantal4 = $_POST["Aantal4"];
$Aantal5 = $_POST["Aantal5"];
$Aantal6 = $_POST["Aantal6"];
$Aantal7 = $_POST["Aantal7"];
$Aantal8 = $_POST["Aantal8"];
$Aantal9 = $_POST["Aantal9"];
$Aantal10 = $_POST["Aantal10"];
$Formaat1 = $_POST["Formaat1"];
$Formaat2 = $_POST["Formaat2];
$Formaat3 = $_POST["Formaat3"];
$Formaat4 = $_POST["Formaat4"];
$Formaat5 = $_POST["Formaat5"];
$Formaat6 = $_POST["Formaat6"];
$Formaat7 = $_POST["Formaat7"];
$Formaat8 = $_POST["Formaat8"];
$Formaat9 = $_POST["Formaat9"];
$Formaat10 = $_POST["Formaat10"];
if (!$Email) {
echo "U heeft geen e-mailadres ingevuld!";
exit; }
if (!$Achternaam) {
echo "U heeft geen achternaam ingevuld!";
exit; }
if (!$Voornaam) {
echo "U heeft geen Voornaam ingevuld!";
exit; }
if (!$Plaats) {
echo "U heeft geen woonplaats ingevuld!";
exit; }
else {
$tijd = time();
$datum = strftime("%d/%m/%y %H:%M", $tijd);
$ip = getenv("REMOTE_ADDR");
$message = "" . $Voornaam . " stuurde het volgende berich:
_____________________________________________
Adresgegevens:
" . $Voornaam . " " . $Achternaam . "
" . $Ardes . " " . $Huisnr . "
" . $Postcode . " " . $Plaats . "
Emailadres: " . $Email . "
Betelling:
---------------------------------------------------------------------------------------------------------------------
Evenement: Fotonummer: Glanzend/mat Aantal: Formaat
1. " . $Evenement1 . " " . $Fotonr1 . " " . $Optie1 . " " . $Aantal1 . " " . $Formaat1 . "
2. " . $Evenement2 . " " . $Fotonr2 . " " . $Optie2 . " " . $Aantal2 . " " . $Formaat2 . "
3. " . $Evenement3 . " " . $Fotonr3 . " " . $Optie3 . " " . $Aantal3 . " " . $Formaat3 . "
4. " . $Evenement4 . " " . $Fotonr4 . " " . $Optie4 . " " . $Aantal4 . " " . $Formaat4 . "
5. " . $Evenement5 . " " . $Fotonr5 . " " . $Optie5 . " " . $Aantal5 . " " . $Formaat5 . "
6. " . $Evenement6 . " " . $Fotonr6 . " " . $Optie6 . " " . $Aantal6 . " " . $Formaat6 . "
7. " . $Evenement7 . " " . $Fotonr7 . " " . $Optie7 . " " . $Aantal7 . " " . $Formaat7 . "
8. " . $Evenement8 . " " . $Fotonr8 . " " . $Optie8 . " " . $Aantal8 . " " . $Formaat8 . "
9. " . $Evenement9 . " " . $Fotonr9 . " " . $Optie9 . " " . $Aantal9 . " " . $Formaat19 . "
10. " . $Evenement10 . " " . $Fotonr10 . " " . $Optie10 . " " . $Aantal10 . " " . $Formaat10 . "
---------------------------------------------------------------------------------------------------------------------";
$mailadres = "home@passieenfotografie.nl";
$message = str_replace ("<br>","\n", $message);
mail("$mailadres", "Foto bestelling",
$message, "From: " . $Email . "");
echo "Uw bericht is verzonden. U krijgt zo snel mogelijk antwoord.";
}
?>
Het probleem:
Het werkt wel, maar alleen met de eerste regel (bestelling 2 t/m 10 moet ik dan uit dit script verwijderen). Is hier een maximum aan verbonden, of zit ik helemaal verkeerd te denken?
Kan iemand mij een zetje in de goede richting geven??
Alvast bedankt!
En controleer ook of mail() truew of false is. Nog beter gebruik je een mailclass like phpmailer of swiftmailer.
$Formaat2 = $_POST["Formaat2];
moet zijn
$Formaat2 = $_POST["Formaat2"];
En je beveiligd helemaal niks. Kwaadwillende code kan zo in de POST gestopt worden en worden uitgevoerd.
Haal regel 2 tm 59 gewoon weg, gebruik gewoon de $_POST variabelen in je script en beveilig deze met bij htmlentities, htmlspecialchars, mysql_real_escape_string, etc.
Edit:
Je kan natuurlijk heel makkelijk kijken of een veld ingevuld is:
if(isset($Evenement)) echo $Evenement;
En zo dus voorkomen dat er leegtes in je mail komen.
Gewijzigd op 01/01/1970 01:00:00 door Michael -
Quote:
Waarom kun je niet gewoon gewoon de $_POST[index]-variabelen gebruiken?$Voornaam = $_POST["Voornaam"];
$Achternaam = $_POST["Achternaam"];
$Adres = $_POST["Adres"];
(...)
$Formaat9 = $_POST["Formaat9"];
$Formaat10 = $_POST["Formaat10"];
$Achternaam = $_POST["Achternaam"];
$Adres = $_POST["Adres"];
(...)
$Formaat9 = $_POST["Formaat9"];
$Formaat10 = $_POST["Formaat10"];
Daarnaast:
Quote:
Zou ik voor dergelijke benamingen gewoon een array gebruiken. Dan kun je in je HTML de input gewoon Optie[] noemen. Dan wordt $_POST['Optie'] een array van 9 items lang...$Optie1 = $_POST["Optie1"];
$Optie2 = $_POST["Optie2"];
$Optie3 = $_POST["Optie3"];
(...)
$Optie8 = $_POST["Optie8"];
$Optie9 = $_POST["Optie9"];
$Optie2 = $_POST["Optie2"];
$Optie3 = $_POST["Optie3"];
(...)
$Optie8 = $_POST["Optie8"];
$Optie9 = $_POST["Optie9"];
Datzelfde geldt overigens voor Formaat1-10, Aantal1-10, Evenement1-10, Foto1-10. Het voordeel daarvan is ook dat je heel gemakkelijk in een lus kunt valideren.
Andere voordelen kunnen zijn dat je dan een random aantal bestellingen kunt doen (nu kun je er maximaal 10(. Je kunt met javascript dan gewoon weer een nieuwe rij voor een bestelling toevoegen als alle rijen opgebruikt zijn. En gezien de namen dan toch overal Optie[], Aantal[], Foto[] en Evenement[] heten, levert dat geen problemen op als je gewoon lekker clonet :)
@ Jan Willem: Je hebt inderdaad gelijk dat het 'mooier'is als je een soort onbegrenst formulier kunt maken. Alleen ik ben kwa kennis nog niet zo ver dat ik dat denk ik al kan maken. Ik wil eerst dit werkend hebben en dan weer doorgaan. Misschien kan je me wel op weg helpen met een voorbeeld array?
Gewijzigd op 01/01/1970 01:00:00 door Pascal van der Zwalm
Quote:
Tsjonge, jij hebt een goede glazen bol. In het hele stuk code wordt geen database gebruikt, maar jij ziet kans te concluderen dat men geen genormaliseerde tabellen gebruikt. Het enige wat ik uit de code haal is dat deze ronduit klote werkt en dat de TS beter af is bij een paar goede tutorials en/of boeken dan dit door te zetten.N.a.v. bovenstaande ben ik tot de conclusie gekomen dat je tabel structuur totaal niet in orde is.
google::normaliseren
google::normaliseren
Jan Willem van der Veer schreef op 30.09.2009 12:59:
Quote:
Tsjonge, jij hebt een goede glazen bol. In het hele stuk code wordt geen database gebruikt, maar jij ziet kans te concluderen dat men geen genormaliseerde tabellen gebruikt. Het enige wat ik uit de code haal is dat deze ronduit klote werkt en dat de TS beter af is bij een paar goede tutorials en/of boeken dan dit door te zetten.N.a.v. bovenstaande ben ik tot de conclusie gekomen dat je tabel structuur totaal niet in orde is.
google::normaliseren
google::normaliseren
$Evenement1 = $_POST["Evenement1"];
$Evenement2 = $_POST["Evenement2"];
$Evenement3 = $_POST["Evenement3"];
$Evenement4 = $_POST["Evenement4"];
$Evenement5 = $_POST["Evenement5"];
$Evenement6 = $_POST["Evenement6"];
$Evenement7 = $_POST["Evenement7"];
$Evenement8 = $_POST["Evenement8"];
$Evenement9 = $_POST["Evenement9"];
Bijv:
Hoezo geen apperte tabel met evenementen ?
@Jaron: Dat stukje code dat jij nu geeft heeft, zoals Jan Willem reeds zei, inderdaad niks met een database te maken.
Ow verkeerd gelezen ;) Maar nog steeds onhandige manier van gegevens verwerken.
Quote:
Yep, maar dat was al eerder geconcludeerd. Maar ik heb het idee dat de TS graag wil vasthouden aan het ideaal om één van zijn eerste scripts werkend te krijgen. En ik heb niet het idee dat zoiets het beste idee is.Maar nog steeds onhandige manier van gegevens verwerken.
Zowieso natuurlijk die regels 2 tm 59 verwijderen en terug laten komen in de mail met een $_POST.
Jan willew, je hebt het in je post over die Arrey, heb je een voorbeeldje, dan ga ik daar vanavond mee aan de slag.
Pascal schreef op 30.09.2009 17:40:
Het is misschien niet de beste manier kom ik nu achter. Maar zou je dit beter aan kunnen pakken?
Zowieso natuurlijk die regels 2 tm 59 verwijderen en terug laten komen in de mail met een $_POST.
Jan willew, je hebt het in je post over die Arrey, heb je een voorbeeldje, dan ga ik daar vanavond mee aan de slag.
Zowieso natuurlijk die regels 2 tm 59 verwijderen en terug laten komen in de mail met een $_POST.
Jan willew, je hebt het in je post over die Arrey, heb je een voorbeeldje, dan ga ik daar vanavond mee aan de slag.
Anders zoek je gewoon even wat op over Array
Arrays zijn opzich niet moeilijk. Voorbeeldje wat je misschien kan gebruiken:
Code (php)
Fouten voorbehouden.
Beveilig de POST nog wel even, en je kan eventueel nog controlen of 't $value gevuld is zodat ie geen lege velden toont.
BEdankt voor deze toevoeging, ik ga ermee aan de slag en hou jullie op de hoogte!