Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
$\u POST php-无法从输入获取表单数据_Php_Html_Function - Fatal编程技术网

$\u POST php-无法从输入获取表单数据

$\u POST php-无法从输入获取表单数据,php,html,function,Php,Html,Function,我使用一个基本表单和一个非常基本的PHP脚本来处理来自它的信息。不幸的是,PHP在获取post数据时遇到了问题。我读了很多关于这个主题的帖子,但是找不到我需要的。我会发布我的代码,我希望你能指出我的问题 <form id="contactForm" action="form/formProcess.php" method="post"> <h1 id="contactHead" class

我使用一个基本表单和一个非常基本的PHP脚本来处理来自它的信息。不幸的是,PHP在获取post数据时遇到了问题。我读了很多关于这个主题的帖子,但是找不到我需要的。我会发布我的代码,我希望你能指出我的问题

<form id="contactForm" action="form/formProcess.php" method="post">

    <h1 id="contactHead" class='contactHead'>Stay in touch</h1>

    <div class="wrapper">
        <i class="far fa-user"></i>
        <input name = "name" type="text" id="nameID"  placeholder="name" required>
    </div>

    <div class="wrapper">
        <i class="fas fa-suitcase"></i>
        <input name = "business" type="text" id="businessID"   placeholder="business">
    </div>

    <div class="wrapper">
        <i class="far fa-envelope"></i>
        <input name = "email" type="email" id="emailID"   placeholder="email">
    </div>

    <div class="wrapper">
        <i class="fas fa-comment-alt"></i>
        <textarea name="msg"  id="msgID" placeholder="   Hello, write your message here"></textarea>
    </div>

    <input name ="submitButton" type="submit"  value = "send " name ="submit">
</form>
我的想法是处理表单,我只发布了
$name
,但已经足够了,
$\u post['name']
不存储值,我不知道原因。 有关我尝试过的调试的详细信息:

  • 有无测试输入->相同结果
  • Isset on
    $\u POST['name']
    -提交表单时返回true
  • 当我回显
    $\u POST['name']
    -我什么也得不到-我得到一个空格-var\u dump返回字符串(0)
  • 在窗体上尝试使用或不使用enctype,结果相同
  • 尝试在表单操作上设置PHP脚本,我尝试在HTML中将其设置为表单后的include-相同
  • 总结:

    我尽我所能读到或想到的一切,但结果从未改变。我不知道这个问题是什么。我的目的是成功地接收“name”值,这样我可以将其存储到数据库中,但我不能使其获取输入字段的值。

    在php文件中,您可以使用以下方法测试文件是否使用post方法从html表单接收数据,例如:

    if($_SERVER["REQUEST_METHOD"] == "POST"){
        echo("is receiving");
    } else {
        echo("error");
    }
    

    如果打印错误,则html表单中的操作属性可能错误

    $\u POST['name']在提交表单之前为空。因此,请使用isset()命令

    if(isset($_POST['submit'])){
        $name = test_input($_POST['name']);
        function test_input($data) {
            $data = trim($data);
            $data = stripslashes($data);
            $data = htmlspecialchars($data);
            return $data;
           }
        }
    

    我通过从输入中删除ID来修复它,我一这么做,它就工作了

    什么是
    测试输入
    $\u POST['name']使用这种方式。@KUMAR这可能是一个不正确或危险的答案。你不知道这个函数做什么,也不知道这个值以后是如何使用的。我觉得
    test\u input()shared@KUMAR在21世纪初,人们将其误解为所有安全问题的一站式解决方案。请参见Riggs链接。注意
    如果($\u SERVER[“REQUEST\u METHOD”]==“POST”){
    它的大写形式我测试了这个-它正在接收它正在返回isset-因此设置了名称输入,但出于某些原因我仍然可以获取它的名称
    if(isset($_POST['submit'])){
        $name = test_input($_POST['name']);
        function test_input($data) {
            $data = trim($data);
            $data = stripslashes($data);
            $data = htmlspecialchars($data);
            return $data;
           }
        }