PHP Form Mail不发送电子邮件,显示空白页,没有错误消息

时间:2019-02-20 02:58:13

标签: php forms

我有一个朋友在某个程序中用php表单邮件程序构建了一个html网站,不确定哪个。联系人表单不起作用,没有收到电子邮件(也不是垃圾邮件),完成后,它仅进入URL字段中带有“ send_mail.php”地址的空白页面。任何帮助将不胜感激。在cPanel编辑器中,它在第38行上显示“语法错误,意外的T-STRING,期待')'”。我看不到任何放错位置或没有括号的东西,但是我仍然是PHP初学者,只是在玩此时此刻。任何帮助,将不胜感激!代码是:

 <?php
/*
This first bit sets the email address that you want the form to be submitted to.
You will need to change this value to a valid email address that you can access.
*/
$webmaster_email = "lourenst@gmail.com";

/*
This bit sets the URLs of the supporting pages.
If you change the names of any of the pages, you will need to change the values here.
*/
$feedback_page = "contact.html";
$error_page = "error_message.html";
$thankyou_page = "thank_you.html";

/*
This next bit loads the form field data into variables.
If you add a form field, you will need to add it here.
*/
$email_address = $_REQUEST['email_address'] ;
$comments = $_REQUEST['comments'] ;
$first_name = $_REQUEST['first_name'] ;
$usrtel = $_REQUEST['usrtel'];
$course_list = $_REQUEST['course_list']; 
$company_name = $_REQUEST['company_name'];
$msg = 
"First Name: " . $first_name . "\r\n" . 
"Company: " . $company_name . "\r\n" .
"Contact Number: " . $usrtel . "\r\n" .
"Email: " . $email_address . "\r\n" . 
"Course: " . $course_list . "\r\n" .
"Comments: " . $comments ; "\r\n" .

/*
The following function checks for email injection.
Specifically, it checks for carriage returns - typically used by spammers to inject a CC list.
*/
function isInjected($str) {
    $injections = array('(\n+)',
    '(\r+)',
    '(\t+)',
    '(%0A+)',
    '(%0D+)',
    '(%08+)',
    '(%09+)'
    );
    $inject = join('|', $injections);
    $inject = "/$inject/i";
    if(preg_match($inject,$str)) {
        return true;
    }
    else {
        return false;
    }
}

// If the user tries to access this script directly, redirect them to the feedback form,
if (!isset($_REQUEST['email_address'])) {
header( "Location: $feedback_page" );
}

// If the form fields are empty, redirect to the error page.
elseif (empty($first_name) || empty($email_address)) || empty($usrtel) || empty($course_list)){
header( "Location: $error_page" );
}

/* 
If email injection is detected, redirect to the error page.
If you add a form field, you should add it here.
*/
elseif ( isInjected($email_address) || isInjected($first_name)  || isInjected($comments) || isInjected($usrtel) || isInjected($course_list)) || isInjected($company_name)) {
header( "Location: $error_page" );
}

// If we passed all previous tests, send the email then redirect to the thank you page.
else {

    mail( "$webmaster_email", "Feedback Form Results", $msg );

    header( "Location: $thankyou_page" );
}
?>

1 个答案:

答案 0 :(得分:1)

"Comments: " . $comments ; "\r\n" .行必须改为"Comments: " . $comments ; "\r\n";。需要使用分号来终止该语句。