Я попытался выяснить это и обнаружил, что это невозможно только с помощью PHP. Что я хотел бы знать, так это как я могу адаптировать свою текущую форму, расположенную по адресу http://www.kaimeramedia.com/derek/Website/contact.php (не указывайте contact.php для получения полного сайта), используя следующий код mailform.php для всплывающего сообщения об ошибке, если проверка выполняется не верно В настоящее время он просто обновляет все окно. Я бы вообще не обновлял страницу и не позволял им исправлять ошибку после закрытия всплывающего окна. Я пока опускаю свою электронную почту в этом коде, но она находится на самой странице mailform.php. Для дальнейшего анализа код mailform.php выглядит следующим образом:
<?PHP
session_start();
try{
$check = new check();
if(!isset($_REQUEST['email']))
throw new exception('You did not enter an email address.');
if(!isset($_REQUEST['message']))
throw new exception('You did not enter a message.');
if(!isset($_REQUEST['name']))
throw new exception('You did not enter a name');
$sender = $_REQUEST['email'];
$message = $_REQUEST['message'];
$name = $_REQUEST['name'];
$recipient = 'text@text.com';
$subject = 'Regarding Your Portfolio';
if($check->captcha('userpass') == FALSE)
throw new exception('Your captcha is incorrect. Word must be CAPITALIZED');
if($check->spam($sender) == FALSE)
throw new exception('Your email field contains spam.');
if($check->spam($name) == FALSE)
throw new exception('Your name field contains spam.');
if($check->length($sender, 10) == FALSE)
throw new exception('Your email field does not satisfy the minimum character
count.');
if($check->length($message, 8) == FALSE)
throw new exception('Your message field does not satisfy the minimum character
count.');
if($check->length($name, 3) == FALSE)
throw new exception('Your name field does not satisfy the minimum character
count.');
mail($recipient, $subject, $message, "From: $name <$sender>" );
include 'thankyou.php';
}catch (Exception $E){
die($E->getMessage());
}
class check{
function captcha($field){
if(isset($_REQUEST[$field])==FALSE){ return false; }
if($_SESSION['pass'] != $_REQUEST[$field]){ return false; }
return true;
}
function email($email){
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){ return false;}
return true;
}
function spam($field){
if(eregi("to:",$field) || eregi("cc:",$field) || eregi("\r",$field) ||
eregi("\n",$field) || eregi("%0A",$field)){ return false; }
return true;
}
function length($field, $min){
if(strlen($field) < $min){ return false; }
return true;
}
}
?>