0

我有 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”中创建 $value 以获得第一页的第一页的值if(isset($_POST['value'])== true && empty($_POST['value']) == false)。我该怎么做,因为在运行“search_form_all_2.php”时我收到一条错误消息:注意:未定义的索引:值

4

3 回答 3

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"];

BTWempty()总是返回布尔值并且它已经检查了变量是否被设置,所以你只需要:

if(!empty($_POST['value'])
于 2013-07-02T16:11:11.550 回答
1

在您的第一页中,您可以在 url 中传递一个参数...例如:

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。

于 2013-07-02T16:02:42.110 回答
0

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

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

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

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

$value = mysql_real_escape_string($_REQUEST['value']);
于 2013-07-02T16:06:30.193 回答