【问题标题】:how can i fix a php script that stops html page from displaying如何修复阻止 html 页面显示的 php 脚本
【发布时间】:2015-06-16 20:26:01
【问题描述】:

我在一个 HTML 页面中有一个 PHP 脚本,当我删除以下行时,它会阻止我的整个 HTML 页面显示其内容,它运行良好:

if($_POST){
    mail($to, $subject $message, $header);
    $feedback = 'mail submitted';       
}

可能是什么问题?

完整代码如下:

<?php
    $to = 'example@gmail.com';
    $subject = 'From Your Website';

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

    $message = <<<EMAIL
    Hello this is $name my email is  


    $message

    EMAIL;
    $header = '$email';
    if($_POST){
        mail($to, $subject $message, $header);
        $feedback = 'mail submitted';       
    }
?>

//body starts here
<!DOCTYPE html>
<html>
<head>
    <title>Test mail</title>
</head>
<body>
    <p id="feedback"><?php echo $feedback; ?></p>
    <form action="#" method="post" >
        <input type="text" name="name" />
        <input type="email" name="email" />
        <textarea type="text" name="message"></textarea>
        <input type="submit" name="su`enter code here`bmit" />
    </form>
</body>
</html>

【问题讨论】:

  • 而不是 if($_POST) 尝试 if( isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == 'POST') { }
  • 也可以试试 mail($to, $subject $message);而不是 mail($to, $subject $message, $header);

标签: php forms scripting subscription


【解决方案1】:

您应该尝试使用 isset 初始化帖子。

if(isset($name = $_POST['name'])){
   $name = $_POST['name'];
}

您尝试使用 post 值初始化变量,但 post 值中没有任何内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-25
    • 2011-11-11
    • 1970-01-01
    • 2021-11-20
    • 2012-01-18
    • 1970-01-01
    相关资源
    最近更新 更多