Mix*_*oid 15 html php ajax session
我有以下问题...我想在点击普通链接时设置一个会话变量,如:
<a href="home" name="home">home</a>
Run Code Online (Sandbox Code Playgroud)
我的研究似乎指出,PHP不可能以一种设置会话变量的方式赶上click事件.
我相信它可以用Ajax,但是怎么样?我的链接会是什么样的?
设置会话变量应如下所示:
$_SESSION['link'] = home;
Run Code Online (Sandbox Code Playgroud)
简而言之:当点击HTML中的链接时,必须设置会话变量.
我该怎么做?
PS:我对Ajax不太熟悉,但我会赶上来.
编辑:链接将引用同一页面,我也想避免像"home.php?link = X"这样的网址.
如果不可能以任何其他方式做到这一点,那就太糟糕了.但我希望有一个解决方案.
重要提示:链接的名称将是值$_SESSION['link']
Sup*_*Spy 12
session_start();
if(isset($_SESSION['current'])){
$_SESSION['oldlink']=$_SESSION['current'];
}else{
$_SESSION['oldlink']='no previous page';
}
$_SESSION['current']=$_SERVER['PHP_SELF'];
Run Code Online (Sandbox Code Playgroud)
也许这就是你要找的东西?它会记住你来自的旧链接/页面(在你的网站内).
把那一块放在每页的顶部.
如果你想让它'刷新证明',你可以添加另一个检查:
if(isset($_SESSION['current']) && $_SESSION['current']!=$_SERVER['PHP_SELF'])
Run Code Online (Sandbox Code Playgroud)
这将使页面不记得自己.
更新:几乎与@Brandon相同......只是使用一个php变量,我知道这看起来像一个安全风险,但如果完成正确则不然.
<a href="home.php?a=register">Register Now!</a>
Run Code Online (Sandbox Code Playgroud)
PHP:
if(isset($_GET['a']) /*you can validate the link here*/){
$_SESSION['link']=$_GET['a'];
}
Run Code Online (Sandbox Code Playgroud)
为什么甚至将GET存储在会话中?只是使用它.请告诉我为什么你不想使用GET.«验证更安全.我也许可以用更好的脚本来帮助你.
as_*_*ove 12
我遇到了同样的问题 - 我希望通过单击超链接将参数传递给另一个页面并获取值以转到下一页(不使用GET,因为参数存储在URL中).
对于那些不明白你为什么要这样做的人,答案是你不希望用户看到敏感信息,或者你不希望有人编辑GET.
在浏览互联网之后,似乎不可能使用POST方法制作正常的超链接.
然后我有一个尤里卡时刻!!!! 为什么不只是使用CSS使提交按钮看起来像一个普通的超链接??? ...并将我想要传递的值放入隐藏字段中
我尝试了它,它的工作原理.你可以在这里看到一个exaple http://paulyouthed.com/test/css-button-that-looks-like-hyperlink.php
表格的基本代码是:
<form enctype="multipart/form-data" action="page-to-pass-to.php" method="post">
<input type="hidden" name="post-variable-name" value="value-you-want-pass"/>
<input type="submit" name="whatever" value="text-to-display" id="hyperlink-style-button"/>
</form>
Run Code Online (Sandbox Code Playgroud)
基本的CSS是:
#hyperlink-style-button{
background:none;
border:0;
color:#666;
text-decoration:underline;
}
#hyperlink-style-button:hover{
background:none;
border:0;
color:#666;
text-decoration:none;
cursor:pointer;
cursor:hand;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
106800 次 |
| 最近记录: |