服务器不完全解析PHP代码

时间:2016-02-06 13:25:08

标签: php apache server apache2

因为几天我的服务器不再解析我的PHP代码(不仅是附件)。如果我通过html文件调用php文件,它将永远加载。 代码在本地apache2服务器上进行测试,并且工作正常。我已经尝试在服务器上重新安装php5 / apache2但仍然没有进展。

服务器运行Ubuntu 14.04 LTS。

<?php

if(isset($_POST['email'])) {

$email_to = "placeholder@placeholder.com";

$email_subject = "Website Contact";


function died($error) {

    // your error code can go here

    echo "We are very sorry, but there were error(s) found with the form you submitted. ";

    echo "These errors appear below.<br /><br />";

    echo $error."<br /><br />";

    echo "Please go back and fix these errors.<br /><br />";

    die();

}



// validation expected data exists

if(!isset($_POST['name']) ||

    !isset($_POST['email']) ||

    !isset($_POST['message'])) {

    died('We are sorry, but there appears to be a problem with the form you submitted.');

}


$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];


$email_message = "Form details below.\n\n";



function clean_string($string) {

  $bad = array("content-type","bcc:","to:","cc:","href");

  return str_replace($bad,"",$string);

}



$email_message .= "Name: ".clean_string($name)."\n";

$email_message .= "Email: ".clean_string($email)."\n";

$email_message .= "Message: ".clean_string($message)."\n";


// create email headers

$headers = 'From: '.$email."\r\n".

'Reply-To: '.$email."\r\n" .

'X-Mailer: PHP/' . phpversion();

@mail($email_to, $email_subject, $email_message, $headers);


?>
<html>
<p>Succesful!</p>
</body>

</html>

<?php

}

?>

1 个答案:

答案 0 :(得分:0)

在任何if语句之外定义你的函数。不确定这是你的错误的原因,但它至少在逻辑上读取更多。还要明智地缩进代码,这在查找错误时会有很大帮助。

此外,<p>代码属于<body,不属于HTML代码的<html>部分。

此外,如果您在LIVE服务器上遇到问题,请在脚本中添加一些错误报告,请记住Live服务器上的错误只会写入日志,然后在您查找错误时写入屏幕,以便更容易看到错误< / p>

<?php
error_reporting(E_ALL); 
ini_set('display_errors', 1);
function clean_string($string) {
  $bad = array("content-type","bcc:","to:","cc:","href");
  return str_replace($bad,"",$string);
}

function died($error) {
    // your error code can go here

    echo "We are very sorry, but there were error(s) found with the form you submitted. ";
    echo "These errors appear below.<br /><br />";
    echo $error."<br /><br />";
    echo "Please go back and fix these errors.<br /><br />";
    die();
}


if(isset($_POST['email'])) {
    $email_to = "placeholder@placeholder.com";
    $email_subject = "Website Contact";

    // validation expected data exists

    if(!isset($_POST['name']) ||
        !isset($_POST['email']) ||
        !isset($_POST['message'])) {
        died('We are sorry, but there appears to be a problem with the form you submitted.');
    }

    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];

    $email_message = "Form details below.\n\n";
    $email_message .= "Name: ".clean_string($name)."\n";
    $email_message .= "Email: ".clean_string($email)."\n";
    $email_message .= "Message: ".clean_string($message)."\n";

    // create email headers
    $headers = 'From: '.$email."\r\n".
               'Reply-To: '.$email."\r\n" .
               'X-Mailer: PHP/' . phpversion();

    @mail($email_to, $email_subject, $email_message, $headers);
}
?>
<html>    
<body>
    <p>Succesful!</p>
</body>
</html>