2012-01-10 67 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")