我正在尝试使用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。
答案 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']
存在。
但,可能存在更大的基础问题:$_POST
是array
,因此使用数字作为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;