Form input onthouden
In welke context zou je die checkForm gebruiken?
Ik zie je onmiddellijk naar een array grijpen, zou je dit willen testen op $_POST?
$formulier_validatie = checkForm($_POST);
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
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
<?php
# Set array $error_log voor het opslaan van alle foutmeldingen.
$error_log = array();
# Er gaat iets fout.
if(1 != 2){
# Foutmelding toevoegen.
$error_log[] = 'Helaas, 1 is niet gelijk aan 2.';
}
# Er gaat weer iets fout.
if(1 != 3){
# Foutmelding toevoegen.
$error_log[] = 'Helaas, 1 is ook niet gelijk aan 3.';
}
# Controleren of alles is goed gegaan.
if(empty($error_log)){
// Alles is goed gegaan, we kunnen dus verder.
}
# Controleren of er foutmeldingen zijn om weer te geven.
if(!empty($error_log)){
# Er is iets fout gegaan dus we gaan de foutmeldingen weergeven.
echo '<ul><li>'.implode('</li><li>', $error_log).'</li></ul>';
}
?>
# Set array $error_log voor het opslaan van alle foutmeldingen.
$error_log = array();
# Er gaat iets fout.
if(1 != 2){
# Foutmelding toevoegen.
$error_log[] = 'Helaas, 1 is niet gelijk aan 2.';
}
# Er gaat weer iets fout.
if(1 != 3){
# Foutmelding toevoegen.
$error_log[] = 'Helaas, 1 is ook niet gelijk aan 3.';
}
# Controleren of alles is goed gegaan.
if(empty($error_log)){
// Alles is goed gegaan, we kunnen dus verder.
}
# Controleren of er foutmeldingen zijn om weer te geven.
if(!empty($error_log)){
# Er is iets fout gegaan dus we gaan de foutmeldingen weergeven.
echo '<ul><li>'.implode('</li><li>', $error_log).'</li></ul>';
}
?>
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
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
function checkForm($formvalues,$descriptions) {
$values=explode(",",$formvalues);
$description = explode(",", $descriptions);
$count = 0;
$error = "";
foreach ($values as $value) {
if(isset($_POST[$value])) {
if($_POST[$value]<>"") {
$_SESSION[$value] = $_POST[$value];
} else {
$_SESSION[$value] = "";
$error = $error . "<li>" . $description[$count] . " is niet ingevuld.</li>";
}
} else {
$_SESSION[$value] = "";
$error = $error . "<li>" . $description[$count] . " is niet ingevuld.</li>";
}
$count++;
}
if($error<>"") {
return $error;
} else {
foreach($values as $value) {
session_unset($_SESSION[$value]);
}
return "";
}
}
$values=explode(",",$formvalues);
$description = explode(",", $descriptions);
$count = 0;
$error = "";
foreach ($values as $value) {
if(isset($_POST[$value])) {
if($_POST[$value]<>"") {
$_SESSION[$value] = $_POST[$value];
} else {
$_SESSION[$value] = "";
$error = $error . "<li>" . $description[$count] . " is niet ingevuld.</li>";
}
} else {
$_SESSION[$value] = "";
$error = $error . "<li>" . $description[$count] . " is niet ingevuld.</li>";
}
$count++;
}
if($error<>"") {
return $error;
} else {
foreach($values as $value) {
session_unset($_SESSION[$value]);
}
return "";
}
}
Nou heb ik een sessie loggin staan, waarmee ik ingelogd ben als gebruiker
Ik ben een bericht aan het schrijven in het gastenboek en ik doe
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
if(isset($_POST['send'])) {
if(checkForm("gb_name,gb_msg","Naam,Bericht")<>"") {
//Verstuur bericht
} else {
echo checkForm("gb_name,gb_msg","Naam,Bericht");
}
} else {
//Gastenboek formulier
}
if(checkForm("gb_name,gb_msg","Naam,Bericht")<>"") {
//Verstuur bericht
} else {
echo checkForm("gb_name,gb_msg","Naam,Bericht");
}
} else {
//Gastenboek formulier
}
Nadat het goed is gegaan, of terwijl de sessies worden unset. Doet ie ook mijn sessie loggedin weghalen. Ik heb gelezen dat session_unset() alle sessies weg haald, maar ik geef toch de waarde mee van welke sessie weg moet? session_unset($_SESSION[$value]) ?
Terwijl de functie in principe alleen de sessies gb_name en gb_msg moet unsetten
p.s. Excuses aan Kris & Mark,
Ik wist niet dat er een nieuwe pagina kwam, eigenlijk zou het mooi wezen als de vraag bovenin staat, en vervolgens de laatste reacties te zien zijn.
@kris, nee ik wil deze aanroepen als hierboven:
checkForm("form_waarde1,form_waarde2","Omschrijving1,omschrijving2")
@mark, Ja dit is eigenlijk misschien wel beter, ik ga hiernaar kijken om alle foutmelding ook in een array te stoppen, is overzichtelijker je hebt gelijk :)
En kleur meegeven doe ik nu aan de sessie van de niet ingevulde post, is wel strak nou :D
Gewijzigd op 21/12/2012 13:14:57 door Dennis WhoCares