if(isset($ _ post ['submit']))不起作用

时间:2016-12-19 07:49:50

标签: php forms post

我正在学习PHP。一个初学者。我遵循的教程中的代码如下所示。

    <?php
        if (isset($_POST['submit']) && (!empty($_POST['submit']))) {
            $from = 'Alexey Pazukhin (alexey.pazukhin@mail.ru)';
            $subject = $_POST['subject'];
            $text = $_POST['elvismail'];
            $output_form = FALSE;
              if (empty($subject) && empty($text)){
                echo 'Subject and text fields are empty. <br/>';
                $output_form = TRUE;
              }
              if (empty($subject) && (!empty($text))) {
                echo 'Subject field is empty. <br/>';
                $output_form = TRUE;
              }
              if ((!empty($subject)) && empty($text)) {
                echo 'Text field is empty. <br/>';
                $output_form = true;
              }
              if((!empty($subject)) && (!empty($text))){

                 $dbc = mysqli_connect('localhost', 'root', 'root', 'elvis_store') 
        or die ('Connection failed. MySQL');
                 $query = "SELECT * FROM email_list";
                 $result = mysqli_query($dbc, $query) 
        or die('DB query error');
                 while ($row = mysqli_fetch_array($result)) {
                 $first_name = $row['first_name']; 
                 $last_name = $row['last_name'];
                 $msg = "Dear $first_name $last_name, \n $text";
                 $to = $row['email'];
                 mail($to, $subject, $msg, 'From:' . $from);
                 echo 'Message sent:' . $to . '<br/>';
                 }
               mysqli_close($dbc);
              }
          }
        else {
          $output_form = TRUE;
        }

        if ($output_form) {
        ?>
        <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
        <label for="subject">Subject of email:</label><br />
        <input id="subject" name="subject" type="text" value="<?php echo $subject; ?>" size="30" /><br />
        <label for="elvismail">Body of email:</label><br />
        <textarea id="elvismail" name="elvismail" rows="8" cols="40"><?php echo $text; ?></textarea><br />
        <input type="submit" name="Submit" value="Submit" />
  </form>
<?php
}
?>

问题是代码在单击“提交”按钮后没有发送任何邮件(我填写字段或不填写)并在浏览器(Chrome)中返回一个空(新)表单。

3 个答案:

答案 0 :(得分:3)

替换

 <input type="submit" name="Submit" value="Submit" />

 <input type="submit" name="submit" value="submit" />

答案 1 :(得分:0)

你只能检查 - if(isset($ _ POST ['Submit']))。你不想检查!空。

在输入标记中,您将name属性命名为name =“Submit”。

所以,使用$ _POST ['Submit']

而不是$ _POST ['submit']

因为帖子变量是CASE SENSITIVE。

答案 2 :(得分:0)

我将if (isset($_POST['Submit'))更改为if (isset($_POST['sendIt'))

然后我会改变<input type="submit" name="Submit" value="Submit" />

到:

<input type="submit" name="sendIt" value="Submit" />

通过这种方式,您的表单拥有自己独特的发送价值,而不是bog标准submit,如果您决定在网站中添加任何表单,这可能会导致未来的问题。