[英]How to set the session variable onclick in php
我想在單擊鏈接時設置會話,因此登錄后用戶將重定向到上次訪問的頁面。
例如:
步驟1:用戶打開首頁。(查看網址設置為首頁)
$_SESSION['url'] = $_SERVER['REQUEST_URI'])
步驟2:新標簽頁中的下一個用戶將打開聯系頁面(再次重置會話變量)
第三步:用戶將進入首頁並單擊登錄鏈接。(未設置會話,因為沒有重新加載頁面)
步驟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。
誰可以幫我這個事。
您實際上不必使用會話來實現此目的。 您可以基於$ _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 $url; ?>
為<?php echo $_SESSION['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/>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.