2012-12-18 100 views
0

我想知道如何在會話密鑰中更改值。如何更改會話的價值?

我有兩個頁面:

1更改設置:

<?php  
session_start(); 

if (isset($_POST['one'])){ 
    $_SESSION['pref_lang'] = 'one'; 
} 
if (isset($_POST['two'])){ 
    $_SESSION['pref_lang'] = 'two'; 
} 
?> 

的HTML:

<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">  
    <input type="submit" id='one' name='one' value="one"/> 
    <input type="submit" id='two' name='two' value="two"/> 
</form> 

第2頁將只是顯示會話:

<?php 
session_start(); 
print_r($_SESSION); 
?> 

and e三分之一來摧毀會議。

問題是當我調用第一頁來改變會話值時,它不會改變它。如果有人能夠告訴我這有什麼問題,我真的很感激。

UPDATE:

還好,似乎在呼應了第1頁上的print_r會議,該網頁在那裏我已經放在forms-一切正常像我做錯了第2頁上。但是當調用第2頁時,通常應該告訴我會話中有什麼,它只是顯示會話的內容。奇怪的是,當我調用第3頁來銷燬會話時,在第1頁上它將顯示會話是空的,但在第2頁上它不會改變任何東西。即使當我改變第1頁上的值時,它也不會在第2頁上改變它,但它會在第1頁上顯示改變?

回答

1

表單將發佈它們包含的所有字段。所以基本上你的壓倒性會議。如果你想嘗試這樣的:

<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">  
    <input type="submit" id='one' name='one' value="one"/> 
</form> 

<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">  
    <input type="submit" id='two' name='two' value="two"/> 
</form> 

你會看到你的第二種形式將如何覆蓋會話變量。

+0

我只能改一次。如果我會嘗試第二次更改它不起作用? – bonny

+0

@bonny你是什麼意思「如果我會嘗試第二次改變它不工作?」? – PhearOfRayne

+0

給我更多的信息我更新了我的問題。謝謝。 – bonny

0

在您的表單中,您發送了兩個值($ _POST ['one']和$ _POST ['two'])。

它改變什麼,我有如下:

<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">  
    <input type="submit" id='one' name='one' value="one"/> 
</form>  

<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">  
    <input type="submit" id='two' name='two' value="two"/> 
</form> 

以上只是形式分爲二,並分別發送的值。考慮修改你的程序或使用單選按鈕來辨別每個選擇。 http://www.w3schools.com/html/html_forms.asp