PHP Post总是返回1

时间:2016-02-25 12:35:14

标签: php mysql post get sql-update

我正在尝试使用PHP更新mySQL数据库。我在index.php上得到了表单。我正在使用GET方法从链接中获取id值,并尝试将值传输到另一个隐藏输入的页面。

当我尝试在另一页上读取此值时,它总是返回1。 这是我的代码Index.php

<?php
    $usr = $_GET['id'];
    echo $usr ; 
?>
<form method="post" action="status.php">
    <input type="text" name="number"> <br>
    <input type="hidden" name="3" value="<?php echo (isset($usr)) ?  $usr : '' ?>" />
    <input type="submit">
</form>

这是status.php

$hello=isset($_POST['3']);
echo $hello ;
echo "<br>";

总是1。

5 个答案:

答案 0 :(得分:1)

您将使用isset()函数来分配不应该出现的变量:

$hello = isset($_POST['3']);

如果设置了true,则会返回$_POST['3']

从字面意义isset()表示变量已设置。它是BOOL函数,这意味着它只能在设置时返回true,在未设置/空时返回false

因此,您的代码应为:

$hello = $_POST['3'];

有关isset()的更多信息:http://php.net/manual/en/function.isset.php

提示:将值放在隐藏的文本框中,然后使用$_GET获取它实际上不是一个好主意,因为大多数人只能在浏览器中编辑该值。

答案 1 :(得分:1)

isset()返回bool所以如果变量可用,$ hello = 1 else $ hello = NULL
Wrtie POST为

if(isset($_POST['3']))
{
   $hello=$_POST['3'];
   echo $hello;
} 

答案 2 :(得分:1)

因为:

总是返回'1'
$hello=isset($_POST['3']);

如果设置了值,函数isset()将返回1,如果未设置,则返回0。二进制1表示“true”,0表示“false”

基本上,您的代码说$_POST['3']存在。

,可能存在更大的基础问题:$_POSTarray,因此使用数字作为input name可能会被视为不良做法。尝试使用字母代替名称:

    <input type="hidden" name="hidden_user"/>

答案 3 :(得分:0)

我认为你使用的是错误的。

这个函数isset不是为了获取某些东西的值,而是为了检查这个东西是否被定义。

试试这个:

$hello=$_POST['3'];

答案 4 :(得分:0)

在status.php中获取post参数的正确方法是:

$hello = isset($_POST[3]) ? $_POST[3] : null;
echo $hello;