php isset不能用于表达式联系表单的结果

时间:2016-02-29 21:06:40

标签: php forms isset

我想制作一个我用HTML做过的联系表格。

这一切都不重要我发现使用$_SERVER["RESQUEST_METHOD"]

更好的方法来解决这个问题

如果有人和我一样新并且犯了愚蠢的错误,我会把它留下来。

<!DOCTYPE html>
<html lang="en">

<body>
  <h4>Contact me!</h4>
  <form method="post" action="test_form.php" autocomplete="on">
    Subject:
    <br>
    <input type="text" name="subject" required>
    <br>name:

    <br>
    <input type="text" name="name" required>
    <br>Email:

    <br>
    <input type="email" name="email" required>
    <br>Message:

    <br>
    <textarea name="message" rows="5" maxlength="500"></textarea>
    <br>

    <input type="submit" name="submit">
  </form>
</body>

</html>

然后在我将PHP添加到一个名为test_form.php的单独表单后,这就是我被困住的地方我已经过了三种不同的布局和格式,但仍然返回致命错误。这是我的.php文件,我为布局道歉。 (只是为了补充一下,我已经尝试了我在isset中的变量,并且我已经尝试过了。

<?php
$submit = $_post['submit'];
$to = "no@way.co.uk";
$header = "From:$name Email:$email /n subject:$subject";
$formcontent = "Name:$name /n Message:$message";

if (isset('submit')){

     if (empty($_post['subject'])){
         $subjectErr = "Subject is required!"
     }else{
         $subject = valid ($_post['subject']);
     }

     if(empty($_post['name'])){
         $nameErr = "Name is required!";
     }else{
         $name = valid ($_post ['name']);
     }

     if(empty($_post['email'])){
        emailErr = "Email is required!";
     }else{
        $email = valid ($_post['email']);
     }

    if(empty($_post['message'])){
       $message = "";
    }else{
       $message = valid ($_post['message']);
    }

   //function to validate data
   function valid ($data){
       $data = trim($data);
       $data = stripslashes($data);
       $data = htmlspecialchars($data);
       return $data;
   }

   mail ($to, $subject, $formcontent, $header) or die ('error');
   echo "thank you";
}
?>

我的问题是我哪里出错了?我还没有完成它,但我只是测试它是否有效。

1 个答案:

答案 0 :(得分:0)

根据手册:

  

isset - 确定变量是否已设置且不是NULL

请参阅:variable。你有这个变量:

isset('submit')

不,这里只有一个字符串"submit"

您的正确代码是:

if (isset($submit))

或简化:

if (isset($_POST['submit']))

顺便说一下 - 它是$_POST,而不是$_post

顺便说一下另一个 - 定义

$header = "From:$name Email:$email /n subject:$subject";
$name之前

$email$subject被定义 - 导致空字符串而不是实际值。