[英]How do I set a PHP session variable from a hyperlink?
我第一次刺这件事,所以请不要笑! 我创建了一个会话变量,以允许用户在同一站点上的英国和美国内容之间切换(英国默认)。
<?php
session_start();
$_SESSION['territory'] = 'UK';
if (isset($_SESSION['territory'])){
echo 'Session is set to '.$_SESSION['territory'];
}
else{
echo 'Session not set yet';
}
?>
到目前为止一切都很好。 现在,当用户单击英国或美国时,我需要几个链接来设置此变量。 Google只能通过表单设置变量,而对于通过简单的旧href设置没有任何帮助。 有人可以指引我正确的方向吗? 非常感激。
您可以在URL后面附加?lang = UK,然后$ _GET ['lang']变量将在您的代码中可用。 例如:
switch($_GET['lang']) {
case 'UK': case 'US':
$_SESSION['territory'] = $_GET['lang'];
break;
default:
$_SESSION['territory'] = 'UK';
}
如果要在单击链接的帮助下设置会话变量。 您将不得不使用ajax,当您单击链接时可以调用javascript函数,然后该函数可以使ajax命中php文件,然后该php文件可以设置会话变量。
首先,您可以仅使用cookie(无需会话)来执行此操作。
话虽如此,只需创建一些指向uri的链接,例如: /set_territory.php?cc=UK
等等。
set_territory.php然后可以通过$_GET['cc']
设置地区,并将用户重定向到适当的内容。
我遇到了同样的问题-我想通过单击超链接将参数传递给另一页,并获取值以转到下一页(不使用GET,因为参数存储在URL中)。
对于不了解您为什么要执行此操作的用户,答案是您不希望用户看到敏感信息,或者您不希望有人编辑GET。
仔细搜索互联网后,似乎无法使用POST方法建立普通的超链接。
然后我有一个尤里卡的时刻! 为什么不使用CSS来使Submit按钮看起来像普通的超链接呢??? ...并将要传递的值放在隐藏字段中。
我尝试了它,它的工作原理。 您可以在这里看到一个实例,例如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>
基本的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;
}
#hide{visibility:hidden;width:0px;}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.