Velden verplicht stellen
Ik heb onderstaande php-code gegenereerd. Deze wil ik gebruiken voor een nog te organiseren actie.
Als vervolgstap wil ik:
- Checken of alle open velden zijn ingevuld;
- Het veld "Tussenvoegsel" hoeft als enige veld niet per se zijn ingevuld;
- Checken of het e-mailadres een bestaand e-mailadres is;
- Checken of bij meerkeuze vragen 1 van de 2 opties zijn ingevuld.
Kan iemand mij helpen met het aanvullen van onderstaande code?
Alvast super bedankt!
<form action="mailto:[email protected]" method="post">
<em><b>Waar is bovenstaande foto genomen? Vul de straatnaam in:</b></em> <input maxlength="40" name="requiredAntwoord" size="20" type="text" /><br />
<br />
<em><b>Voornaam:</b></em> <input maxlength="40" name="requiredVoornaam" size="20" type="text" /><br />
<em><b>Tussenvoegsels:</b></em> <input maxlength="40" name="tussenvoegsel" size="20" type="text" /><br />
<em><b>Achternaam:</b></em> <input maxlength="40" name="requiredAchternaam" size="20" type="text" /><br />
<em><b>E-mailadres:</b></em> <input maxlength="40" name="requiredE-mailadres" size="20" type="text" /><br />
<em><b>Telefoonnummer:</b></em> <input maxlength="40" name="requiredTelefoonnummer" size="20" type="text" /><br />
<br />
<em>Ik heb de voorwaarden voor deze actie gelezen en ga hiermee akkoord:</em><br />
<input name="bril" type="radio" value="akkoord" />Ja <input name="bril" type="radio" value="nietakkoord" />Nee<br />
<br />
<em>Hierbij abonneer ik mij op de e-mailnieuwsbrief:</em><br />
<input name="bril" type="radio" value="welnieuwsbrief" />Ja <input name="bril" type="radio" value="geennieuwsbrief" />Nee<br /><br />
<input type="submit" value="Verzenden" />
</form>
Gewijzigd op 28/08/2011 18:56:36 door JeanPaul Limpens
je kan met javascript de checks doen maar dat wordt nooit waterdicht
- Checken of bij meerkeuze vragen 1 van de 2 opties zijn ingevuld.
Code (php)
1
2
3
2
3
if (($keuzen)== "-") { // - is als je niet's hebt ingevuld ( dus dit moet standaard zijn)
echo "je hebt keuze leeg niet opgegeven"
}
echo "je hebt keuze leeg niet opgegeven"
}
Kan zijn dat ik er naast zit
is niet getest ;)
Gewijzigd op 28/08/2011 21:40:13 door php knipper
empty is een waardeloze functie. Kijk maar eens op php.net...
Gewijzigd op 28/08/2011 21:42:43 door php knipper
Gezien het commentaar hier boven:
- Is er een waterdichte methode?
Bovenstaande opmerkingen controleren alleen (met php!) of een veld niet leeg is, maar een . plaatsen zou dan al voldoende zijn. Het controleren of een mailadres bestaat is eigenlijk alleen mogelijk door een mail te sturen en wachten of je een bericht krijgt dat de mail niet af te leveren was. Wat wil je controleren aan een mailadres: meer dan dat het een @ moet bevatten en een . valt er niet te controleren.
Telefoonnummer: hoe internationaal kan het zijn? Je geeft aan dat de lengte max. 40 mag zijn. In NL is het 'voordeel' dat bijna alle tel.nr. bestaan uit 10 cijfers. Daar kun je eventueel op controleren. Of iemand een bestaand (eigen) nummer invoert: is niet te checken, behalve door te bellen...
Kortom waterdicht: nee.
- Ik wil het formulier in Facebook inladen. Is er een andere manier om het formulier te verzenden, waardoor de kans op SPAM kleiner is? Het is namelijk wel noodzakelijk dat de mail aan komt.
- Het invullen van een bestaand mailadres is in feite wel geborgd lijkt mij. De winnaar van de actie die georganiseerd wordt krijgt namelijk via mail bericht.
- Telefoonnummer is in feite alleen voor NL. Ik heb het veld alleen niet aangepast.
- Overige adres gegevens moeten correct worden ingevuld om als winnaar aanspraak te mogen maken op de prijs.
email:
{
required: "Email adres is verplicht",
email: "Het email adres moet de opmaak <a href="mailto:'[email protected]'">'[email protected]'</a> hebben"
}
kijk hier maar eens naar:
http://docs.jquery.com/Plugins/validation
Gewijzigd op 29/08/2011 11:47:31 door raymond van Os
Raymond reniers op 29/08/2011 11:43:47:
ik zou het controleren met JQuery doen.
email:
{
required: "Email adres is verplicht",
email: "Het email adres moet de opmaak <a href="mailto:'[email protected]'">'[email protected]'</a> hebben"
}
kijk hier maar eens naar:
http://docs.jquery.com/Plugins/validation
email:
{
required: "Email adres is verplicht",
email: "Het email adres moet de opmaak <a href="mailto:'[email protected]'">'[email protected]'</a> hebben"
}
kijk hier maar eens naar:
http://docs.jquery.com/Plugins/validation
Juist niet met jQuery. Dit is zo verschrikkelijk makkelijk te omzeilen. Liever met PHP controleren aangezien dit veel veiliger is.
Je zou het wel met jQuery kunnen valideren en daarna nog extra met PHP maar dat is een beetje dubbelop.
Kan iemand mij helpen met het genereren van de juist code de van de eerder door mij geposte code? Ik ben verder helaas niet thuis in php.
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
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
<?php
//Als formulier is gepost
if ( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
$formOk = true;
$text = '';
foreach( $_POST as $name => $value )
{
if ( $value == '' )
{
$formOk = false;
}
$text .= $name . ' - ' . $value . '
';
}
}
if ( $formOk )
{
mail( '[email protected]', 'onderwerp', $text, 'From: [email protected]' );
echo 'Formulier verstuurd';
}
else
{
echo 'Fout in formulier';
}
?>
//Als formulier is gepost
if ( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
$formOk = true;
$text = '';
foreach( $_POST as $name => $value )
{
if ( $value == '' )
{
$formOk = false;
}
$text .= $name . ' - ' . $value . '
';
}
}
if ( $formOk )
{
mail( '[email protected]', 'onderwerp', $text, 'From: [email protected]' );
echo 'Formulier verstuurd';
}
else
{
echo 'Fout in formulier';
}
?>
Niet getest! Maar zou moeten werken.
Dillen Meijboom op 29/08/2011 12:44:07:
Ten 1e moet je dan geen mailto gebruiken maar action="jebestand.php" dan in jebestand.php:
Niet getest! Maar zou moeten werken.
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
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
<?php
//Als formulier is gepost
if ( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
$formOk = true;
$text = '';
foreach( $_POST as $name => $value )
{
if ( $value == '' )
{
$formOk = false;
}
$text .= $name . ' - ' . $value . '
';
}
}
if ( $formOk )
{
mail( '[email protected]', 'onderwerp', $text, 'From: [email protected]' );
echo 'Formulier verstuurd';
}
else
{
echo 'Fout in formulier';
}
?>
//Als formulier is gepost
if ( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
$formOk = true;
$text = '';
foreach( $_POST as $name => $value )
{
if ( $value == '' )
{
$formOk = false;
}
$text .= $name . ' - ' . $value . '
';
}
}
if ( $formOk )
{
mail( '[email protected]', 'onderwerp', $text, 'From: [email protected]' );
echo 'Formulier verstuurd';
}
else
{
echo 'Fout in formulier';
}
?>
Niet getest! Maar zou moeten werken.
- Waar in mijn code moet ik bovenstaande code plakken?
- Als ik geen mailto gebruik, hoe zorg ik er dan voor dat het ingevulde formulier in mijn mailbox komt?
de code stuurt het naar je mailbox
Code (php)
1
2
2
mail( '[email protected]', 'onderwerp', $text, 'From: [email protected]' );
echo 'Formulier verstuurd';
echo 'Formulier verstuurd';
je kan dat in het zelfde pagina doen of een nieuwe. als je dezelfde wil gebruiken kan je gewoon
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
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
<?php
//Als formulier is gepost
if ( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
$formOk = true;
$text = '';
foreach( $_POST as $name => $value )
{
if ( $value == '' )
{
$formOk = false;
}
$text .= $name . ' - ' . $value . '
';
}
}
if ( $formOk )
{
mail( '[email protected]', 'onderwerp', $text, 'From: [email protected]' );
echo 'Formulier verstuurd';
}
else
{
echo 'Fout in formulier';
}
}
else // als niet gepost is
{
// code van het formulier
}
?>
//Als formulier is gepost
if ( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
$formOk = true;
$text = '';
foreach( $_POST as $name => $value )
{
if ( $value == '' )
{
$formOk = false;
}
$text .= $name . ' - ' . $value . '
';
}
}
if ( $formOk )
{
mail( '[email protected]', 'onderwerp', $text, 'From: [email protected]' );
echo 'Formulier verstuurd';
}
else
{
echo 'Fout in formulier';
}
}
else // als niet gepost is
{
// code van het formulier
}
?>
Quote:
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
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
<?php
//Als formulier is gepost
if ( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
$formOk = true;
$text = '';
foreach( $_POST as $name => $value )
{
if ( $value == '' )
{
$formOk = false;
}
$text .= $name . ' - ' . $value . '
';
}
}
if ( $formOk )
{
mail( '[email protected]', 'onderwerp', $text, 'From: [email protected]' );
echo 'Formulier verstuurd';
}
else
{
echo 'Fout in formulier';
}
}
else // als niet gepost is
{
// <form action="mailto:[email protected]" method="post">
<em><b>Waar is bovenstaande foto genomen? Vul de straatnaam in:</b></em> <input maxlength="40" name="requiredAntwoord" size="20" type="text" /><br />
<br />
<em><b>Voornaam:</b></em> <input maxlength="40" name="requiredVoornaam" size="20" type="text" /><br />
<em><b>Tussenvoegsels:</b></em> <input maxlength="40" name="tussenvoegsel" size="20" type="text" /><br />
<em><b>Achternaam:</b></em> <input maxlength="40" name="requiredAchternaam" size="20" type="text" /><br />
<em><b>E-mailadres:</b></em> <input maxlength="40" name="requiredE-mailadres" size="20" type="text" /><br />
<em><b>Telefoonnummer:</b></em> <input maxlength="40" name="requiredTelefoonnummer" size="20" type="text" /><br />
<br />
<em>Ik heb de voorwaarden voor deze actie gelezen en ga hiermee akkoord:</em><br />
<input name="bril" type="radio" value="akkoord" />Ja <input name="bril" type="radio" value="nietakkoord" />Nee<br />
<br />
<em>Hierbij abonneer ik mij op de e-mailnieuwsbrief:</em><br />
<input name="bril" type="radio" value="welnieuwsbrief" />Ja <input name="bril" type="radio" value="geennieuwsbrief" />Nee<br /><br />
<input type="submit" value="Verzenden" />
</form>
}
?>
//Als formulier is gepost
if ( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
$formOk = true;
$text = '';
foreach( $_POST as $name => $value )
{
if ( $value == '' )
{
$formOk = false;
}
$text .= $name . ' - ' . $value . '
';
}
}
if ( $formOk )
{
mail( '[email protected]', 'onderwerp', $text, 'From: [email protected]' );
echo 'Formulier verstuurd';
}
else
{
echo 'Fout in formulier';
}
}
else // als niet gepost is
{
// <form action="mailto:[email protected]" method="post">
<em><b>Waar is bovenstaande foto genomen? Vul de straatnaam in:</b></em> <input maxlength="40" name="requiredAntwoord" size="20" type="text" /><br />
<br />
<em><b>Voornaam:</b></em> <input maxlength="40" name="requiredVoornaam" size="20" type="text" /><br />
<em><b>Tussenvoegsels:</b></em> <input maxlength="40" name="tussenvoegsel" size="20" type="text" /><br />
<em><b>Achternaam:</b></em> <input maxlength="40" name="requiredAchternaam" size="20" type="text" /><br />
<em><b>E-mailadres:</b></em> <input maxlength="40" name="requiredE-mailadres" size="20" type="text" /><br />
<em><b>Telefoonnummer:</b></em> <input maxlength="40" name="requiredTelefoonnummer" size="20" type="text" /><br />
<br />
<em>Ik heb de voorwaarden voor deze actie gelezen en ga hiermee akkoord:</em><br />
<input name="bril" type="radio" value="akkoord" />Ja <input name="bril" type="radio" value="nietakkoord" />Nee<br />
<br />
<em>Hierbij abonneer ik mij op de e-mailnieuwsbrief:</em><br />
<input name="bril" type="radio" value="welnieuwsbrief" />Ja <input name="bril" type="radio" value="geennieuwsbrief" />Nee<br /><br />
<input type="submit" value="Verzenden" />
</form>
}
?>
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
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
<?php
//Als formulier is gepost
if ( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
$formOk = true;
$text = '';
foreach( $_POST as $name => $value )
{
if ( $value == '' )
{
$formOk = false;
}
$text .= $name . ' - ' . $value . '
';
}
if ( $formOk )
{
mail( '[email protected]', 'onderwerp', $text, 'From: [email protected]' );
echo 'Formulier verstuurd';
}
else
{
echo 'Fout in formulier';
}
}
else // als niet gepost is
{
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<em><b>Waar is bovenstaande foto genomen? Vul de straatnaam in:</b></em> <input maxlength="40" name="requiredAntwoord" size="20" type="text" /><br />
<br />
<em><b>Voornaam:</b></em> <input maxlength="40" name="requiredVoornaam" size="20" type="text" /><br />
<em><b>Tussenvoegsels:</b></em> <input maxlength="40" name="tussenvoegsel" size="20" type="text" /><br />
<em><b>Achternaam:</b></em> <input maxlength="40" name="requiredAchternaam" size="20" type="text" /><br />
<em><b>E-mailadres:</b></em> <input maxlength="40" name="requiredE-mailadres" size="20" type="text" /><br />
<em><b>Telefoonnummer:</b></em> <input maxlength="40" name="requiredTelefoonnummer" size="20" type="text" /><br />
<br />
<em>Ik heb de voorwaarden voor deze actie gelezen en ga hiermee akkoord:</em><br />
<input name="bril" type="radio" value="akkoord" />Ja <input name="bril" type="radio" value="nietakkoord" />Nee<br />
<br />
<em>Hierbij abonneer ik mij op de e-mailnieuwsbrief:</em><br />
<input name="bril" type="radio" value="welnieuwsbrief" />Ja <input name="bril" type="radio" value="geennieuwsbrief" />Nee<br /><br />
<input type="submit" value="Verzenden" />
</form>
<?php
}
?>
//Als formulier is gepost
if ( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
$formOk = true;
$text = '';
foreach( $_POST as $name => $value )
{
if ( $value == '' )
{
$formOk = false;
}
$text .= $name . ' - ' . $value . '
';
}
if ( $formOk )
{
mail( '[email protected]', 'onderwerp', $text, 'From: [email protected]' );
echo 'Formulier verstuurd';
}
else
{
echo 'Fout in formulier';
}
}
else // als niet gepost is
{
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<em><b>Waar is bovenstaande foto genomen? Vul de straatnaam in:</b></em> <input maxlength="40" name="requiredAntwoord" size="20" type="text" /><br />
<br />
<em><b>Voornaam:</b></em> <input maxlength="40" name="requiredVoornaam" size="20" type="text" /><br />
<em><b>Tussenvoegsels:</b></em> <input maxlength="40" name="tussenvoegsel" size="20" type="text" /><br />
<em><b>Achternaam:</b></em> <input maxlength="40" name="requiredAchternaam" size="20" type="text" /><br />
<em><b>E-mailadres:</b></em> <input maxlength="40" name="requiredE-mailadres" size="20" type="text" /><br />
<em><b>Telefoonnummer:</b></em> <input maxlength="40" name="requiredTelefoonnummer" size="20" type="text" /><br />
<br />
<em>Ik heb de voorwaarden voor deze actie gelezen en ga hiermee akkoord:</em><br />
<input name="bril" type="radio" value="akkoord" />Ja <input name="bril" type="radio" value="nietakkoord" />Nee<br />
<br />
<em>Hierbij abonneer ik mij op de e-mailnieuwsbrief:</em><br />
<input name="bril" type="radio" value="welnieuwsbrief" />Ja <input name="bril" type="radio" value="geennieuwsbrief" />Nee<br /><br />
<input type="submit" value="Verzenden" />
</form>
<?php
}
?>
nu geeft hij wel dat er een fout is op het formulier maar dan geeft hij het formulier niet meer weer.
Na de laatste 'else' staat html. Dus je moet daar php eerst even afsluiten. En helemaal onderaan moet je voor de } php weer openen.
- SanThe - op 29/08/2011 14:00:14:
Na de laatste 'else' staat html. Dus je moet daar php eerst even afsluiten. En helemaal onderaan moet je voor de } php weer openen.
is dat dan fout :? ( ik weet dat het ook kan met een echo )
Gewijzigd op 29/08/2011 14:04:44 door php knipper
Php knipper op 29/08/2011 14:03:40:
is dat dan fout :? ( ik weet dat het ook kan met een echo )
- SanThe - op 29/08/2011 14:00:14:
Na de laatste 'else' staat html. Dus je moet daar php eerst even afsluiten. En helemaal onderaan moet je voor de } php weer openen.
is dat dan fout :? ( ik weet dat het ook kan met een echo )
Dit was tegen de TS. Dit is precies wat jij gedaan hebt en is uiteraard correct.
- SanThe - op 29/08/2011 14:00:14:
Na de laatste 'else' staat html. Dus je moet daar php eerst even afsluiten. En helemaal onderaan moet je voor de } php weer openen.
Hoe zou de code dan moeten zijn?
Zie PHP Knipper's post.