2012-01-10 20 views
0

リンクのクリック時にセッション変数を設定する方法を教えてください。私は1ページに多くのリンクがあります。クリックされたリンクに基づいてセッション変数を設定する必要があります。例えば : 最初のリンクがクリックされた場合、私はその後、$ _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> 

を持っている= Page1のは、第2のリンクはその後、$ _SESSION [クリックすると

を設定します'category'] = page2が設定されるなど.. どうすればいいですか?何か案が??

答えて

0

よく、あなたはいつもアンカータグのonclickイベントをphp.useでjavascriptと混在させることができます。リンクがクリックされると、onclickイベントのために書かれたjavascriptであなたのセッションを設定するだけです。これは意味があります

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

を私はあなたがしてセッション変数にそれを救うことができると仮定し、すべてのページに上書きされることになるだろう。

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

gavinbearの提案は、ページの一番上に置くために、あなたは、元の命名規則に一致を取得するには、次の使用することができたよう

関連する問題