我有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”时,我收到一条错误信息:注意:未定义的索引:值
答案 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']);