HTML 表单 POST 数据在提交时显示为空白

Posted

技术标签:

【中文标题】HTML 表单 POST 数据在提交时显示为空白【英文标题】:HTML Form POST data shows as blank when submitted 【发布时间】:2014-07-03 11:05:08 【问题描述】:

我有一个小表格,一旦提交,帖子数据就会设置为变量,然后在电子邮件中使用,当发送电子邮件时,帖子数据是空白的,当我尝试回显 POST 数据时它是也是空白。我不知道为什么,这是代码。

   <?php if(!isset($_POST['submit'])): ?>
<form name="contactForm" method="POST" id="contactForm">
<table>
    <tr>
        <td><input name="name" id="name" class="fields" type="text" placeholder="name"></td>            
    </tr>
    <tr>
        <td><input name="email" class="fields" type="email" placeholder="email"></td>            
    </tr>
    <tr>
        <td><input name="phone" class="fields" type="phone" placeholder="phone(optional)"></td>            
    </tr>

    <tr>
        <td><textarea name="message" class="fieldsMessage" name="message" placeholder="Message"></textarea><?php $ermes; if(!empty($ermes))echo "<br>".$ermes;?></td>            
    </tr>

    <tr>
        <td><input class="submitButton" type="submit" name="submit" value="Submit">     
    </td>
    </tr>

 </table>
 </form>
 <?php else: ?>
<h2 style="padding-bottom: 80px; margin-bottom: 0px; text-align: center;" class="title">Your Message Was Sent</h2>
   <?php
    if(isset($_POST['submit']))
        if(empty($_POST['name']))
            echo "<script type=text/javascript>alert('PLEASE ENTER YOUR NAME');</script>";
         //end name if
        elseif(empty ($_POST['email']))
            echo "<script type=text/javascript>alert('PLEASE ENTER YOUR EMAIL');</script>";
        //end else if email
        elseif(empty($_POST['message']))
        
      echo "<script type=text/javascript>alert('Please enter a message');</script>";

        // End elseif message
    //End isset submit if
    else
    
        $name=$_POST['name'];
        $email=$_POST['email'];
        $message=$_POST['message'];
        if(isset($_POST['phone']))
        
         $phone=$_POST['phone'];   
        // isset phone
        else
        
            $phone="";
        
        $to="sample@live.com";
        $subject="New Contact Form Email";
        $message="Name: ".$_POST['name'];
        $headers='From: Trip Galapagos Forms';
        mail($to, $subject, $message); 


    //End else

?>
 <?php endif;?>

【问题讨论】:

你需要为表单定义一个动作 【参考方案1】:

表单中的操作在哪里?

action 属性指定提交表单时将表单数据发送到何处。

更多信息请参考html form taghttp://www.freecontactform.com/html_form.php#htmlform

同时检查here 和HTML_forms_-_the_basics

【讨论】:

如果php脚本在同一个文件中,是否需要在表单中进行操作?【参考方案2】:

您错过了在代码末尾关闭 if 语句 endif;

如果您没有在form 中指定action。数据将发布在同一位置。

【讨论】:

@user2684521 启用您的错误报告,然后在此处发布您的错误。 ini_set('display_errors',1);error_reporting(1);【参考方案3】:

formaction 丢失。当您将数据发布到同一页面时,您必须使用 action="&lt;?php echo $_SERVER['PHP_SELF']?&gt;"action="" 在表单标签中。

改变

<form name="contactForm" method="POST" id="contactForm">

<form name="contactForm" method="post" action="" id="contactForm">

【讨论】:

以上是关于HTML 表单 POST 数据在提交时显示为空白的主要内容,如果未能解决你的问题,请参考以下文章

PHP 表单用post传值不了 跳转出现空白页。。

html自动提交表单

jsp表单提//jsp表单接收

在 laravel 集体中提交表单时显示加载器

初学php表单数据的小问题

表单_post提交方式和get的区别,元素集