2012-12-18 62 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