controle veld voor e-mail
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!');
}
?>
Of je gebruikt ze gewoon allebei :p
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
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?)
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
filter extensie, daarmee kan je ook e-mail adressen valideren.
PHP 5.2 kent ook de 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...
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 schreef op 30.12.2006 18:05:
PHP 5.2 kent ook de filter extensie, daarmee kan je ook e-mail adressen valideren.
thnx boaz :)
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
Het grootste gedeelte gebruikt nog niet 5.2 denk ik ;-)
Maar ik wist hem inderdaad nog niet :)
Leer voor volgende keer ;-)