2011-08-25 63 views
0

片file1.php的:如何爲我想禁用的多個鏈接設置會話?

<a href="file2.php?addid=1">Add this to DB</a> 

這將用戶帶到其中數據被插入到數據庫中的頁面。

file2.php:

$clicked = $_GET['addid']; 
$_SESSION['clicked'] = $clicked; 
// data gets inserted 
header("Location: file1.php?id=$clicked"); 

但我有多個頁面(如:file1.php ID = 1 | file1.php ID = 2 | file1.php ID = 3等???) 。 會話變量是否可以處理多個數字?有沒有辦法做到這一點?

任何幫助表示讚賞。

(PS:目前我使用GET方法來禁用鏈接,但我認爲會議是更可靠) (PPS:我需要這個投票腳本)

回答

1

爲了保持在一個會話變量的詳細數據,你需要創建一個多維數組將舉行多對$_SESSION['checked']。你可以做到這一點,如:

$clicked = (int)$_GET['addid']; 
$_SESSION['clicked'][$clicked] = true; 
// data gets inserted 
header("Location: file1.php?id=$clicked"); 

(也,你應該消毒$_GET['addid']

然後檢查它是否被設置,你可以使用array_key_exists

if(array_key_exists($clicked,$_SESSION['clicked'])){ 
    echo "this button should be disabled!"; 
} 
1

我不知道我瞭解正確的你的問題,但如果它是如何通過HTTP請求發送具有相同ID數據的數組,你可以使用這個語法的URL

file.php?arr[]=val1&arr[]=val2&arr[]=val3 

從你的PHP代碼,你就可以訪問值作爲普通陣列

會話變量是否可以處理多個數字?有沒有辦法做到這一點?

會話變量可以存儲陣列

1

$ _SESSION [「點擊」]這個會話變量可以一次存儲一個值。
如果您想使用2維數組來處理多個值。

$ clicked = $ _GET ['addid'];

例:$ _SESSION [ '點擊'] [$點擊];

1

首先concatinate所有用逗號IDS在一個字符串是$ var = 1,2,3,4,然後使用GET傳遞。

再就是該網頁上,你可以從逗號爆發,並可以將其存儲在數組,然後foreach數組的循環將爲你做。希望它有效。