2012-01-10 63 views
0

如何在点击链接时设置会话变量。我在一页上有很多链接。基于点击链接的会话变量必须被设置。 例如: 我有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 [“类别”] = 1页将被设置

如果点击了第二连杆然后$ _SESSION [ 'category'] = page2将被设置,等等。 我如何得到这个?任何想法??

回答

0

你好,你总是可以将javascript和php混合使用。用于锚点标记的onclick事件。当链接被点击,只要将会议的的onclick event.hope编写的JavaScript这有意义

2

最好的办法是在每个那些PHP文件的开始设置$ _SESSION [“类”]。如果这不是一个选项,可能会创建一个接受查询字符串的'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"); 
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 
0

你并不真的需要会议来检测当前页面。相反,你可以使用这个:

<?php 
    $pageName = basename($_SERVER[PHP_SELF]); 
?> 

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

1

由于gavinbear的建议,为把在页面的顶部,你可以使用以下方法来得到一个匹配你原来的命名规则:

$requested_uri = $_SERVER['REQUEST_URI'] 
$requested_path = parse_url($requested_uri)[path] 
$_SESSION['category'] = basename($requested_path, ".php")