gpt4 book ai didi

php - 单击 链接时如何设置 session 变量

转载 作者:IT王子 更新时间:2023-10-29 00:10:46 24 4
gpt4 key购买 nike

我有以下问题...我想在单击普通链接时设置一个 session 变量,例如:

<a href="home" name="home">home</a>

我的研究似乎指出,PHP 不可能以设置 session 变量的方式 catch 点击事件。

我相信使用 Ajax 是可能的,但是怎么做呢?我的链接会是什么样子?
设置 session 变量应该如下所示:

$_SESSION['link'] = home;

所以简而言之:当点击 HTML 中的链接时,必须设置一个 session 变量。
我要怎么做?

PS:我对 Ajax 不是很熟悉,但我会 catch 来的。

编辑:链接将引用同一页面,我也想避免像“home.php?link=X”这样的 url。
如果不可能以任何其他方式做到这一点,那就太糟糕了。但我希望有一个解决方案。
重要:链接的名称将是 $_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 存储在 session 中?就用它吧。请告诉我为什么您不想使用 GET。 « 验证以获得更高的安全性。我也许可以帮助您编写更好的脚本。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com