controle veld voor e-mail
Hello all,
Ik heb een script dat perfect werkt alleen heb ik een vraag:
Ik heb een e-mailveld, maar soms maken de mensen een tikfoutje waardoor het emailadres dus niet klopt, erg jammer natuurlijk. Nu wil ik dus een controle veld aanmaken, zodat ze dus twee keer hun emailadres dienen in te vullen en als deze dus gelijk zijn, dan wordt het script afgerond. Ik heb overal gezocht, maar kan het nergens vinden op het internet en hier op het forum.
Heeft iemand de oplossing????
Ik heb een script dat perfect werkt alleen heb ik een vraag:
Ik heb een e-mailveld, maar soms maken de mensen een tikfoutje waardoor het emailadres dus niet klopt, erg jammer natuurlijk. Nu wil ik dus een controle veld aanmaken, zodat ze dus twee keer hun emailadres dienen in te vullen en als deze dus gelijk zijn, dan wordt het script afgerond. Ik heb overal gezocht, maar kan het nergens vinden op het internet en hier op het forum.
Heeft iemand de oplossing????
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
if (preg_match('/^[A-Za-z0-9\+._-]+@[A-Za-z0-9._-]+\.[A-Za-z]{2,6}$/', $Jemailvariabelel)){
//Verdere mailafhandeling
}
else
{
die('Ohoh, verkeerd mailadres!');
}
?>
if (preg_match('/^[A-Za-z0-9\+._-]+@[A-Za-z0-9._-]+\.[A-Za-z]{2,6}$/', $Jemailvariabelel)){
//Verdere mailafhandeling
}
else
{
die('Ohoh, verkeerd mailadres!');
}
?>
Werkt ook natuurlijk, maar waarom niet gewoon een veld gebruiken met goede afhandeling? Weet je zeker dat het een emailadres is ;-)
Of je gebruikt ze gewoon allebei :p
Of je gebruikt ze gewoon allebei :p
merci! alleen werkt mijn script met if en elseif met empty. Dus het script kijkt of niet iets leeg is. Bij mijn else wordt dus alles opgenomen in de database. Als ik zo naar jullie suggesties kijk, dan is de else de error en bij mij is het dus net andersom. Hoe verwerk ik het dus in mijn script?
Ik heb dus:
Ik heb dus:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
if(empty($_POST['naam']))
{
echo "<SCRIPT LANGUAGE=JavaScript>window.alert('Je hebt de volledige naam niet ingevuld.')</SCRIPT>";
echo "<script language=\"JavaScript\">window.history.back()</script>";
}
elseif(empty($_POST['roepnaam']))
{
echo "<SCRIPT LANGUAGE=JavaScript>window.alert('Je hebt de roepnaam nog niet ingevuld')</SCRIPT>";
echo "<script language=\"JavaScript\">window.history.back()</script>";
}
// en nog meer
else
{ $result = mysql_query($sql);
{
echo "<SCRIPT LANGUAGE=JavaScript>window.alert('Je hebt de volledige naam niet ingevuld.')</SCRIPT>";
echo "<script language=\"JavaScript\">window.history.back()</script>";
}
elseif(empty($_POST['roepnaam']))
{
echo "<SCRIPT LANGUAGE=JavaScript>window.alert('Je hebt de roepnaam nog niet ingevuld')</SCRIPT>";
echo "<script language=\"JavaScript\">window.history.back()</script>";
}
// en nog meer
else
{ $result = mysql_query($sql);
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
elseif (!preg_match('/^[A-Za-z0-9\+._-]+@[A-Za-z0-9._-]+\.[A-Za-z]{2,6}$/', $email1)){
echo "<SCRIPT LANGUAGE=JavaScript>window.alert('Je hebt de email niet goed ingevuld')</SCRIPT>";
echo "<script language=\"JavaScript\">window.history.back()</script>";
}
?>
elseif (!preg_match('/^[A-Za-z0-9\+._-]+@[A-Za-z0-9._-]+\.[A-Za-z]{2,6}$/', $email1)){
echo "<SCRIPT LANGUAGE=JavaScript>window.alert('Je hebt de email niet goed ingevuld')</SCRIPT>";
echo "<script language=\"JavaScript\">window.history.back()</script>";
}
?>
Denk dat dat wel zou moeten werken
Gewijzigd op 01/01/1970 01:00:00 door Luke Banning
thanx, maar.... (tja sorry)
Als ik dit heb genoteerd:
Dan geeft ie bij het leeglaten van de beide velden de errormessage. Alleen is de optie van het invullen van een emailadres niet verplicht en dat wil ik graag zo houden.
ter info: mijn eerste emailveld is $email en controle veld is $email_controle (zo in de code goed ingevuld?)
Als ik dit heb genoteerd:
Code (php)
1
2
3
4
5
2
3
4
5
<?php elseif (!preg_match('/^[A-Za-z0-9\+._-]+@[A-Za-z0-9._-]+\.[A-Za-z]{2,6}$email_controle/', $email ))
{
echo "<SCRIPT LANGUAGE=JavaScript>window.alert('Je hebt de email niet goed ingevuld')</SCRIPT>";
echo "<script language=\"JavaScript\">window.history.back()</script>";
} ?>
{
echo "<SCRIPT LANGUAGE=JavaScript>window.alert('Je hebt de email niet goed ingevuld')</SCRIPT>";
echo "<script language=\"JavaScript\">window.history.back()</script>";
} ?>
Dan geeft ie bij het leeglaten van de beide velden de errormessage. Alleen is de optie van het invullen van een emailadres niet verplicht en dat wil ik graag zo houden.
ter info: mijn eerste emailveld is $email en controle veld is $email_controle (zo in de code goed ingevuld?)
oke, oke ;-)
Dit misschien? :)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
elseif($_POST['email1'] != $_POST['email2'])
{
echo 'De email adressen komen niet overeen';
}
elseif (empty($_POST['email']))
{
//Geen controle
}
elseif (empty($_POST['email_controle']))
{
//Geen controle
}
elseif (!preg_match('/^[A-Za-z0-9\+._-]+@[A-Za-z0-9._-]+\.[A-Za-z]{2,6}$/', $_POST['email']))
{
die ('Wel een correct emailadres invoeren!');
}
elseif (!preg_match('/^[A-Za-z0-9\+._-]+@[A-Za-z0-9._-]+\.[A-Za-z]{2,6}$/', $_POST['email_controle']))
{
die ('Wel een correct emailadres invoeren!');
}
?>
elseif($_POST['email1'] != $_POST['email2'])
{
echo 'De email adressen komen niet overeen';
}
elseif (empty($_POST['email']))
{
//Geen controle
}
elseif (empty($_POST['email_controle']))
{
//Geen controle
}
elseif (!preg_match('/^[A-Za-z0-9\+._-]+@[A-Za-z0-9._-]+\.[A-Za-z]{2,6}$/', $_POST['email']))
{
die ('Wel een correct emailadres invoeren!');
}
elseif (!preg_match('/^[A-Za-z0-9\+._-]+@[A-Za-z0-9._-]+\.[A-Za-z]{2,6}$/', $_POST['email_controle']))
{
die ('Wel een correct emailadres invoeren!');
}
?>
Dit misschien? :)
Gewijzigd op 01/01/1970 01:00:00 door Luke Banning
PHP 5.2 kent ook de filter extensie, daarmee kan je ook e-mail adressen valideren.
Hier een class die de check voor je uitvoert:
Ps. Mocht er commentaar op zijn, laat het even weten! Heb nog een hoop OOP te leren...
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
// returns the emailaddress or FALSE
class clsEmailCheck {
public $m_sEmail = '';
private $m_sDomein = '';
function __construct($sEmail) {
$this->m_sEmail = $sEmail;
if(preg_match( '/^[0-9a-z_\-]+(\.[0-9a-z_\-]+)*@[0-9a-z\-]+(\.[0-9a-z\-]+)*(\.([a-z]){2,6})$/i', $this->m_sEmail)){
list( , $this->m_sDomein ) = explode( '@', $this->m_sEmail );
if(checkdnsrr($this->m_sDomein)){
return $this->m_sEmail;
}else {
return false;
}
}
else {
return false;
}
}
function __destruct(){
unset($this->m_sEmail);
}
}
?>
// returns the emailaddress or FALSE
class clsEmailCheck {
public $m_sEmail = '';
private $m_sDomein = '';
function __construct($sEmail) {
$this->m_sEmail = $sEmail;
if(preg_match( '/^[0-9a-z_\-]+(\.[0-9a-z_\-]+)*@[0-9a-z\-]+(\.[0-9a-z\-]+)*(\.([a-z]){2,6})$/i', $this->m_sEmail)){
list( , $this->m_sDomein ) = explode( '@', $this->m_sEmail );
if(checkdnsrr($this->m_sDomein)){
return $this->m_sEmail;
}else {
return false;
}
}
else {
return false;
}
}
function __destruct(){
unset($this->m_sEmail);
}
}
?>
Ps. Mocht er commentaar op zijn, laat het even weten! Heb nog een hoop OOP te leren...
thanx Luke :P Ik heb het volgende van je overgenomen:
De andere zaken niet, want het invullen van een emailadres is bij mij niet verplicht en als ik de andere opties toevoeg, dan wil dit natuurlijk niet!!
Frank.....merci voor de suggestie, maar is voor mij niet te volgen :D
Ohja...nog een andere vraag. Jullie zien in mijn echos met Javascript window.history.back(). Maar soms zie ik ook wel eens dat het popupje niet als een nieuwe pagina (zeg maar) wordt geladen en dat je dus het formulier gewoon nog op het scherm ziet. Je klikt het dan weg en je gaat dan niet met window.history.back() werken. Weten jullie een beetje wat ik bedoel?
Code (php)
De andere zaken niet, want het invullen van een emailadres is bij mij niet verplicht en als ik de andere opties toevoeg, dan wil dit natuurlijk niet!!
Frank.....merci voor de suggestie, maar is voor mij niet te volgen :D
Ohja...nog een andere vraag. Jullie zien in mijn echos met Javascript window.history.back(). Maar soms zie ik ook wel eens dat het popupje niet als een nieuwe pagina (zeg maar) wordt geladen en dat je dus het formulier gewoon nog op het scherm ziet. Je klikt het dan weg en je gaat dan niet met window.history.back() werken. Weten jullie een beetje wat ik bedoel?
'Boaz:
PHP 5.2 kent ook de filter extensie, daarmee kan je ook e-mail adressen valideren.
thnx boaz :)
@Frank, je vroeg zelf om commentaar:
De 2 variabelen binnen je class (ook wel member variabelen of velden genoemd) Zijn eigenlijk allebei private, information hiding heet dat.
Deze variabelen vertegenwoordigen de toestand van de class.
Vervolgens heb je 2 soorten methoden, accessor methods en mutator methods.
Een mutator veranderd iets aan de toestand van de class en begint meestal met set bijvoorbeeld: setMailAdress
Een accessor method vraagt naar de status van de class en begint meestal met get bijvoorbeeld getMailAdress of getIsVallid oid.
(uiteraard hoef je geen get of set tegebruiken, het kan alleen helpen.)
Ik ben het zelf ook nog aan het leren, maar als ik zou moeten zeggen welke velden je hebt zou ik zeggen:
m_sMailAdress
m_bIsValid (Edit 2: Bij nader inzien toch maar niet)
De 2 variabelen binnen je class (ook wel member variabelen of velden genoemd) Zijn eigenlijk allebei private, information hiding heet dat.
Deze variabelen vertegenwoordigen de toestand van de class.
Vervolgens heb je 2 soorten methoden, accessor methods en mutator methods.
Een mutator veranderd iets aan de toestand van de class en begint meestal met set bijvoorbeeld: setMailAdress
Een accessor method vraagt naar de status van de class en begint meestal met get bijvoorbeeld getMailAdress of getIsVallid oid.
(uiteraard hoef je geen get of set tegebruiken, het kan alleen helpen.)
Ik ben het zelf ook nog aan het leren, maar als ik zou moeten zeggen welke velden je hebt zou ik zeggen:
m_sMailAdress
Edit:
Ik zie het nu pas, maar de naam van je class geeft eigenlijk ookal een fout aan, je noemt 'm EmailCheck, maar Check is eigenlijk een actie. Iets om over na te denken, een class MailAdress lijkt me namelijk wel erg beperkt.
Gewijzigd op 01/01/1970 01:00:00 door Bo az
@Boaz
Het grootste gedeelte gebruikt nog niet 5.2 denk ik ;-)
Maar ik wist hem inderdaad nog niet :)
Leer voor volgende keer ;-)
Het grootste gedeelte gebruikt nog niet 5.2 denk ik ;-)
Maar ik wist hem inderdaad nog niet :)
Leer voor volgende keer ;-)




