我想在点击链接时设置会话,以便登录后用户将重定向到上次访问的页面。
例如:Step1:用户打开主页。
$_SESSION['url'] = $_SERVER['REQUEST_URI'])
step2:下一步在新选项卡用户将打开联系人页(再次会话变量重置)
step3:用户将进入首页,点击进入登录链接。(未设置会话,因为没有重新加载页面)
step4:登录后用户将重定向到联系人页面。
,但这里我希望用户被重定向,用户点击链接登录。
我尝试了下面的代码,但它不适合我。
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
有谁能帮我一下吗?您并不一定要使用session来实现这一点。你可以基于$_SERVER['HTTP_REFERER']重定向用户。这将告诉你最后访问的页面。您甚至可以根据需要在这里添加一些过滤。
if($_SERVER['HTTP_REFERER']!='' && stripos($_SERVER['HTTP_REFERER'],'mydomain.com')!==false){
header('location:'.$_SERVER['HTTP_REFERER']);
exit;
}
$_SESSION['url']
与$url
不一样
在你的html中,将<?php echo $url; ?>
改为<?php echo $_SESSION['url']; ?>
需要两页。第一个用于调用(单击)会话,其他用于通过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/>