Formulier vraagje
ik heb dit formulier in elkaar gestoken en dit werkt naar behoren,
alleen zou ik graag willen dat het stuk validatie regel 41 tot 187 ergens anders willen hebben alleen weet niet hoe ik dit het best kan doen.
ook had ik graag deze validatie via Ajax laten lopen maar zou niet weten hoe ik dit moet aanpakken, vooral op het vlak van email.
hoe kan ik de gegevens die de klant heeft ingevoerd na het versturen als overzicht laten weergeven en als de klant dit wederom bevestigd dat dan de gegevens pas in de DB worden opgeslagen.
Code verwijderd. Plaats slechts relevante code. 786 regels gaan mensen niet doorspitten en is niet relevant.[/modedit]
Gewijzigd op 25/07/2011 13:08:54 door Bas IJzelendoorn
en begrijp me niet verkeerd de tips pak ik zeker mee.
@Bas zeer vriendelijk om de code te verwijderen. mijn vraag is gebaseerd op dit script, bezorg dan een mogelijkheid zodat ik de code hier toch kan presenteren en mijn vraag beantwoord kan worden.
http://pastebin.com/
Dit is een manier... waarom plaats je twee keer dezelfde vraag? Als je de tips meeneemt hoef je niet 2x dezelde vraag stellen en kan je de eerst volgende keer meer gerichte vragen stellen, want het lijkt er nu op dat andere leden met een oplossing voor jou moeten komen..
Dit is een manier... waarom plaats je twee keer dezelfde vraag? Als je de tips meeneemt hoef je niet 2x dezelde vraag stellen en kan je de eerst volgende keer meer gerichte vragen stellen, want het lijkt er nu op dat andere leden met een oplossing voor jou moeten komen..
Waar kan je geen relevante code tonen? beter dan op pastebin gooien.
Slotje?
The Force op 25/07/2011 15:15:47:
Slotje?
Omdat een vraag ook op een ander forum gesteld is? Nee, dat lijkt me geen reden voor een slotje.
@Paul: plaats alleen relevante code en niet het hele script. Jij heb een vraag over de validatie in je script, laat daar dan de code van zien. De rest is, zeker in eerste instantie, overbodig...
http://pastebin.com/yUC2fner formulier
http://pastebin.com/dYLXVVrk validation
http://pastebin.com/6JDTsqQB headerform.php
Als ik nu op op submit klik zou ik na het validatie process de melding moeten krijgen dat bepaalde velden niet ingevuld zijn en dit gebeurd nu niet wat doe ik verkeerd.
Ik zou ook graag de mogelijkheid willen om een 2de of 3de hond van de zelfde eigenaar in te voeren.
Ik zou ook graag een overzicht willen laten zien als de klant op submit klikt voordat de gegevens opgeslagen worden in de database. hoe kan ik dit realiseren?
en hoe kan ik deze gegevens vervolgens opslaan in een database?
in 2de instantie zit ik met de volgende vragen,
weet iemand van jullie een goed script die me toe staat om reservaties te maken en te kijken of er nog kennels beschikbaar zijn voor een bepaalde periode?
een zoekfunctie om reservaties op te zoeken en af te printen bij aankomst
de mogelijkheid om alles in 2 talen nl/fr weer te geven
alvast bedankt voor jullie reactie
Gewijzigd op 26/07/2011 12:08:31 door paul prive
Quote:
@Paul: plaats alleen relevante code en niet het hele script. Jij heb een vraag over de validatie in je script, laat daar dan de code van zien. De rest is, zeker in eerste instantie, overbodig...
Relevante code kun je gewoon hier in je topic plaatsen. Code op externe locaties nodigt niet uit om er naar te kijken...
Quote:
Als ik nu op op submit klik zou ik na het validatie process de melding moeten krijgen dat bepaalde velden niet ingevuld zijn en dit gebeurd nu niet wat doe ik verkeerd.
Je methode van valideren klopt niet. In het eerste if-statement controleer je of al die variabelen bestaan en vervolgens ga je in afzonderlijke if-statements controleren of die variabelen niet bestaan. Die statements zullen nooit naar true evalueren omdat je immers al gecontroleerd hebt dat die variabelen bestaan. Kijk eens naar dit script als voorbeeld van hoe je een formulier kunt opbouwen en valideren.
Quote:
Ik zou ook graag de mogelijkheid willen om een 2de of 3de hond van de zelfde eigenaar in te voeren.
Kwestie van formulier uitbreiden? En natuurlijk de validatie daarop aanpassen...
Quote:
en hoe kan ik deze gegevens vervolgens opslaan in een database?
SQL beginnershandleiding
Quote:
in 2de instantie zit ik met de volgende vragen,
Ik zou eerst eens beginnen met bovenstaande. Daar heb je nog genoeg werk aan...
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
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
<?php
if ( $_SERVER['REQUEST_METHOD'] == 'POST' &&
isset($_POST['name'], $_POST['email'], $_POST['address1'], $_POST['address2'], $_POST['towncity'], $_POST['postcode']) )
{
// Er zijn gegevens verstuurd naar deze pagina!
// We gaan de errors in een array bijhouden
$aErrors = array();
// Een naam bevat letters en spaties (minimaal 3)
if ( !isset($_POST['name']) or !preg_match( '~^[\w ]{3,}$~', $_POST['name'] ) ) {
$aErrors['name'] = 'Please fill in your name';
}
// Een email-adres is wat ingewikkelder
if ( !isset($_POST['email']) or !preg_match( '~^[a-z0-9][a-z0-9_.\-]*@([a-z0-9]+\.)*[a-z0-9][a-z0-9\-]+\.([a-z]{2,6})$~i', $_POST['email'] ) ) {
$aErrors['email'] = 'Please fill in your e-mail address';
}
// Een adres heeft letters, cijfers, spaties (minimaal 5)
if ( !isset($_POST['address1']) or !preg_match( '~^[\w\d ]{5,}$~', $_POST['address1'] ) ) {
$aErrors['address1'] = 'Please fill in your adress';
}
// Een adres heeft letters, cijfers, spaties (niet verplicht)
if ( !isset($_POST['address2']) or !preg_match( '~^([\w\d ]{5,})?$~', $_POST['address2'] ) ) {
$aErrors['address2'] = 'Please fill in your adress';
}
// Een plaatsnaam heeft letters, spaties en misschien een apostrof
if ( !isset($_POST['towncity']) or !preg_match( '~^[\w\d\' ]*$~', $_POST['towncity'] ) ) {
$aErrors['towncity'] = 'Please fill in your town/city';
}
// Een postcode heeft vier cijfers, eventueel een spatie, en twee cijfers
if ( !isset($_POST['postcode']) or !preg_match( '~^\d{4} ?[a-zA-Z]{2}$~', $_POST['postcode'] ) ) {
$aErrors['postcode'] = 'Please fill in your postal code';
}
if ( count($aErrors) == 0 ) {
// We hebben alle gegevens
// Gegevens verwerken!
// Volgende pagina aub
header('Location: http://);
die();
}
}
/************************************************************************************************************
* Hier kunnen we een hele grote streep trekken. Alles wat hierboven was, was verwerking van de data, acties *
* bepalen etc. Alles wat hieronder staat, draait alleen maar om de uitvoer en de feedback. Niets hieronder *
* schrijft dingen naar de database, niets hierboven schrijft iets naar het scherm. Zo houden we het model *
* van de pagina gescheiden van de weergave! *
************************************************************************************************************/
?>
if ( $_SERVER['REQUEST_METHOD'] == 'POST' &&
isset($_POST['name'], $_POST['email'], $_POST['address1'], $_POST['address2'], $_POST['towncity'], $_POST['postcode']) )
{
// Er zijn gegevens verstuurd naar deze pagina!
// We gaan de errors in een array bijhouden
$aErrors = array();
// Een naam bevat letters en spaties (minimaal 3)
if ( !isset($_POST['name']) or !preg_match( '~^[\w ]{3,}$~', $_POST['name'] ) ) {
$aErrors['name'] = 'Please fill in your name';
}
// Een email-adres is wat ingewikkelder
if ( !isset($_POST['email']) or !preg_match( '~^[a-z0-9][a-z0-9_.\-]*@([a-z0-9]+\.)*[a-z0-9][a-z0-9\-]+\.([a-z]{2,6})$~i', $_POST['email'] ) ) {
$aErrors['email'] = 'Please fill in your e-mail address';
}
// Een adres heeft letters, cijfers, spaties (minimaal 5)
if ( !isset($_POST['address1']) or !preg_match( '~^[\w\d ]{5,}$~', $_POST['address1'] ) ) {
$aErrors['address1'] = 'Please fill in your adress';
}
// Een adres heeft letters, cijfers, spaties (niet verplicht)
if ( !isset($_POST['address2']) or !preg_match( '~^([\w\d ]{5,})?$~', $_POST['address2'] ) ) {
$aErrors['address2'] = 'Please fill in your adress';
}
// Een plaatsnaam heeft letters, spaties en misschien een apostrof
if ( !isset($_POST['towncity']) or !preg_match( '~^[\w\d\' ]*$~', $_POST['towncity'] ) ) {
$aErrors['towncity'] = 'Please fill in your town/city';
}
// Een postcode heeft vier cijfers, eventueel een spatie, en twee cijfers
if ( !isset($_POST['postcode']) or !preg_match( '~^\d{4} ?[a-zA-Z]{2}$~', $_POST['postcode'] ) ) {
$aErrors['postcode'] = 'Please fill in your postal code';
}
if ( count($aErrors) == 0 ) {
// We hebben alle gegevens
// Gegevens verwerken!
// Volgende pagina aub
header('Location: http://);
die();
}
}
/************************************************************************************************************
* Hier kunnen we een hele grote streep trekken. Alles wat hierboven was, was verwerking van de data, acties *
* bepalen etc. Alles wat hieronder staat, draait alleen maar om de uitvoer en de feedback. Niets hieronder *
* schrijft dingen naar de database, niets hierboven schrijft iets naar het scherm. Zo houden we het model *
* van de pagina gescheiden van de weergave! *
************************************************************************************************************/
?>
dit is het complete script dat wel correct werkt
dit even ter illustratie
http://pastebin.com/h3Wc9hvR
dus ik moet wat verkeerd gedaan hebben maar weet niet wat.
Gewijzigd op 26/07/2011 12:54:22 door paul prive
Wat pas je dan aan?
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
if ( $_SERVER['REQUEST_METHOD'] == 'POST' &&
isset($_POST['name'], $_POST['lastname'], $_POST['email'], $_POST['address1'], $_POST['towncity'], $_POST['postcode'], $_POST['phone'], $_POST['dogname'], $_POST['chip'], $_POST['ras'], $_POST['weight'], $_POST['gender'], $_POST['dinner'], $_POST['socialdog'], $_POST['socialhuman'], $_POST['flea'], $_POST['carre'], $_POST['parvovirose'], $_POST['hepatitis'], $_POST['kennelhoest'] ) )
{
// Er zijn gegevens verstuurd naar deze pagina!
// We gaan de errors in een array bijhouden
$aErrors = array();
// Een naam bevat letters en spaties (minimaal 3)
if ( !isset($_POST['name']) or !preg_match( '~^[\w ]{3,}$~', $_POST['name'] ) ) {
$aErrors['name'] = 'Uw voornaam moet ingevuld zijn';
}
// Een achternaam bevat letters en spaties (minimaal 3)
if ( !isset($_POST['lastname']) or !preg_match( '~^[\w ]{3,}$~', $_POST['lastname'] ) ) {
$aErrors['lastname'] = 'Uw Achternaam moet ingevuld zijn';
}
// Een email-adres is wat ingewikkelder
if ( !isset($_POST['email']) or !preg_match( '~^[a-z0-9][a-z0-9_.\-]*@([a-z0-9]+\.)*[a-z0-9][a-z0-9\-]+\.([a-z]{2,6})$~i', $_POST['email'] ) ) {
$aErrors['email'] = 'Uw email adres moet ingevuld zijn';
}
// Een adres heeft letters, cijfers, spaties (minimaal 5)
if ( !isset($_POST['address1']) or !preg_match( '~^[\w\d ]{5,}$~', $_POST['address1'] ) ) {
$aErrors['address1'] = 'Uw adres moet ingevuld zijn';
}
// Een plaatsnaam heeft letters, spaties en misschien een apostrof
if ( !isset($_POST['towncity']) or !preg_match( '~^[\w\d\' ]*$~', $_POST['towncity'] ) ) {
$aErrors['towncity'] = 'Uw woonplaats moet ingevuld zijn';
}
// Een postcode heeft vier cijfers, eventueel een spatie, en twee cijfers
if ( !isset($_POST['postcode']) or !preg_match( '~^\d{4}~', $_POST['postcode'] ) ) {
$aErrors['postcode'] = 'Uw postcode moet ingevuld zijn';
}
// Een telefoonnummer heeft minimaal 2 cijfers, eventueel een spatie, gevolgd door 9 cijfers
if ( !isset($_POST['phone']) or !preg_match('^[0-9]{10}$^', $_POST['phone'] ) ) {
$aErrors['phone'] = 'Uw telefoon/gsm nummer moet ingevuld zijn';
}
// Een hondenaam bevat letters en spaties (minimaal 3)
if ( !isset($_POST['dogname']) or !preg_match( '~^[\w ]{2,}$~', $_POST['dogname'] ) ) {
$aErrors['dogname'] = 'de naam van uw hond ingevuld zijn';
}
// Een chipnummer heeft letters, cijfers, spaties (minimaal 5)
if ( !isset($_POST['chip']) or !preg_match( '~^[\w\d ]{5,}$~', $_POST['chip'] ) ) {
$aErrors['chip'] = 'Het chipnummer moet ingevuld zijn';
}
// Een rasnaam bevat letters en spaties (minimaal 3)
if ( !isset($_POST['ras']) or !preg_match( '~^[\w ]{3,}$~', $_POST['ras'] ) ) {
$aErrors['ras'] = 'Het ras van uw hond moet ingevuld zijn';
}
// het gewicht heeft vier cijfers, eventueel een spatie, en twee letters
if ( !isset($_POST['weight']) or !preg_match( '~^\d{2} ?[a-zA-Z]{2}$~', $_POST['weight'] ) ) {
$aErrors['weight'] = 'het gewicht moet ingevuld zijn';
}
// geslacht
if(!isset($_POST['gender'])){
$aErrors['gender'] = "Geslacht moet ingevuld zijn.";
}
// voeding
if(!isset($_POST['dinner'])){
$aErrors['dinner'] = "Voeding moet ingevuld zijn";
}
// Sociaal met honden
if(!isset($_POST['socialdog'])){
$aErrors['socialdog'] = "Sociaal met honden moet ingevuld zijn";
}
// Sociaal met mensen
if(!isset($_POST['socialhuman'])){
$aErrors['socialhuman'] = "Sociaal met mensen moet ingevuld zijn";
}
// ontvlooid
if(!isset($_POST['flea'])){
$aErrors['flea'] = "ontvlooid moet ingevuld zijn";
}
// Carré
if(!isset($_POST['carre'])){
$aErrors['carre'] = "Carré moet ingevuld zijn";
}
// parvovirose
if(!isset($_POST['parvovirose'])){
$aErrors['parvovirose'] = "parvovirose moet ingevuld zijn";
}
// hepatitis
if(!isset($_POST['hepatitis'])){
$aErrors['hepatitis'] = "Hepatitis moet ingevuld zijn";
}
//Kennelhoest
if(!isset($_POST['kennelhoest'])){
$aErrors['kennelhoest'] = "Kennelhoest moet ingevuld zijn";
}
if ( count($aErrors) == 0 ) {
// We hebben alle gegevens
// Gegevens verwerken!
// Volgende pagina aub
header('Location: http://');
die();
}
}
/************************************************************************************************************
* Hier kunnen we een hele grote streep trekken. Alles wat hierboven was, was verwerking van de data, acties *
* bepalen etc. Alles wat hieronder staat, draait alleen maar om de uitvoer en de feedback. Niets hieronder *
* schrijft dingen naar de database, niets hierboven schrijft iets naar het scherm. Zo houden we het model *
* van de pagina gescheiden van de weergave! *
************************************************************************************************************/
?>
if ( $_SERVER['REQUEST_METHOD'] == 'POST' &&
isset($_POST['name'], $_POST['lastname'], $_POST['email'], $_POST['address1'], $_POST['towncity'], $_POST['postcode'], $_POST['phone'], $_POST['dogname'], $_POST['chip'], $_POST['ras'], $_POST['weight'], $_POST['gender'], $_POST['dinner'], $_POST['socialdog'], $_POST['socialhuman'], $_POST['flea'], $_POST['carre'], $_POST['parvovirose'], $_POST['hepatitis'], $_POST['kennelhoest'] ) )
{
// Er zijn gegevens verstuurd naar deze pagina!
// We gaan de errors in een array bijhouden
$aErrors = array();
// Een naam bevat letters en spaties (minimaal 3)
if ( !isset($_POST['name']) or !preg_match( '~^[\w ]{3,}$~', $_POST['name'] ) ) {
$aErrors['name'] = 'Uw voornaam moet ingevuld zijn';
}
// Een achternaam bevat letters en spaties (minimaal 3)
if ( !isset($_POST['lastname']) or !preg_match( '~^[\w ]{3,}$~', $_POST['lastname'] ) ) {
$aErrors['lastname'] = 'Uw Achternaam moet ingevuld zijn';
}
// Een email-adres is wat ingewikkelder
if ( !isset($_POST['email']) or !preg_match( '~^[a-z0-9][a-z0-9_.\-]*@([a-z0-9]+\.)*[a-z0-9][a-z0-9\-]+\.([a-z]{2,6})$~i', $_POST['email'] ) ) {
$aErrors['email'] = 'Uw email adres moet ingevuld zijn';
}
// Een adres heeft letters, cijfers, spaties (minimaal 5)
if ( !isset($_POST['address1']) or !preg_match( '~^[\w\d ]{5,}$~', $_POST['address1'] ) ) {
$aErrors['address1'] = 'Uw adres moet ingevuld zijn';
}
// Een plaatsnaam heeft letters, spaties en misschien een apostrof
if ( !isset($_POST['towncity']) or !preg_match( '~^[\w\d\' ]*$~', $_POST['towncity'] ) ) {
$aErrors['towncity'] = 'Uw woonplaats moet ingevuld zijn';
}
// Een postcode heeft vier cijfers, eventueel een spatie, en twee cijfers
if ( !isset($_POST['postcode']) or !preg_match( '~^\d{4}~', $_POST['postcode'] ) ) {
$aErrors['postcode'] = 'Uw postcode moet ingevuld zijn';
}
// Een telefoonnummer heeft minimaal 2 cijfers, eventueel een spatie, gevolgd door 9 cijfers
if ( !isset($_POST['phone']) or !preg_match('^[0-9]{10}$^', $_POST['phone'] ) ) {
$aErrors['phone'] = 'Uw telefoon/gsm nummer moet ingevuld zijn';
}
// Een hondenaam bevat letters en spaties (minimaal 3)
if ( !isset($_POST['dogname']) or !preg_match( '~^[\w ]{2,}$~', $_POST['dogname'] ) ) {
$aErrors['dogname'] = 'de naam van uw hond ingevuld zijn';
}
// Een chipnummer heeft letters, cijfers, spaties (minimaal 5)
if ( !isset($_POST['chip']) or !preg_match( '~^[\w\d ]{5,}$~', $_POST['chip'] ) ) {
$aErrors['chip'] = 'Het chipnummer moet ingevuld zijn';
}
// Een rasnaam bevat letters en spaties (minimaal 3)
if ( !isset($_POST['ras']) or !preg_match( '~^[\w ]{3,}$~', $_POST['ras'] ) ) {
$aErrors['ras'] = 'Het ras van uw hond moet ingevuld zijn';
}
// het gewicht heeft vier cijfers, eventueel een spatie, en twee letters
if ( !isset($_POST['weight']) or !preg_match( '~^\d{2} ?[a-zA-Z]{2}$~', $_POST['weight'] ) ) {
$aErrors['weight'] = 'het gewicht moet ingevuld zijn';
}
// geslacht
if(!isset($_POST['gender'])){
$aErrors['gender'] = "Geslacht moet ingevuld zijn.";
}
// voeding
if(!isset($_POST['dinner'])){
$aErrors['dinner'] = "Voeding moet ingevuld zijn";
}
// Sociaal met honden
if(!isset($_POST['socialdog'])){
$aErrors['socialdog'] = "Sociaal met honden moet ingevuld zijn";
}
// Sociaal met mensen
if(!isset($_POST['socialhuman'])){
$aErrors['socialhuman'] = "Sociaal met mensen moet ingevuld zijn";
}
// ontvlooid
if(!isset($_POST['flea'])){
$aErrors['flea'] = "ontvlooid moet ingevuld zijn";
}
// Carré
if(!isset($_POST['carre'])){
$aErrors['carre'] = "Carré moet ingevuld zijn";
}
// parvovirose
if(!isset($_POST['parvovirose'])){
$aErrors['parvovirose'] = "parvovirose moet ingevuld zijn";
}
// hepatitis
if(!isset($_POST['hepatitis'])){
$aErrors['hepatitis'] = "Hepatitis moet ingevuld zijn";
}
//Kennelhoest
if(!isset($_POST['kennelhoest'])){
$aErrors['kennelhoest'] = "Kennelhoest moet ingevuld zijn";
}
if ( count($aErrors) == 0 ) {
// We hebben alle gegevens
// Gegevens verwerken!
// Volgende pagina aub
header('Location: http://');
die();
}
}
/************************************************************************************************************
* Hier kunnen we een hele grote streep trekken. Alles wat hierboven was, was verwerking van de data, acties *
* bepalen etc. Alles wat hieronder staat, draait alleen maar om de uitvoer en de feedback. Niets hieronder *
* schrijft dingen naar de database, niets hierboven schrijft iets naar het scherm. Zo houden we het model *
* van de pagina gescheiden van de weergave! *
************************************************************************************************************/
?>
Gewijzigd op 26/07/2011 12:58:52 door paul prive
En wat werkt er niet en wat wel?
terwijl dat bij het origineel wel het geval is
ik doe dus iets verkeerd maar ik weet niet wat
Wat zegt een print_r($_POST);
Heb je wel een echo in een foreach() ergens?
waar moet ik deze invoeren?
Deze array moet je wel doorlopen d.m.v. een foreach().
- Aar - op 26/07/2011 13:07:03:
Bestaan die velden wel?
Wat zegt een print_r($_POST);
Wat zegt een print_r($_POST);
Op de eerste regel.
Gewijzigd op 26/07/2011 13:23:58 door - SanThe -
SanThe moet ik deze op de eerste regel van de code die ik om 12u58 gepost heb in voeren?