2016-06-14 62 views
-1

特定會話如何在我下面的代碼取消設置特定的會話:PHP取消設置通過點擊

for($i=0;$i<count($_SESSION['src']);$i++) 
{ 
?> 
    <tr> 
    <td><?php echo $_SESSION['name'][$i]; ?></td> 
    <td><?php echo $_SESSION['price'][$i]; ?></td> 
    <td><a href="?delPrd=<?php echo $_SESSION['pid'][$i]; ?>">Hapus</a></td> 
    </tr> 
<?php 
} 

if($_GET['delPrd']); 
{ 
    unset($_SESSION['name']); 
    unset($_SESSION['price']); 
} 

例如,我有每個會話ID 3點的數據。現在我想通過單擊每個刪除鏈接來取消設置會話。

我該怎麼做?所以我點擊刪除然後它會隱藏使用unset()當我遇到同樣的問題來了,是我在<tr>

+1

你需要更清楚地解釋有點你的問題,謝謝。我不明白你想要做什麼,你已經做了什麼以及爲什麼'unset'不能解決你的問題。你可以定義「特定會話」,你的意思是整個會話數組? – Martin

+0

意味着,即時通訊使用加入購物車會議。我有3個數據在表中,每一行都有刪除鏈接。因此,如果我單擊第1行中的刪除鏈接示例,則只會爲第1行取消設置會話。 –

回答

0

之前單擊了行,我試圖調試它,看它是否將永遠取消設置使用一個簡單的while循環。

while(isset($_SESSION['...'])): 
    unset($_SESSION['...']); 
endwhile; 

這似乎對我來說,實際上沒有設置緩存的工作,就好像它需要在繼續,這使得沒有邏輯感之前就知道它沒有設置,但對於你的代碼 - 你花你的時間50%,試圖修復代碼,只有50%想知道它到底如何工作。

希望這有助於。

編輯:你可以把它變成可重複使用的對象,像:

class SessionRemovale 
{ 
    public function Remove($param) 
    { 
     while(isset($_SESSION[$param])) { 
      unset($_SESSION[$param]); 
     } 
    } 
} 

然後使用它像:

$session_controller = new SessionRemovale(); 
$session_controller->Remove("...."); 
$session_controller->Remove("....");