这是我目前的代码:
$search = $_POST['s'];
$search = strtoupper($search);
$search = strip_tags($search);
$search = trim($search);
$search = mysql_real_escape_string($search);
我需要能够将$ search变量传递给我的第二,第三等页面。
我是php的初学者,我有点卡在这里
答案 0 :(得分:1)
会议似乎是你的朋友。在最简单的形式中,会话将把数据放入发送到用户浏览器和从用户浏览器发送的cookie中。确保在对会话执行任何操作之前调用session_start()
,这将启动或恢复用户的会话。之后,您可以使用$_SESSION
作为将在页面之间保留的全局关联数组。
Xander已将您与文档相关联, Here are some simple examples。确保你理解session_start()
,否则你会有一些错误。
N.B。不要将此基本会话格式用于敏感数据。查看使用memcache之类的东西来存储数据,然后简单地将memcache密钥放入$ _SESSION。另外,请考虑加密会话。这些是在处理用户身份验证/登录时应该考虑的更高级的事情
答案 1 :(得分:1)
虽然建议使用$_SESSION
,但另一个选项是在后续生成的网页上使用隐藏字段(具有相同名称并填充适当的值)。然后,当这些页面被回发时,它们也将在$_POSTS
中提供该字段(此时由隐藏字段提供,而不是原始文本字段)。
优点:
缺点:
快乐的编码。
答案 2 :(得分:1)
假设它是一个搜索字符串,则仅理智的方法:
首先,将表单的方法更改为GET 接下来,使用GET方法在查询字符串中传递搜索变量。
您必须应用的唯一修改是urlencode()
所以,代码应该是
$query_string = 'search='.urlencode($_GET['search']);
echo "<a href='?page=2&$query_string'>page 2</a>";
生成HTML代码
<a href="?page=2&search=search+string">page 2</a>
因此用户可以点击此链接,您将获得搜索字符串
答案 3 :(得分:0)
在您要访问搜索变量的每个页面中使用session_start()
在第一页
$search = $_POST['s'];
$search = strtoupper($search);
$search = strip_tags($search);
$search = trim($search);
$search = mysql_real_escape_string($search);
将会话变量设置为
$_SESSION['searchStr']=$search
然后在每个其他页面
session_start(); // at the very begining
if(isset($_SESSION['searchStr'])) {
$search=$_SESSION['searchStr']
}