我有以下问题…我想要设置一个会话变量,当点击一般的链接,如:
<a href="home" name="home">home</a>
我的研究似乎指出,PHP不可能以这样一种方式来追踪点击事件来设置会话变量.
我相信有可能与Ajax,但如何?我的链接会是什么样的?
设置会话变量应如下所示:
$_SESSION['link'] = home;
简而言之:当单击HTML中的链接时,必须设置会话变量.
我该怎么办?
PS:我不太熟悉Ajax,但我会赶上.
编辑:链接将引用同一页面,我也想避免像“home.PHP?link = X”这样的网址.
如果不可能做任何其他方式,太糟糕了.但我希望有一个解决方案.
重要提示:链接的名称将为$_SESSION [‘link’]
session_start(); if(isset($_SESSION['current'])){ $_SESSION['oldlink']=$_SESSION['current']; }else{ $_SESSION['oldlink']='no prevIoUs page'; } $_SESSION['current']=$_SERVER['PHP_SELF'];
也许这是你要找的?
它会记住您来自的旧链接页面(在您的网站内).
将该片放在每页的顶部.
如果您想要“刷新证明”,您可以添加另一个支票:
if(isset($_SESSION['current']) && $_SESSION['current']!=$_SERVER['PHP_SELF'])
这将使页面不记得自己.
更新:几乎与@Brandon一样…
只要使用PHP变量,我知道这看起来像一个安全风险,但是当做正确的时候,它不是.
<a href="home.PHP?a=register">Register Now!</a>
PHP:
if(isset($_GET['a']) /*you can validate the link here*/){ $_SESSION['link']=$_GET['a']; }
为甚么将GET存储在会话中?只是用它请告诉我为什么你不想使用GET. «验证更安全.我也许可以帮你一个更好的脚本.