从PHP中获取HTML表单的输入

时间:2016-11-01 14:32:44

标签: php

我正在学习MySQL和PHP,并且在表单输入方面遇到了问题。所以我写了一个小的测试代码,但它仍然无法工作。我的PHP版本是5.6。

代码:

<html>
<body>
<form action ="2.php" method ="post">
    Name: <input type="text" name="username" />
    <input type ="submit" value="ok" />
</form>
</body>
</html>

<html>
<?php
if(isset($_POST['username'])){
    $user=$_POST['username'];
    echo $user;
    echo " is your name";
}
else{
    $user=null;
    echo "error";
}
?>
</html>

项目的输出始终是错误的,不能输出之前的输入。

我尝试使用单引号和双重引用用户名,两者都无法正常工作。

我还尝试将php.ini中的always_populate_raw_post_data设置为0,-1,1,一切都无法工作。

我不知道问题出在哪里,虽然这可能非常愚蠢。

3 个答案:

答案 0 :(得分:1)

看起来它是正确的,应该没有任何问题。确保上面的代码是你实际拥有的。根据我的经验,大多数表单提交可以是

  • 您没有正确的名称(用户名)
  • 您可能会发送错误的http动词(帖子)
  • 您提交错误的端点(2.php)

从你上面的代码看起来一切都很好。如果您仍然没有获得正确的结果,最好使用 var_dump print_r 功能调试这些内置功能 $ _ POST $ _ GET $ _ REQUEST 并检查它们是否包含表格变量名用户名

答案 1 :(得分:0)

您正在使用isset作为变量,但它是一个返回布尔值的函数。

$user=isset($_POST['username']);更改为$user=$_POST['username'];

答案 2 :(得分:0)

另外一点是,在这两种情况下,即使没有为该字段添加任何值,您也会处于IF状态,因此您也可以这样做:

<html>
<?php
if(isset($_POST['username']) && !empty($_POST['username'])){
    $user=$_POST['username'];
    echo $user;
    echo " is your name";
}
else{
    $user=null;
    echo "error";
}
?>
</html>