Hulp gevraagd bij mijn registratie script
De bedoeling is dat je de gegevens invult en na het drukken op Registreren word er voor nu alleen gecontroleerd op lege velden.
Als een veld leeg is moet er naast het betreffende invoerveld een melding komen gelieve ... in te vullen.
Indien alle velden ingevuld zijn worden de gegevens aan de database toegevoegd. Dit is gelukt maar nu wil ik de controle op lege velden toevoegen en dan gaat het mis. Heb van alles geprobeerd maar ik kom er gewoon niet uit en het lijkte me handig als een meer ervaren persoon naar mijn scriptje wilt kijken en mij uitleggen wat ik fout doe (en dat doe ik geheid haha).
Het onderstaande script levert de volgende fout op in php_errors.log en op de site zelf bij elk invoerveld in het formulier.
PHP Notice: Undefined variable: veldfout in /var/www/pndict/includes/form.php on line 80
Mijn idee was het toevoegen van $GLOBALS['veldfout'] = array(); gelijk onder de controle of het formulier verzonden is.
Dit leverde niks op, toen heb ik die regel erboven gezet gelijk onder de 2 includes.
Dat leverde de volgende error op bij elk invoerveld: PHP Notice: Undefined index: Voornaam in /var/www/pndict/includes/form.php on line 73.
Na even verdiept te hebben heb ik ipv $GLOBALS['veldfout'] = array(); het volgende toegevoegd onder de 2 includes:
$veldfout = array (
'Voornaam' => 'text',
'Achternaam' => 'text',
'Telefoon' => 'text',
'Email' => 'text',
'Gebruikersnaam' => 'text',
'Wachtwoord' => 'password',
'Wachtwoord2' => 'password',
'Wachtwoord2a' => 'password'
);
Echter word nu gelijk bij het openen van de pagina alle fouten naast de invoervelden weergegeven Gelieve uw ... in te vullen. Op een of andere manier zijn de velden altijd leeg en staat die melding er netjes naast wat natuurlijk niet de bedoeling is als je er voor de eerste keer heengaat. php_errors.log geeft nu geen fouten meer aan dus wat dat betreft ben ik goed bezig dacht ik zo alleen niet goed genoeg.
Kan iemand mij helpen met wat ik fout doe?
Ieders hulp word door mij zeer gewaardeerd en alvast hartelijk bedankt ervoor.
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
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
<?php
include $_SERVER['DOCUMENT_ROOT']. '/includes/db.inc.php';
include $_SERVER['DOCUMENT_ROOT']. '/includes/magicquotes.php';
$veldfout = array (
'Voornaam' => 'text',
'Achternaam' => 'text',
'Telefoon' => 'text',
'Email' => 'text',
'Gebruikersnaam' => 'text',
'Wachtwoord' => 'password',
'Wachtwoord2' => 'password',
'Wachtwoord2a' => 'password'
);
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
//formulier is verzonden, controleer velden:
if (empty($_POST['Voornaam'])) $veldfout['Voornaam'] = TRUE;
if (empty($_POST['Achternaam'])) $veldfout['Achternaam'] = TRUE;
if (empty($_POST['Telefoon'])) $veldfout['Telefoon'] = TRUE;
if (empty($_POST['Email'])) $veldfout['Email'] = TRUE;
if (empty($_POST['Gebruikersnaam'])) $veldfout['Gebruikersnaam'] = TRUE;
if (empty($_POST['Wachtwoord'])) $veldfout['Wachtwoord'] = TRUE;
if (empty($_POST['Wachtwoord2'])) $veldfout['Wachtwoord2'] = TRUE;
if ($_POST['Wachtwoord2'] != ($_POST['Wachtwoord'])) $veldfout['Wachtwoord2a'] = TRUE;
// Als $veldfout niet bestaat:
if (empty($veldfout)) {
try
{
$sql = 'INSERT INTO pndict_users SET
Geslacht = :Geslacht,
Voornaam = :Voornaam,
Achternaam = :Achternaam,
Telefoon = :Telefoon,
Email = :Email,
Gebruikersnaam = :Gebruikersnaam,
Wachtwoord = :Wachtwoord';
$s = $pdo->prepare($sql);
$s->bindValue(':Geslacht', $_POST['Geslacht']);
$s->bindValue(':Voornaam', $_POST['Voornaam']);
$s->bindValue(':Achternaam', $_POST['Achternaam']);
$s->bindValue(':Telefoon', $_POST['Telefoon']);
$s->bindValue(':Email', $_POST['Email']);
$s->bindValue(':Gebruikersnaam', $_POST['Gebruikersnaam']);
$s->bindValue(':Wachtwoord', $_POST['Wachtwoord']);
$s->execute();
}
catch (PDOException $e)
{
$output = 'Error adding submitted user: ' . $e->getMessage();
include $_SERVER['DOCUMENT_ROOT']. '/includes/status.php';
exit();
}
$output = 'Welkom bij Pnd-Ict.nl, Uw registratie is voltooid.';
include $_SERVER['DOCUMENT_ROOT']. '/includes/status.php';
exit();
}
} else {
// formulier niet verzonden
$nietverzonden = TRUE;
}
if (!empty($veldfout) || ($nietverzonden == TRUE)) {
// Formulier niet verzonden of fout, laat formulier zien:
?>
include $_SERVER['DOCUMENT_ROOT']. '/includes/db.inc.php';
include $_SERVER['DOCUMENT_ROOT']. '/includes/magicquotes.php';
$veldfout = array (
'Voornaam' => 'text',
'Achternaam' => 'text',
'Telefoon' => 'text',
'Email' => 'text',
'Gebruikersnaam' => 'text',
'Wachtwoord' => 'password',
'Wachtwoord2' => 'password',
'Wachtwoord2a' => 'password'
);
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
//formulier is verzonden, controleer velden:
if (empty($_POST['Voornaam'])) $veldfout['Voornaam'] = TRUE;
if (empty($_POST['Achternaam'])) $veldfout['Achternaam'] = TRUE;
if (empty($_POST['Telefoon'])) $veldfout['Telefoon'] = TRUE;
if (empty($_POST['Email'])) $veldfout['Email'] = TRUE;
if (empty($_POST['Gebruikersnaam'])) $veldfout['Gebruikersnaam'] = TRUE;
if (empty($_POST['Wachtwoord'])) $veldfout['Wachtwoord'] = TRUE;
if (empty($_POST['Wachtwoord2'])) $veldfout['Wachtwoord2'] = TRUE;
if ($_POST['Wachtwoord2'] != ($_POST['Wachtwoord'])) $veldfout['Wachtwoord2a'] = TRUE;
// Als $veldfout niet bestaat:
if (empty($veldfout)) {
try
{
$sql = 'INSERT INTO pndict_users SET
Geslacht = :Geslacht,
Voornaam = :Voornaam,
Achternaam = :Achternaam,
Telefoon = :Telefoon,
Email = :Email,
Gebruikersnaam = :Gebruikersnaam,
Wachtwoord = :Wachtwoord';
$s = $pdo->prepare($sql);
$s->bindValue(':Geslacht', $_POST['Geslacht']);
$s->bindValue(':Voornaam', $_POST['Voornaam']);
$s->bindValue(':Achternaam', $_POST['Achternaam']);
$s->bindValue(':Telefoon', $_POST['Telefoon']);
$s->bindValue(':Email', $_POST['Email']);
$s->bindValue(':Gebruikersnaam', $_POST['Gebruikersnaam']);
$s->bindValue(':Wachtwoord', $_POST['Wachtwoord']);
$s->execute();
}
catch (PDOException $e)
{
$output = 'Error adding submitted user: ' . $e->getMessage();
include $_SERVER['DOCUMENT_ROOT']. '/includes/status.php';
exit();
}
$output = 'Welkom bij Pnd-Ict.nl, Uw registratie is voltooid.';
include $_SERVER['DOCUMENT_ROOT']. '/includes/status.php';
exit();
}
} else {
// formulier niet verzonden
$nietverzonden = TRUE;
}
if (!empty($veldfout) || ($nietverzonden == TRUE)) {
// Formulier niet verzonden of fout, laat formulier zien:
?>
<form method="post">
<p id="label">Geslacht:</p><p id="select"> <select name="Geslacht">
<option value="Man">Man</option>
<option value="Vrouw">Vrouw</option>
</select></p>
<br><br>
<p id="label">Voornaam:<div id="input"><input type="text" name="Voornaam" value="" maxlength="100"></div>
<br><br>
<p id="label">Achternaam: <div id="input"><input type="text" name="Achternaam" value="" maxlength="100""></div>
Code (php)
<p id="label">Telefoon: <div id="input"><input type="text" name="Telefoon" value="" maxlength="100"></div>
Code (php)
<p id="label">E-mailadres: <div id="input"><input type="text" name="Email" value="" maxlength="100"></div>
<br><br>
<p id="label">Gebruikersnaam:<div id="input"><input type="text" name="Gebruikersnaam" value="" maxlength="100"></div>
Code (php)
<p id="label">Wachtwoord:<div id="input"><input type="password" name="Wachtwoord" value="" maxlength="100"></div>
Code (php)
<p id="label">Bevestig Wachtwoord:<div id="input"><input type="password" name="Wachtwoord2" value="" maxlength="100"></div>
Code (php)
Code (php)
<br><br><p id="submit"><input type="submit" value="Registreren">
</p>
</form>
Jos Duis op 26/03/2016 12:57:25:
Het onderstaande script levert de volgende fout op in php_errors.log en op de site zelf bij elk invoerveld in het formulier.
PHP Notice: Undefined variable: veldfout in /var/www/pndict/includes/form.php on line 80
PHP Notice: Undefined variable: veldfout in /var/www/pndict/includes/form.php on line 80
Deze is niet zo moeilijk. Als je een veld leeglaat dan zal de code in één van de if's springen en de variabele $veldfout aanmaken maar als je alle velden goed ingevuld zijn zal er in geen enkele if gesprongen worden en zal die variabele dus niet bestaan.
Gelukkig is dit heel makkelijk op te lossen door de variabele te initialiseren VOORDAT je deze elders gebruikt.
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
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
<?php
// initialisatie
$veldfout = array (
'Voornaam' => 'text',
'Achternaam' => 'text',
'Telefoon' => 'text',
'Email' => 'text',
'Gebruikersnaam' => 'text',
'Wachtwoord' => 'password',
'Wachtwoord2' => 'password',
'Wachtwoord2a' => 'password'
);
$veldfout = array(); // LEGE ARRAY
//ALS HET FORMULIER VERZONDEN IS
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
//formulier is verzonden, controleer velden:
if (empty($_POST['Voornaam'])) $veldfout['Voornaam'] = TRUE;
if (empty($_POST['Achternaam'])) $veldfout['Achternaam'] = TRUE;
if (empty($_POST['Telefoon'])) $veldfout['Telefoon'] = TRUE;
if (empty($_POST['Email'])) $veldfout['Email'] = TRUE;
if (empty($_POST['Gebruikersnaam'])) $veldfout['Gebruikersnaam'] = TRUE;
if (empty($_POST['Wachtwoord'])) $veldfout['Wachtwoord'] = TRUE;
if (empty($_POST['Wachtwoord2'])) $veldfout['Wachtwoord2'] = TRUE;
if ($_POST['Wachtwoord2'] != ($_POST['Wachtwoord'])) $veldfout['Wachtwoord2a'] = TRUE;
//....
?>
// initialisatie
$veldfout = array (
'Voornaam' => 'text',
'Achternaam' => 'text',
'Telefoon' => 'text',
'Email' => 'text',
'Gebruikersnaam' => 'text',
'Wachtwoord' => 'password',
'Wachtwoord2' => 'password',
'Wachtwoord2a' => 'password'
);
$veldfout = array(); // LEGE ARRAY
//ALS HET FORMULIER VERZONDEN IS
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
//formulier is verzonden, controleer velden:
if (empty($_POST['Voornaam'])) $veldfout['Voornaam'] = TRUE;
if (empty($_POST['Achternaam'])) $veldfout['Achternaam'] = TRUE;
if (empty($_POST['Telefoon'])) $veldfout['Telefoon'] = TRUE;
if (empty($_POST['Email'])) $veldfout['Email'] = TRUE;
if (empty($_POST['Gebruikersnaam'])) $veldfout['Gebruikersnaam'] = TRUE;
if (empty($_POST['Wachtwoord'])) $veldfout['Wachtwoord'] = TRUE;
if (empty($_POST['Wachtwoord2'])) $veldfout['Wachtwoord2'] = TRUE;
if ($_POST['Wachtwoord2'] != ($_POST['Wachtwoord'])) $veldfout['Wachtwoord2a'] = TRUE;
//....
?>
Verder twee andere adviezen:
a) nadat de gegevens in de database weggeschreven zijn een redirect doen en het script beeindigen:
Je voorkomt hiermee dat een gebruiker meerdere malen wordt toegevoegd aan de database als hij op F5 (vernieuwen van de pagina) drukt.
b) Ik ben GEEN FAN van de functie empty() omdat deze ook TRUE geeft als de gebruiker een 0 intypt en op verzenden klikt.
Gebruik bij de controle van tekst liever de functie strlen() en bij een array liever count().
Hier wat ik bedoel met empty():
Gewijzigd op 26/03/2016 14:53:37 door Frank Nietbelangrijk
Ook lijkt je $GLOBALS niet meer te gebruiken in bovenstaand codefragment.
Omdat ik denk dat er een aantal dingen door elkaar lopen stel ik voor dat je nogmaals kijkt wat de laatste toestand is van je code. Plaats deze (eventueel in een nieuwe bericht) tussen [code]...[/code] tags zodat deze fatsoenlijk leesbaar is.
Zet ook het volgende boven je script:
Zodat je actuele fouten direct in je script zelf worden getoond. Dat debugt doorgaans wat makkelijker dan deze uit je errrolog vissen, want mogelijk ben je dan aan het proberen niet langer van toepassing zijnde fouten te debuggen...
Dan nog een kanttekening:
Je gebruikt $veldfout voor twee verschillende dingen. Aan de ene kant om te definiëren uit wat voor veldtypen je formulier bestaat, en aan de andere kant overschrijf je deze veldtypen later met een boolean om aan te geven of er een fout optrade in dat veld :/.
Als je nu eens een apart array $errors introduceert, waarin je per veld(naam) bijhoudt of hier fouten zijn opgetreden? Ook zou je je oorspronkeleijke "$veldfout" array kunnen gebruiken om je formulier te genereren, en op grond van het veldtype bepaal je dan wat je precies afdrukt.
$veldfout = array (
'Voornaam' => 'text',
'Achternaam' => 'text',
'Telefoon' => 'text',
'Email' => 'text',
'Gebruikersnaam' => 'text',
'Wachtwoord' => 'password',
'Wachtwoord2' => 'password',
'Wachtwoord2a' => 'password'
);
Nou zijn alle fouten weg, maar bij het openen van de registratiepagina staat naast elk invoervak alle waardes van $veldfout vermeld voordat er ook maar op registreren is geklikt. Hij voert het gelijk uit i.p.v. na het drukken op registreren. Ik vermoed dat het te maken heeft met het stukje <form method="post"> en de 1e voorwaarde bovenaan
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
Enig idee hoe ik het anders moet schrijven of is het beter om het formulier te includen en er via het action attribuut naar te verwijzen en hoe kan ik dan als ik bv 2 velden invul en op registreren klik dezelfde pagina terugkrijgen met bij de overige velden de melding van $veldfout. Of moet ik daarvoor $sessions gaan gebruiken.
Toevoeging op 26/03/2016 15:07:42:
sorry mensen ik zag van frank alleen het eerste deel en krijg nu ineens het 2e deel van zijn reactie en een nieuwe nadat ik reageerde, ik ga me even inlezen in jullie reacties.
Toevoeging op 26/03/2016 15:12:12:
Thomas van den Heuvel op 26/03/2016 14:51:54:
Ik zie zo niet direct waarom op regel 80 $veldfout niet zo bestaan. Mogelijk is dit een oude foutmelding van een periode waarin bovenstaande code er anders uit zag.
Ook lijkt je $GLOBALS niet meer te gebruiken in bovenstaand codefragment.
Omdat ik denk dat er een aantal dingen door elkaar lopen stel ik voor dat je nogmaals kijkt wat de laatste toestand is van je code. Plaats deze (eventueel in een nieuwe bericht) tussen [code]...[/code] tags zodat deze fatsoenlijk leesbaar is.
Zet ook het volgende boven je script:
Zodat je actuele fouten direct in je script zelf worden getoond. Dat debugt doorgaans wat makkelijker dan deze uit je errrolog vissen, want mogelijk ben je dan aan het proberen niet langer van toepassing zijnde fouten te debuggen...
Dan nog een kanttekening:
Je gebruikt $veldfout voor twee verschillende dingen. Aan de ene kant om te definiëren uit wat voor veldtypen je formulier bestaat, en aan de andere kant overschrijf je deze veldtypen later met een boolean om aan te geven of er een fout optrade in dat veld :/.
Als je nu eens een apart array $errors introduceert, waarin je per veld(naam) bijhoudt of hier fouten zijn opgetreden? Ook zou je je oorspronkeleijke "$veldfout" array kunnen gebruiken om je formulier te genereren, en op grond van het veldtype bepaal je dan wat je precies afdrukt.
Ook lijkt je $GLOBALS niet meer te gebruiken in bovenstaand codefragment.
Omdat ik denk dat er een aantal dingen door elkaar lopen stel ik voor dat je nogmaals kijkt wat de laatste toestand is van je code. Plaats deze (eventueel in een nieuwe bericht) tussen [code]...[/code] tags zodat deze fatsoenlijk leesbaar is.
Zet ook het volgende boven je script:
Zodat je actuele fouten direct in je script zelf worden getoond. Dat debugt doorgaans wat makkelijker dan deze uit je errrolog vissen, want mogelijk ben je dan aan het proberen niet langer van toepassing zijnde fouten te debuggen...
Dan nog een kanttekening:
Je gebruikt $veldfout voor twee verschillende dingen. Aan de ene kant om te definiëren uit wat voor veldtypen je formulier bestaat, en aan de andere kant overschrijf je deze veldtypen later met een boolean om aan te geven of er een fout optrade in dat veld :/.
Als je nu eens een apart array $errors introduceert, waarin je per veld(naam) bijhoudt of hier fouten zijn opgetreden? Ook zou je je oorspronkeleijke "$veldfout" array kunnen gebruiken om je formulier te genereren, en op grond van het veldtype bepaal je dan wat je precies afdrukt.
Dat stukje van $GLOBALS was iets wat ik geprobeerd heb toe te voegen daarna kwam niet de melding over de variable maar undefined index toen heb ik dat weggehaald en bovenstaande code geschreven met die array en toen kreeg ik geen fouten maar gelijk bij elk invoerveld het resultaat van $veldfout voordat ik op registreren klikte.
Ik ben misschien ook wat onduidelijk in mijn uitleg omdat dit nieuw voor mij is.
Toevoeging op 26/03/2016 15:19:39:
Bedankt mensen ik ga jullie tips en adviezen gebruiken en het script aanpassen.
Als ik zover ben zet ik hem hier opnieuw neer tussen de tags.
Thnx ik waardeer jullie antwoorden.
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
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
<?php
// initialisatie
$errors = array();
$username = '';
// als het formulier verstuurd is
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$username = trim($_POST['username']);
//validatie
if(strlen($username) < 2) {
$errors['username'] = 'Gelieve uw naam in te vullen';
}
// verwerken van formulier
if(!count($errors)) {
// hier ga je wegschrijven in de database
header('Location: bedankt.php');
exit;
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Title of the document</title>
</head>
<body>
<form action method="post">
<?php if(isset($errors['username'])) echo '<p class="warning">' . $errors['username'] . '</p>'; ?>
<input type="text" name="username" value="<?php echo $username; ?>">
<button>Verzenden</button>
</form>
</body>
</html>
// initialisatie
$errors = array();
$username = '';
// als het formulier verstuurd is
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$username = trim($_POST['username']);
//validatie
if(strlen($username) < 2) {
$errors['username'] = 'Gelieve uw naam in te vullen';
}
// verwerken van formulier
if(!count($errors)) {
// hier ga je wegschrijven in de database
header('Location: bedankt.php');
exit;
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Title of the document</title>
</head>
<body>
<form action method="post">
<?php if(isset($errors['username'])) echo '<p class="warning">' . $errors['username'] . '</p>'; ?>
<input type="text" name="username" value="<?php echo $username; ?>">
<button>Verzenden</button>
</form>
</body>
</html>
Gewijzigd op 26/03/2016 15:47:10 door Frank Nietbelangrijk
oke bedankt voor het voorbeeld top
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<?php
include $_SERVER['DOCUMENT_ROOT']. '/includes/db.inc.php';
include $_SERVER['DOCUMENT_ROOT']. '/includes/magicquotes.php';
// initialisatie
$errors = array();
$Geslacht = '';
$Voornaam = '';
$Achternaam = '';
$Telefoon = '';
$Email = '';
$Gebruikersnaam = '';
$Wachtwoord = '';
$Wachtwoord2 = '';
$Wachtwoord2a = '';
// als het formulier verstuurd is
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$Geslacht = $_POST['Geslacht'];
$Voornaam = trim($_POST['Voornaam']);
$Achternaam = trim($_POST['Achternaam']);
$Telefoon = trim($_POST['Telefoon']);
$Email = trim($_POST['Email']);
$Gebruikersnaam = trim($_POST['Gebruikersnaam']);
$Wachtwoord = trim($_POST['Wachtwoord']);
$Wachtwoord2 = trim($_POST['Wachtwoord2']);
// validatie
if(strlen($Voornaam) < 2) {
$errors['Voornaam'] = 'Gelieve uw voornaam in te vullen';
}
if(strlen($Achternaam) < 2) {
$errors['Achternaam'] = 'Gelieve uw achternaam in te vullen';
}
if (strlen($Telefoon) < 10) {
$errors['Telefoon'] = 'Gelieve een geldig telefoonnummer op te geven: minimaal 10 cijfers';
}
if(strlen($Email) < 6) {
$errors['Email'] = 'Gelieve uw emailadres in te vullen: minimaal 6 tekens';
}
if(strlen($Gebruikersnaam) < 6) {
$errors['Gebruikersnaam'] = 'Gelieve uw gebruikersnaam in te vullen: minimaal 6 tekens';
}
if(strlen($Wachtwoord) < 8) {
$errors['Wachtwoord2'] = 'Gelieve uw wachtwoord te bevestigen: minimaal 8 tekens';
}
if ($_POST['Wachtwoord'] != $_POST['Wachtwoord2']) {
$errors['Wachtwoord2a'] = 'De wachtwoorden komen niet overeen, herhaal hier uw voorgaande wachtwoord';
}
// verwerken van formulier
if (!count($errors)) {
// wegschrijven naar database
try {
$sql = 'INSERT INTO pndict_users SET
Geslacht = :Geslacht,
Voornaam = :Voornaam,
Achternaam = :Achternaam,
Telefoon = :Telefoon,
Email = :Email,
Gebruikersnaam = :Gebruikersnaam,
Wachtwoord = :Wachtwoord';
$s = $pdo->prepare($sql);
$s->bindValue(':Geslacht', $_POST['Geslacht']);
$s->bindValue(':Voornaam', $_POST['Voornaam']);
$s->bindValue(':Achternaam', $_POST['Achternaam']);
$s->bindValue(':Telefoon', $_POST['Telefoon']);
$s->bindValue(':Email', $_POST['Email']);
$s->bindValue(':Gebruikersnaam', $_POST['Gebruikersnaam']);
$s->bindValue(':Wachtwoord', $_POST['Wachtwoord']);
$s->execute();
}
catch (PDOException $e)
{
$output = 'Error adding submitted user: ' . $e->getMessage();
include $_SERVER['DOCUMENT_ROOT']. '/includes/status.php';
exit;
}
$output = 'Welkom bij Pnd-Ict.nl, Uw registratie is voltooid.';
include $_SERVER['DOCUMENT_ROOT']. '/includes/status.php';
exit;
}
}
// formulier niet verzonden dus weergeven
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link href="regform.css" type="text/css" rel="stylesheet">
</head>
<body>
<form action method="post">
<fieldset>
<legend>Registratie formulier</legend>
<div class="label">Geslacht:<select name="Geslacht">
<option value="Man">Man</option>
<option value="Vrouw">Vrouw</option>
</select>
</div>
<div class="label">Voornaam:
<input type="text" name="Voornaam" value="" maxlength="100">
<?php if (isset($errors['Voornaam'])) echo '<p class="warning">' . $errors['Voornaam'] . '</p>'; ?>
</div>
<div class="label">Achternaam:<input type="text" name="Achternaam" value="" maxlength="100"">
<?php if (isset($errors['Achternaam'])) echo '<p class="warning">' . $errors['Achternaam'] . '</p>'; ?>
</div>
<div class="label">Telefoon:<input type="text" name="Telefoon" value="" maxlength="100">
<?php if (isset($errors['Telefoon'])) echo '<p class="warning">' . $errors['Telefoon'] . '</p>'; ?>
</div>
<div class="label">E-mailadres:<input type="text" name="Email" value="" maxlength="100">
<?php if (isset($errors['Email'])) echo '<p class="warning">' . $errors['Email'] . '</p>'; ?>
</div>
<div class="label">Gebruikersnaam:<input type="text" name="Gebruikersnaam" value="" maxlength="100">
<?php if (isset($errors['Gebruikersnaam'])) echo '<p class="warning">' . $errors['Gebruikersnaam'] . '</p>'; ?>
</div>
<div class="label">Wachtwoord:<input type="password" name="Wachtwoord" value="" maxlength="100">
<?php if (isset($errors['Wachtwoord'])) echo '<p class="warning">' . $errors['Wachtwoord'] . '</p>';?>
</div>
<div class="label">Bevestig Wachtwoord:<input type="password" name="Wachtwoord2" value="" maxlength="100">
<?php if (isset($errors['Wachtwoord2'])) echo '<p class="warning">' . $errors['Wachtwoord2'] . '</p>'; ?>
<?php if (isset($errors['Wachtwoord2a'])) echo '<p class="warning">' . $errors['Wachtwoord2a'] . '</p>';?>
</div>
<div class="submit"><input type="submit" value="Registreren">
</div>
</form>
</body>
</html>
include $_SERVER['DOCUMENT_ROOT']. '/includes/db.inc.php';
include $_SERVER['DOCUMENT_ROOT']. '/includes/magicquotes.php';
// initialisatie
$errors = array();
$Geslacht = '';
$Voornaam = '';
$Achternaam = '';
$Telefoon = '';
$Email = '';
$Gebruikersnaam = '';
$Wachtwoord = '';
$Wachtwoord2 = '';
$Wachtwoord2a = '';
// als het formulier verstuurd is
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$Geslacht = $_POST['Geslacht'];
$Voornaam = trim($_POST['Voornaam']);
$Achternaam = trim($_POST['Achternaam']);
$Telefoon = trim($_POST['Telefoon']);
$Email = trim($_POST['Email']);
$Gebruikersnaam = trim($_POST['Gebruikersnaam']);
$Wachtwoord = trim($_POST['Wachtwoord']);
$Wachtwoord2 = trim($_POST['Wachtwoord2']);
// validatie
if(strlen($Voornaam) < 2) {
$errors['Voornaam'] = 'Gelieve uw voornaam in te vullen';
}
if(strlen($Achternaam) < 2) {
$errors['Achternaam'] = 'Gelieve uw achternaam in te vullen';
}
if (strlen($Telefoon) < 10) {
$errors['Telefoon'] = 'Gelieve een geldig telefoonnummer op te geven: minimaal 10 cijfers';
}
if(strlen($Email) < 6) {
$errors['Email'] = 'Gelieve uw emailadres in te vullen: minimaal 6 tekens';
}
if(strlen($Gebruikersnaam) < 6) {
$errors['Gebruikersnaam'] = 'Gelieve uw gebruikersnaam in te vullen: minimaal 6 tekens';
}
if(strlen($Wachtwoord) < 8) {
$errors['Wachtwoord2'] = 'Gelieve uw wachtwoord te bevestigen: minimaal 8 tekens';
}
if ($_POST['Wachtwoord'] != $_POST['Wachtwoord2']) {
$errors['Wachtwoord2a'] = 'De wachtwoorden komen niet overeen, herhaal hier uw voorgaande wachtwoord';
}
// verwerken van formulier
if (!count($errors)) {
// wegschrijven naar database
try {
$sql = 'INSERT INTO pndict_users SET
Geslacht = :Geslacht,
Voornaam = :Voornaam,
Achternaam = :Achternaam,
Telefoon = :Telefoon,
Email = :Email,
Gebruikersnaam = :Gebruikersnaam,
Wachtwoord = :Wachtwoord';
$s = $pdo->prepare($sql);
$s->bindValue(':Geslacht', $_POST['Geslacht']);
$s->bindValue(':Voornaam', $_POST['Voornaam']);
$s->bindValue(':Achternaam', $_POST['Achternaam']);
$s->bindValue(':Telefoon', $_POST['Telefoon']);
$s->bindValue(':Email', $_POST['Email']);
$s->bindValue(':Gebruikersnaam', $_POST['Gebruikersnaam']);
$s->bindValue(':Wachtwoord', $_POST['Wachtwoord']);
$s->execute();
}
catch (PDOException $e)
{
$output = 'Error adding submitted user: ' . $e->getMessage();
include $_SERVER['DOCUMENT_ROOT']. '/includes/status.php';
exit;
}
$output = 'Welkom bij Pnd-Ict.nl, Uw registratie is voltooid.';
include $_SERVER['DOCUMENT_ROOT']. '/includes/status.php';
exit;
}
}
// formulier niet verzonden dus weergeven
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link href="regform.css" type="text/css" rel="stylesheet">
</head>
<body>
<form action method="post">
<fieldset>
<legend>Registratie formulier</legend>
<div class="label">Geslacht:<select name="Geslacht">
<option value="Man">Man</option>
<option value="Vrouw">Vrouw</option>
</select>
</div>
<div class="label">Voornaam:
<input type="text" name="Voornaam" value="" maxlength="100">
<?php if (isset($errors['Voornaam'])) echo '<p class="warning">' . $errors['Voornaam'] . '</p>'; ?>
</div>
<div class="label">Achternaam:<input type="text" name="Achternaam" value="" maxlength="100"">
<?php if (isset($errors['Achternaam'])) echo '<p class="warning">' . $errors['Achternaam'] . '</p>'; ?>
</div>
<div class="label">Telefoon:<input type="text" name="Telefoon" value="" maxlength="100">
<?php if (isset($errors['Telefoon'])) echo '<p class="warning">' . $errors['Telefoon'] . '</p>'; ?>
</div>
<div class="label">E-mailadres:<input type="text" name="Email" value="" maxlength="100">
<?php if (isset($errors['Email'])) echo '<p class="warning">' . $errors['Email'] . '</p>'; ?>
</div>
<div class="label">Gebruikersnaam:<input type="text" name="Gebruikersnaam" value="" maxlength="100">
<?php if (isset($errors['Gebruikersnaam'])) echo '<p class="warning">' . $errors['Gebruikersnaam'] . '</p>'; ?>
</div>
<div class="label">Wachtwoord:<input type="password" name="Wachtwoord" value="" maxlength="100">
<?php if (isset($errors['Wachtwoord'])) echo '<p class="warning">' . $errors['Wachtwoord'] . '</p>';?>
</div>
<div class="label">Bevestig Wachtwoord:<input type="password" name="Wachtwoord2" value="" maxlength="100">
<?php if (isset($errors['Wachtwoord2'])) echo '<p class="warning">' . $errors['Wachtwoord2'] . '</p>'; ?>
<?php if (isset($errors['Wachtwoord2a'])) echo '<p class="warning">' . $errors['Wachtwoord2a'] . '</p>';?>
</div>
<div class="submit"><input type="submit" value="Registreren">
</div>
</form>
</body>
</html>
Gewijzigd op 31/03/2016 22:57:24 door Jos Duis
Het laatste werkt niet, maar PHP blokken worden wel gedetecteerd (waarom snap ik nog steeds niet eigenlijk) zodat je bovenstaande soep krijgt :).
Toevoeging op 31/03/2016 23:00:49:
kan je mij vertellen waarom hij bovenstaande niet pakt maar als ik de inhoud van het css bestand kopieer en invoeg tussen <style type="text/css"> en </style> in het <head></head> gedeelte hij het wel doet.
Top bedankt, na het toevoegen van een basetag deed hij het.