2014-04-06 48 views
1

我有多個頁面用於根據特定的規範來整理表格。 我爲每個表格排序創建了一個頁面,但我希望它在一個頁面上。爲什麼當它不應該運行我的單獨的php文件?

當我第一次登錄到儀表板時,我有這段小小的代碼片段。

session_start(); 
$user = $_SESSION['user']; 
if(empty($_SESSION['table'])){ 
    $_SESSION['table'] = "dashboard"; 
} 

我有這個jquery函數在底部。

<script type="text/javascript" src="jquery.min.js"></script> 
<script type="text/javascript"> 
function changeString() { 
    $.get("changeString.php"); 
    return false; 
} 

我設置了它,當我點擊某個圖像時,它會更改一個條件字符串並相應地對其進行排序。

這裏是我的表條件:

if($_SESSION['table'] == "dashboard"){ 
     $sql1=mysql_query("SELECT email from loggedin WHERE session_id='$user'"); 
     $sess=mysql_fetch_array($sql1); 
     $newValue=$sess['email']; 
     $sql2= mysql_query("SELECT * FROM food WHERE OwnerEmail='$newValue'"); 
    } 

     elseif($_SESSION['table'] == "Pantry"){ 

     $sql1=mysql_query("SELECT email from loggedin WHERE session_id='$user'"); 
     $sess=mysql_fetch_array($sql1); 
     $newValue=$sess['email']; 
     $sql2= mysql_query("SELECT * FROM food WHERE OwnerEmail='$newValue' AND Container='Pantry'"); 

這裏是我的IMG鏈接:

<a href="#" onClick="changeString()";><img src="iconpantry.png" class="img-responsive"></a> 

這是我的呼籲changeString.php

<?php 

session_start(); 
$_SESSION['table'] = "Pantry"; 


?>: 

單獨的PHP文件現在什麼情況是,當我第一次登錄時,出於某種原因它會自動設置$ _SESSION ['table'] =「Pantry」。

沒有我甚至點擊圖片。

這是怎麼發生的?

+0

我不會使用會話這樣的事情...如果您將GET參數添加到url,我的猜測是您不會重置會話變量,會話變量可能持續數月可能會保留上次登錄會話的「食譜」值。 – Bor691

+0

你能否給我一個我如何做的小例子? – user3486712

回答

2

@ user3503344的答案是正確的,它修復了您的代碼以重置登錄時的會話,這是以前沒有做過的。但通常情況下,如果設置不一致(即每次用戶登錄時重置),最好使用get變量。

如果用戶的網站有2個選項卡打開並且要在每個選項卡上設置不同的設置,該怎麼辦?他不能在會議上這樣做。

,所以我說改變你的表有條件

if(!isset($_GET['table']) || $_GET['table'] == "dashboard"){ 
    //this happens if ?table=X does not exits or it is set to dashboard 
    $sql1=mysql_query("SELECT email from loggedin WHERE session_id='$user'"); 
    $sess=mysql_fetch_array($sql1); 
    $newValue=$sess['email']; 
    $sql2= mysql_query("SELECT * FROM food WHERE OwnerEmail='$newValue'"); 
}elseif($_GET['table'] == "Pantry"){ 
    $sql1=mysql_query("SELECT email from loggedin WHERE session_id='$user'"); 
    $sess=mysql_fetch_array($sql1); 
    $newValue=$sess['email']; 
    $sql2= mysql_query("SELECT * FROM food WHERE OwnerEmail='$newValue' AND Container='Pantry'"); 
} 

,併爲您的按鈕,你應該這樣做:

<a href="?table=Pantry"><img src="iconpantry.png" class="img-responsive"></a> 

這樣用戶也可以書籤您的網站,這個喜好所以他不如果他想默認查看食品櫃檯表,每次都不必按下按鈕。

+0

因此,我正在做一些類似於用戶監控會話ID的頁面。 我在登錄時進入 'url.com?id=「id」' 但在該頁面上,我有另一個鏈接返回到它。 ''Dashboard 現在,當我嘗試做這樣的事情: ''Dashboard 它轉到頁但是URL說 'url.com ID =' 這行的事給一個id – user3486712

+0

''Dashboard'只會有一個id,如果鏈接頁面上有一個id,例如如果你把這個代碼放在'url.com /'它沒有id,但是從'url.com/?id = 5'它給你id = 5。如果在url.com?id=id中,但仍然給你id =(沒有價值),也許你有語法錯誤或拼寫錯誤 – Bor691

0

編輯:

session_start(); 
$user = $_SESSION['user']; 
if(empty($_SESSION['table'])){ 
    $_SESSION['table'] = "dashboard"; 
} 

要:

session_start(); 
unset($_SESSION['table']); 
$user = $_SESSION['user']; 
$_SESSION['table'] = "dashboard"; 

要使用GET方法:

網址:url.com/index.php?page=dashboard

PHP:

<?php 
    if(isset($_GET['page']) && strlen($_GET['page'])>0) { 
     if($_GET['page'] == 'dashboard') { 
      // Do what you want if the page is dashboard. 
     } 
    } 
?> 
+0

如果您取消設置變量,那麼之後立即使用empty()檢查它是沒有意義的。 – IMSoP

+0

好吧,它恢復正常,但現在當我點擊圖像鏈接將其更改爲Pantry時,它將重定向回儀表板並再次取消設置。 – user3486712

+0

發佈Pantry的整個PHP源代碼。我已經發布了PHP GET方法來完成這件事。 @ user3486712 –

相關問題