如何在php中设置会话变量onclick

时间:2014-05-28 06:18:32

标签: javascript php jquery html session

我想在点击链接时设置会话,因此登录后用户将重定向到上次访问的页面。

例如:

Step1:用户打开主页。(seeion url设置为主页

$_SESSION['url'] = $_SERVER['REQUEST_URI'])

第二步:接下来在新标签中,用户将打开联系页面(再次重置会话变量)

步骤3:用户将进入主页并点击登录链接。(由于没有重新加载页面,会话未设置)

第4步:登录后,用户将重定向到联系页面。

但是我希望用户在用户点击登录链接时进行重定向。

我尝试使用以下代码,但它不适用于我。

PHP代码:

session_start();

$_SESSION['url'] = $_SERVER['REQUEST_URI'];

$url=$_SESSION['url'];

HTML代码

<div class="gallery_div"> 
    <p>
      Please Click <strong><a href="login.php?link=<?php echo $url; ?>" style="color:#993b05"> here </a></strong>to login

    </p></div>

在登录页面

session_start();
if(isset($_GET['link']))
{
$_SESSION['url'] = $_GET['link'];

}

当重定向此页面时,它带有参数,因此找不到页面。因为只有login.php在那里。

任何人都可以帮助我。

3 个答案:

答案 0 :(得分:1)

您不必使用会话来实现此目的。您可以根据$ _SERVER [&#39; HTTP_REFERER&#39;]重定向用户。这将告诉您上次访问的页面。您甚至可以根据需要在此处添加一些过滤。

if($_SERVER['HTTP_REFERER']!='' && stripos($_SERVER['HTTP_REFERER'],'mydomain.com')!==false){
   header('location:'.$_SERVER['HTTP_REFERER']);
   exit;
}

答案 1 :(得分:0)

$_SESSION['url']$url

不同

在您的HTML中,将<?php echo $url; ?>更改为<?php echo $_SESSION['url']; ?>

答案 2 :(得分:0)

需要两个页面。第一个用于调用(点击)一个会话,另一个用于通过ajax设置会话的值。

< a href="#" onclick="setsession()" style="color:#993b05"> Login </a>
<br/>
<script>
<br/>
function setsession(){<br/>
if (window.XMLHttpRequest)  <br/>
  {// code for IE7+, Firefox, Chrome, Opera, Safari<br/>
  xmlhttp=new XMLHttpRequest(); <br/> 
  }<br/>
else<br/>
  {// code for IE6, IE5<br/>
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");<br/>
  }<br/>
xmlhttp.onreadystatechange=function()<br/>
  {<br/>
  if (xmlhttp.readyState==4 && xmlhttp.status==200)<br/>
    {<br/>
    document.getElementById("scat").innerHTML=xmlhttp.responseText;<br/>
    }<br/>
  }<br/>
<br/>
xmlhttp.open("post","setsession.php",true);// calls a page  where u can set session <br/>
xmlhttp.send();<br/>
}<br/>
</script><br/>
if(isset($_GET['link']))<br/>
{<br/>
$_SESSION['url'] = $_GET['link'];<br/>
<br/>
}<br/>
header("Location:redirect.php");<br/>