单击链接设置会话变量

时间:2012-01-10 14:02:17

标签: php html session

如何在点击链接时设置会话变量。我在一个页面上有很多链接。根据链接点击,必须设置会话变量。 例如: 我有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等等。 我怎么得到这个?任何想法?

5 个答案:

答案 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]);
?>

我想你可以将它保存到会话变量中,但它会在每个页面上被覆盖。