我在http://www.kaimeramedia.com/derek/Website/contact.php。我检查了我的PHP代码在PHPcodechecker.com一个接触的形式,它说没有语法错误。我认为最初的代码在某个庄园里工作,因为每次我按下提交时,都会进入下一个验证,我将留下:“检测到不正确的电子邮件地址,请点击浏览器后退按钮,然后再试一次”。PHP触点形式验证工作不
我只是想知道我是否应该进行不同的编写代码,以确保电子邮件验证通过,并且允许提交的消息。我不知道我是否有向后编码的东西。我尝试了很多组合,但是就目前而言,这是我没有发生mailform.php错误而来的最远的组合。对于mailform.php文件的代码是:
<?php
session_start();
$dontsendemail = 0;
$possiblespam = FALSE;
$strlenmessage = "";
$email = $_REQUEST['email'];
$name = $_REQUEST['name'];
$message = $_REQUEST['message'];
$subject = "Regarding Your Portfolio";$emailaddress = "[email protected]";
// checks if name field is empty
function checkname() {
if (empty($name)) {
die ("You did not enter your name. Please hit your browser back button and try again.");
return 1;
}
}
// checks if the captcha is input correctly
function checkcaptcha() {
if ($_SESSION["pass"] != $_POST["userpass"]) {
die("Sorry, you failed the CAPTCHA. Note that the CAPTCHA is case-sensitive. Please hit your browser back button and try again.");
return 1;
}
}
// checks proper syntax
function checkemail() {
if(preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", $email));
else{
die("Improper email address detected. Please hit your browser back button and try again.");
return 1;
}
}
function spamcheck($field) {
if(eregi("to:",$field) || eregi("cc:",$field) || eregi("\r",$field) || eregi("\n",$field) || eregi("%0A",$field)){
$possiblespam = TRUE;
}else $possiblespam = FALSE;
if ($possiblespam) {
die("Possible spam attempt detected. If this is not the case, please edit the content of the contact form and try again.");
return 1;
}
}
function strlencheck($field,$minlength,$whichfieldresponse) {
if (strlen($field) < $minlength){
die($whichfieldresponse);
return 1;
}
}
if ($dontsendemail == 0) $dontsendemail = checkcaptcha($email);
if ($dontsendemail == 0) $dontsendemail = checkemail($email);
if ($dontsendemail == 0) $dontsendemail = spamcheck($email);
if ($dontsendemail == 0) $dontsendemail = spamcheck($name);
if ($dontsendemail == 0) $dontsendemail = strlencheck($email,10,"The email address field is too short. Please hit your browser back button and check your entry.<br />");
if ($dontsendemail == 0) $dontsendemail = strlencheck($message,10,"The message field is too short. Please hit your browser back button and check your entry.<br />");
if ($dontsendemail == 0) $dontsendemail = strlencheck($emailaddress,8,"You have not selected a recipient of your message. Please hit your browser back button and check your entry.<br />");
if ($dontsendemail == 0) $dontsendemail = strlencheck($name,3,"The Name field is too short. Please hit your browser back button and check your entry.<br />");
if ($dontsendemail == 0) {mail($emailaddress,"Subject: $subject",$message,"From: $name,$email"); include "thankyou.php";}
?>
我放了假的电子邮件在此代码,但真正的一个是在mailform.php文件 如果任何人都可以看到我错在哪里这将是不胜感激。
你可以上传电子邮件解决您的测试? – MichaelH 2012-02-25 04:22:35
@MichaelH有那么重要吗? – giorgio 2012-02-25 04:29:48
@giorgio我认为这可能是一个正则表达式问题。 – MichaelH 2012-02-25 04:39:06