2016-02-25 58 views
2

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

当我尝试另一页上看到它的值,它总是返回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

+1

'isset()函数'返回一个true或false,所以'$ hello'将是布尔.....布尔真正显示为'1',布尔如果你回显它,'false'完全不显示 –

+0

'$ hello = isset($ _ POST ['3'])? $ _POST ['3']:'未发布任何值';'输出实际的POST值,而不是是否设置。 –

+0

Giray请检查答案,并标记并向上投票表明答案更正确,更具描述性。它会帮助别人。谢谢。 –

回答

1

isset()返回布尔:

试试这个在status.php中获取您的发布参数是:

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

谢谢你的信息。我改变了代码,但这一次它没有返回任何东西。 – Giray

+0

现在试试........ –

+0

还是一样......... – Giray

1

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

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

如果$_POST['3']设置这将返回true

由字面意思isset()表示设置变量。这是一个BOOL函数,这意味着它只能在设置时返回true,而在设置/空时只能返回false

因此,你的代码应该是:在isset()

$hello = $_POST['3']; 

更多信息:http://php.net/manual/en/function.isset.php

提示:它实际上是不要把价值在一个隐藏的文本框,然后使用$_GET得到它,因为大多数人可以编辑浏览器中的值是一个好主意。

0

我认为你正在使用isset错误。

这个函数isset不是为了获取某个东西的值,而是为了检查这个东西是否被定义。因此,如果变量可用$您好= 1,否则$您好= NULL
Wrtie POST为

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

的正确方法

$hello=$_POST['3']; 
1

,因为它总是返回“1”:

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

功能isset()返回1因为如果该值设置和0如果不设置它。二进制1表示“真”,0表示“假”

本质上,您的代码表示存在$_POST['3']

然而,也有可能是一个更大的问题,下属:$_POSTarray所以使用数字作为input name可以被认为是不好的做法。请尝试使用字母,而不是像一个名字:

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

我改变了这个”/>但这次它没有返回任何东西。它是空的。 – Giray

+0

也改变这一点。 $ hello = isset($ _ POST ['hidden_​​']); echo $ hello; echo“
”; – d1sciple

+0

”/>我已经变成这个,现在它的工作。 – Giray