Naughtygirl
Gebruiker
- Lid geworden
- 17 jan 2009
- Berichten
- 174
Ja mijn php bestand ziet er zo uit. Ik heb in het formulier nog dit stukje:
Hoe moet ik dat toepassen dan?
@arjan96s:
Ik kwam dit tegen op http://php.net/manual/en/function.preg-match.php
Overigens heb ik geen idee wat het script uitvoert. Ja iets met email valideren, maar wat precies?
PHP:
<?php echo $message; ?>
FILTER_VALIDATE_EMAIL kun je beter niet meer gebruiken. sommige e-mailadressen valideert hij niet goed.
je kunt beter regex: preg_match gebruiken want daarmee kun je precies aangeven waar het email adres aan moet voldoen.
(araf!a@live.nl volgens mij mag wel maar wordt niet door gelaten door de functie)
Hoe moet ik dat toepassen dan?
@arjan96s:
Ik kwam dit tegen op http://php.net/manual/en/function.preg-match.php
PHP:
<?php
function email_valid($temp_email) {
######## Three functions to HELP ########
function valid_dot_pos($email) {
$str_len = strlen($email);
for($i=0; $i<$str_len; $i++) {
$current_element = $email[$i];
if($current_element == "." && ($email[$i+1] == ".")) {
return false;
break;
}
else {
}
}
return true;
}
function valid_local_part($local_part) {
if(preg_match("/[^a-zA-Z0-9-_@.!#$%&'*\/+=?^`{\|}~]/", $local_part)) {
return false;
}
else {
return true;
}
}
function valid_domain_part($domain_part) {
if(preg_match("/[^a-zA-Z0-9@#\[\].]/", $domain_part)) {
return false;
}
elseif(preg_match("/[@]/", $domain_part) && preg_match("/[#]/", $domain_part)) {
return false;
}
elseif(preg_match("/[\[]/", $domain_part) || preg_match("/[\]]/", $domain_part)) {
$dot_pos = strrpos($domain_part, ".");
if(($dot_pos < strrpos($domain_part, "]")) || (strrpos($domain_part, "]") < strrpos($domain_part, "["))) {
return true;
}
elseif(preg_match("/[^0-9.]/", $domain_part)) {
return false;
}
else {
return false;
}
}
else {
return true;
}
}
// trim() the entered E-Mail
$str_trimmed = trim($temp_email);
// find the @ position
$at_pos = strrpos($str_trimmed, "@");
// find the . position
$dot_pos = strrpos($str_trimmed, ".");
// this will cut the local part and return it in $local_part
$local_part = substr($str_trimmed, 0, $at_pos);
// this will cut the domain part and return it in $domain_part
$domain_part = substr($str_trimmed, $at_pos);
if(!isset($str_trimmed) || is_null($str_trimmed) || empty($str_trimmed) || $str_trimmed == "") {
$this->email_status = "You must insert something";
return false;
}
elseif(!valid_local_part($local_part)) {
$this->email_status = "Invalid E-Mail Address";
return false;
}
elseif(!valid_domain_part($domain_part)) {
$this->email_status = "Invalid E-Mail Address";
return false;
}
elseif($at_pos > $dot_pos) {
$this->email_status = "Invalid E-Mail Address";
return false;
}
elseif(!valid_local_part($local_part)) {
$this->email_status = "Invalid E-Mail Address";
return false;
}
elseif(($str_trimmed[$at_pos + 1]) == ".") {
$this->email_status = "Invalid E-Mail Address";
return false;
}
elseif(!preg_match("/[(@)]/", $str_trimmed) || !preg_match("/[(.)]/", $str_trimmed)) {
$this->email_status = "Invalid E-Mail Address";
return false;
}
else {
$this->email_status = "";
return true;
}
}
?>
Overigens heb ik geen idee wat het script uitvoert. Ja iets met email valideren, maar wat precies?
Laatst bewerkt door een moderator: