controle veld voor e-mail

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Seb wd

seb wd

30/12/2006 16:23:00
Quote Anchor link
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????
 
PHP hulp

PHP hulp

21/11/2024 20:41:21
 
Luke Banning

Luke Banning

30/12/2006 16:27:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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!');
}

?>
 
Erik Rijk

Erik Rijk

30/12/2006 16:28:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?
if($_POST['email1'] === $_POST['email2'])
{

    echo 'de email adressen zijn in beide velden juist';
}

else {
    // Error!!
}
?>
 
Luke Banning

Luke Banning

30/12/2006 16:31:00
Quote Anchor link
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
 
Seb wd

seb wd

30/12/2006 17:04:00
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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);
 
Luke Banning

Luke Banning

30/12/2006 17:10:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>";
}

?>

Denk dat dat wel zou moeten werken
Gewijzigd op 01/01/1970 01:00:00 door Luke Banning
 
Seb wd

seb wd

30/12/2006 17:32:00
Quote Anchor link
thanx, maar.... (tja sorry)
Als ik dit heb genoteerd:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>";
}
?>


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?)
 
Luke Banning

Luke Banning

30/12/2006 17:45:00
Quote Anchor link
oke, oke ;-)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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!');
}

?>

Dit misschien? :)
Gewijzigd op 01/01/1970 01:00:00 door Luke Banning
 
Bo az

Bo az

30/12/2006 18:05:00
Quote Anchor link
PHP 5.2 kent ook de filter extensie, daarmee kan je ook e-mail adressen valideren.
 
Frank -

Frank -

30/12/2006 18:29:00
Quote Anchor link
Hier een class die de check voor je uitvoert:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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);
    }
}

?>

Ps. Mocht er commentaar op zijn, laat het even weten! Heb nog een hoop OOP te leren...
 
Seb wd

seb wd

30/12/2006 18:36:00
Quote Anchor link
thanx Luke :P Ik heb het volgende van je overgenomen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php elseif($_POST['email'] != $_POST['email_controle'])
{

    echo "<SCRIPT LANGUAGE=JavaScript>window.alert('De emailadressen komen niet overeen')</SCRIPT>";
       echo "<script language=\"JavaScript\">window.history.back()</script>";
}
?>


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?
 
Erik Rijk

Erik Rijk

30/12/2006 18:43:00
Quote Anchor link
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 :)
 
Bo az

Bo az

30/12/2006 18:51:00
Quote Anchor link
@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)

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
 
Luke Banning

Luke Banning

30/12/2006 19:37:00
Quote Anchor link
@Boaz
Het grootste gedeelte gebruikt nog niet 5.2 denk ik ;-)
Maar ik wist hem inderdaad nog niet :)
Leer voor volgende keer ;-)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.