如何在点击链接时设置会话变量。我在一个页面上有很多链接。根据链接点击,必须设置会话变量。 例如: 我有5个链接
<a
href="page1.php">
page1
</a>
<a href="page2.php">
page2</a>
<a href="page3.php">
page3</a>
<a href="page4.php">
page4</a>
<a href="page5.php">
page5</a>
如果点击了第一个链接,那么将设置$ _SESSION ['category'] = page1
如果单击第二个链接,则设置$ _SESSION ['category'] = page2等等。 我怎么得到这个?任何想法?
答案 0 :(得分:2)
最好的办法是在每个php文件的开头设置$ _SESSION ['category']。如果这不是一个选项,可能会创建一个接受查询字符串的'page.php'文件。
这样的事情:
<?php //example: page.php?p=1
// don't forget to clean $_GET['p']
$p = $_GET['p'];
$_SESSION['category'] = $p;
include("page$p.php");
答案 1 :(得分:1)
由于gavinbear建议放在页面顶部,您可以使用以下内容来匹配原始命名约定:
$requested_uri = $_SERVER['REQUEST_URI']
$requested_path = parse_url($requested_uri)[path]
$_SESSION['category'] = basename($requested_path, ".php")
答案 2 :(得分:0)
你可以随时将javascript与php混合使用。使用onclick事件作为锚标记。当点击链接时,只需在为onclick event.hope编写的javascript中设置会话即可。
答案 3 :(得分:0)
在每个页面上,您需要设置会话。
例如在page1.php上:
<?php
session_start();
$_SESSION['category']='page1';
?>
Any content on page1.php
每页的等等。
但是,如果您希望它位于同一页面上,但设置会话并使用该会话来控制页面上的某些内容(例如类别),那么您可以通过URL传递参数并设置会话方式,例如一个例子是page.php?category=page1
<?php
session_start();
if (isset($_GET['category'])) {
$_SESSION['category']=$_GET['category'];
}
?>
Any content on page.php
答案 4 :(得分:0)
您实际上不需要会话来检测当前页面。相反,你可以使用它:
<?php
$pageName = basename($_SERVER[PHP_SELF]);
?>
我想你可以将它保存到会话变量中,但它会在每个页面上被覆盖。