【问题标题】:php sessions and POST or GET variablesphp 会话和 POST 或 GET 变量
【发布时间】:2014-04-30 00:36:31
【问题描述】:

嗨,我的 php 会话有问题,我有一个页面,其中包含我创建会话并发送到其他页面的文件,在此页面中接收 POSTGET 变量进行搜索,但如果我前进然后返回我的导航器互联网显示“确认转发表单”

session_start();    
if($_SESSION['logged']!='yes'){
    header('location: http://www.midomain.com/login.php');
}
else{
    $user=$_SESSION['user'];
    $varforsearch=$_POST['var'];        
}

如果我删除session_start(); 行,它可以工作,并且不显示“确认转发表单”,如果我继续然后返回,但不创建会话,知道吗?

【问题讨论】:

  • 网络浏览器问你这个是因为你提交了一个表单,他想知道你是否想重新发布相同的数据。
  • 但如果我删除行 session_start();什么都不问我,它的工作原理!

标签: php session


【解决方案1】:

$_SESSION['logged']!='yes' 表示会话未创建,用户未登录。

你写的其他部分,$user=$_SESSION['user'];

通常,$_SESSION['logged'] 只有在用户成功登录时才应该为真。

您应该开始在身份验证功能中分配会话值,如果用户被验证,则只分配会话变量。

希望这会对你有所帮助。

【讨论】:

  • 嗨,我可以创建变量以像会话变量一样进行搜索吗?
【解决方案2】:

为避免重新提交,您需要重定向到同一页面。 试试这个方法:

session_start();    
if($_SESSION['logged']!='yes'){
    header('location: http://www.midomain.com/login.php');
}
else{
    $user=$_SESSION['user'];
    $varforsearch=$_POST['var'];
    //Clear POST data
    unset($_POST);
    //redirect to your self or other page
    header('location: http://www.midomain.com/search.php');
}

【讨论】:

  • 实际上我使用相同的页面进行搜索以显示搜索结果,我有一个页面,我将我发送到一个名为“search.php”的页面,这里我写了 mi search,在这个页面我抓住了要搜索的词(带帖子),如果变量不同于空,则进行搜索,如果我的搜索发现某些内容会在同一页面中显示它
  • @undertakerevil 是的,我明白了,您是否尝试重定向到同一页面?这可能会避免您遇到的问题
猜你喜欢
  • 2012-06-29
  • 2013-10-25
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 2020-05-27
  • 2012-04-30
  • 2015-08-29
  • 1970-01-01
相关资源
最近更新 更多