无法获取isset的值($ _ POST ['value'])

时间:2013-07-02 15:58:32

标签: php

我有2个php页面。第一个php页面如下:

<?php
  //code...
  if(isset($_POST['value'])== true && empty($_POST['value']) == false){
    echo"<a href='search_form_all_2.php'>See more results for </a>"; 
} ?>

第二页是“search_form_all_2.php”。

<?php

$value = mysql_real_escape_string($_POST['value']);

$name_and_surname = explode(" ", "$value ");

$name = $name_and_surname[0];

$surname = $name_and_surname[1]; 

$query = mysql_query(" SELECT `name`, `surname`, `email`, `user_id` FROM users 
   WHERE (surname LIKE '$name%' AND name LIKE '$surname%') OR (surname LIKE
   '$surname%' AND name LIKE '$name%')  ");

while($run = mysql_fetch_array($query)){
    $surname = $run['surname'];
    $name = $run['name'];
    echo"$surname $name  "; 
}
?>

我想在“search_form_all_2.php”中设置$值,以获取第一页if(isset($_POST['value'])== true && empty($_POST['value']) == false)中第一页的值。我怎么能这样做,因为当运行“search_form_all_2.php”时,我收到一条错误信息:注意:未定义的索引:值

3 个答案:

答案 0 :(得分:1)

在这种情况下你需要使用GET。只有在提交表单时才会发送POST值。

if(isset($_POST['value'])== true && empty($_POST['value']) == false){
    echo "<a href='search_form_all_2.php?value=".urlencode($_POST['value'])."'>See more results for </a>";  

然后在第二页上检索GET值

$value = mysql_real_escape_string($_GET['value']);

注意,GET值对用户可见。它们是URL的一部分。不要发送机密信息。

另一种方法是将值保存在COOKIE或SESSION变量中。

setcookie("TestCookie", $_POST['value']);
$value  = $_COOKIE["TestCookie"];

BTW empty()总是返回布尔值,它已经检查变量是否已设置,所以你只需要:

if(!empty($_POST['value'])

答案 1 :(得分:0)

在第一页中,您可以在网址中传递参数...示例:

echo "<a href='search_form_all_2.php?s=".urlencode($_POST['value'])."'>See more results for </a>"; 

然后,在你的第二页,你可以调用参数......例如:

$value = mysql_real_escape_string($_GET['value']);

PS:您不应该使用mysql_*功能。而是至少学习mysqli或PDO。

答案 2 :(得分:0)

search_form_all_2.php上,您无法访问数据值,因为当您单击链接时,它是GET请求,而不是POST请求。我建议你查看差异。

但是,如果您使用它来吐出链接:

echo"<a href='search_form_all_2.php?more={$_POST['value']}'>See more results for </a>";

然后您可以使用$ _GET或$ _REQUEST(如果您希望能够使用GET或POST)在第2页上检索它:

$value = mysql_real_escape_string($_REQUEST['value']);