E-mail adress verifieren
Hij staat wel in de script library, maar ik snap niet hoe ik hem in mijn script toe moet voegen.
Dit is mijn script:
<center>
<form method="post">
<table border="1" width="50%" cellspacing="0" cellpadding="0">
<tr>
<td width="50%">Naam</td>
<td width="50%"><input type="text" name="naam"></td>
</tr>
<tr>
<td width="50%">Email adres</td>
<td width="50%"><input type="text" name="email"></td>
</tr>
<tr>
<td width="50%">Gebruikersnaam</td>
<td width="50%"><input type="text" name="gebruikersnaam"></td>
</tr>
<tr>
<td width="50%">Wachtwoord</td>
<td width="50%"><input type="password" name="wachtwoord1"></td>
</tr>
<tr>
<td width="50%">Wachtwoord bevestiging</td>
<td width="50%"><input type="password" name="wachtwoord2"></td>
</tr>
<tr>
<td width="100%" colspan="2"><center><input type="submit" name="aanmelden" value="Aanmelden"></center></td>
</tr>
</table>
</form>
</center>
Wil iemand hem voor mij toevoegen? Ben nog een echte n00b betreft php scripts in een ander script toevoegen...
Alvast bedankt
Dit is mijn script:
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
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
<?
if (isset($_COOKIE['login'])){
echo "Je bent al ingelogt! <a href=\"index.php\">hier</a> om terug te gaan naar de index.";
}else{
if( isset($_POST["aanmelden"]))
{
if($_POST["gebruikersnaam"] != "" && $_POST["email"] != "" && $_POST["naam"] != "" && $_POST["wachtwoord1"] != "")
{
$telgb = mysql_query("SELECT gebruikersnaam FROM leden WHERE gebruikersnaam='".$_POST["gebruikersnaam"]."'") or die($error[1]);
$numgb = mysql_num_rows($telgb);
if($numgb == "1")
{
echo"<center>Deze gebruikersnaam bestaat al, je moet een andere gebruikersnaam nemen!</center>";
}
else
{
if(!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4})$", $_POST["email"]))
{
echo"<center>Je moet een geldig email adres invullen!</center>";
}
else
{
if($_POST["wachtwoord1"] != $_POST["wachtwoord2"])
{
echo "<center>U heeft niet de zelfde wachtwoorden ingegeven.</center>";
}
else
{
echo"<center>U bent aangemeld.</center>";
$wachtwoord = md5($wachtwoord1);
mysql_query("insert into leden (naam,gebruikersnaam,wachtwoord,idatum,email) values ('".$_POST["naam"]."','".$_POST["gebruikersnaam"]."','".$wachtwoord."','".$datum."','".$_POST["email"]."')") or die(mysql_error());
}
}
}
}
else
{
echo "<center>U heeft iets niet ingevult.</center>";
}
}else{
?>
if (isset($_COOKIE['login'])){
echo "Je bent al ingelogt! <a href=\"index.php\">hier</a> om terug te gaan naar de index.";
}else{
if( isset($_POST["aanmelden"]))
{
if($_POST["gebruikersnaam"] != "" && $_POST["email"] != "" && $_POST["naam"] != "" && $_POST["wachtwoord1"] != "")
{
$telgb = mysql_query("SELECT gebruikersnaam FROM leden WHERE gebruikersnaam='".$_POST["gebruikersnaam"]."'") or die($error[1]);
$numgb = mysql_num_rows($telgb);
if($numgb == "1")
{
echo"<center>Deze gebruikersnaam bestaat al, je moet een andere gebruikersnaam nemen!</center>";
}
else
{
if(!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4})$", $_POST["email"]))
{
echo"<center>Je moet een geldig email adres invullen!</center>";
}
else
{
if($_POST["wachtwoord1"] != $_POST["wachtwoord2"])
{
echo "<center>U heeft niet de zelfde wachtwoorden ingegeven.</center>";
}
else
{
echo"<center>U bent aangemeld.</center>";
$wachtwoord = md5($wachtwoord1);
mysql_query("insert into leden (naam,gebruikersnaam,wachtwoord,idatum,email) values ('".$_POST["naam"]."','".$_POST["gebruikersnaam"]."','".$wachtwoord."','".$datum."','".$_POST["email"]."')") or die(mysql_error());
}
}
}
}
else
{
echo "<center>U heeft iets niet ingevult.</center>";
}
}else{
?>
<center>
<form method="post">
<table border="1" width="50%" cellspacing="0" cellpadding="0">
<tr>
<td width="50%">Naam</td>
<td width="50%"><input type="text" name="naam"></td>
</tr>
<tr>
<td width="50%">Email adres</td>
<td width="50%"><input type="text" name="email"></td>
</tr>
<tr>
<td width="50%">Gebruikersnaam</td>
<td width="50%"><input type="text" name="gebruikersnaam"></td>
</tr>
<tr>
<td width="50%">Wachtwoord</td>
<td width="50%"><input type="password" name="wachtwoord1"></td>
</tr>
<tr>
<td width="50%">Wachtwoord bevestiging</td>
<td width="50%"><input type="password" name="wachtwoord2"></td>
</tr>
<tr>
<td width="100%" colspan="2"><center><input type="submit" name="aanmelden" value="Aanmelden"></center></td>
</tr>
</table>
</form>
</center>
Wil iemand hem voor mij toevoegen? Ben nog een echte n00b betreft php scripts in een ander script toevoegen...
Alvast bedankt
dit is zo te zien een script om te registreren of om aan te melden
maar wat wil je er nu precies mee?
het email validatie gedeelte eruit halen?
maar wat wil je er nu precies mee?
het email validatie gedeelte eruit halen?
Dat klopt, maar ik wil juist dat er een email validatie in komt.
Dat doet dit regeltje tog?
eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4})$", $_POST["email"])
eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4})$", $_POST["email"])
ja, maar erg goed vind ik hem niet
email adressen kunnen ook meerdere malen een punt bevatten
[email protected] word hierdoor volgens mij al als ongeldig gezien
email adressen kunnen ook meerdere malen een punt bevatten
[email protected] word hierdoor volgens mij al als ongeldig gezien
Nee, als je goed kijkt zie je dat er in het repeterende gedeelte ()* een '.' voorkomt. Doordat deze niet escaped is staat deze voor 'elk willekeurig teken' in plaats van een punt, maar hierdoor wordt .co.uk wel als mailadres herkent.
Het neemt niet weg dat het een slechte regex is.
Het neemt niet weg dat het een slechte regex is.
Ik gebruik meestal geeneens Regex omdat mensen als ze registreren een mailtje naar dat adres krijgen ...
Maw als het adres niet klopt -> GEEN ACCOUNT :)
Maw als het adres niet klopt -> GEEN ACCOUNT :)
je hebt gelijk dat er een . staat Arend, maar een . op zo'n plaats zorgt ervoor dat alle tekens geaccpteerd woren
die moet escaped worden
op deze manier kan je een email adres als deze invullen
test@hier zitten spaties in.com
maar ik zie tussen de [ ] ook een losse - staan
afaik moet die escaped worden omdat php anders denkt dat het een range is
maar het kan dat het wel geaccepteerd word omdat het het laatste teken is
die moet escaped worden
op deze manier kan je een email adres als deze invullen
test@hier zitten spaties in.com
maar ik zie tussen de [ ] ook een losse - staan
afaik moet die escaped worden omdat php anders denkt dat het een range is
maar het kan dat het wel geaccepteerd word omdat het het laatste teken is
Kan iemand er ff een goed werkend kloppend script van maken.. snap er niks van.
Dit script is toch goed?
Het check iig het mailadres en dat wou je toch?
Het check iig het mailadres en dat wou je toch?
Quote:
die moet escaped worden
op deze manier kan je een email adres als deze invullen
op deze manier kan je een email adres als deze invullen
Nablater, lees mn bericht nog eens ;)
Goed:
Op veler verzoek, nogmaals dezelfde post als ik al een paar keer hier geknalt heb:
De oplossing is meestal de smtp server raadplegen :)
"Hallo, bestaat u?"
Of op zn minst kijken of het domein, of de mailserver bestaat.
in PEAR (http://pear.php.net) gebruikt men de volgende code:
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
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
<?
/**
* Validate a email
*
* @param string $email URL to validate
* @param boolean $domain_check Check or not if the domain exists
*/
function email($email, $check_domain = false)
{
if($check_domain){
}
if (ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.'@'.
'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.
'[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', $email))
{
if ($check_domain && function_exists('checkdnsrr')) {
list (, $domain) = explode('@', $email);
if (checkdnsrr($domain, 'MX') || checkdnsrr($domain, 'A')) {
return true;
}
return false;
}
return true;
}
return false;
}
# De checkdnsrr werkt niet op windows, het schijnt dat daarvoor de class Net_DNS van pear kan helpen. Heb ik me niet in verdiept, dus zul je even zelf naarmoeten kijken.
?>
/**
* Validate a email
*
* @param string $email URL to validate
* @param boolean $domain_check Check or not if the domain exists
*/
function email($email, $check_domain = false)
{
if($check_domain){
}
if (ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.'@'.
'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.
'[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', $email))
{
if ($check_domain && function_exists('checkdnsrr')) {
list (, $domain) = explode('@', $email);
if (checkdnsrr($domain, 'MX') || checkdnsrr($domain, 'A')) {
return true;
}
return false;
}
return true;
}
return false;
}
# De checkdnsrr werkt niet op windows, het schijnt dat daarvoor de class Net_DNS van pear kan helpen. Heb ik me niet in verdiept, dus zul je even zelf naarmoeten kijken.
?>
sorry arend, ik ben nogal moe
ik had er overheen gelezen :(
ik had er overheen gelezen :(




