$ _SESSION问题

时间:2014-10-19 07:11:53

标签: php session

我正在创建一个页面,允许用户选择现有地址,或输入新地址,这是我的代码。

<table cellpadding="10px">
    <tr>
        <td><input type="radio" id="huhu" name="huhu" value="<?php echo $_SESSION['home_address']; ?>"></td><td><?php echo $_SESSION['home_address']; ?></td>
    </tr>
    <tr>
        <td><input type="radio" id="huhu" name="huhu" value="New"></td><td><input type="text" placeholder="New Address" id="newAdd" name="newAdd" disabled></td>
    </tr>
</table>

以下是我在下一页的代码。

<?php 
if(isset($_POST['newAdd'])){
$_SESSION['home_address'] = $_POST['newAdd'];
echo $_POST['newAdd']."<br>";
}
else{
    $_SESSION['home_address'];
}


echo $_SESSION['home_address'];
?>

当我点击现有地址时,它只是删除它。并且不存储任何东西。但是当我在文本区域输入新内容时。它有效。

我需要这样做,以便当用户点击地址时,显示现有会话中的相同地址。

请帮忙。谢谢。

3 个答案:

答案 0 :(得分:1)

我认为你错过了PHP文件中的session_start()方法。尝试在PHP文件的开头添加以下代码

   if (!isset($_SESSION))session_start();

答案 1 :(得分:1)

如果您的会话信息设置正确..这应该可以解决。

<?php 
session_start(); 

// for my testing.... 
$_SESSION['home_address'] = 'curr_session_address'; 

var_dump($_POST); 
var_dump($_SESSION); 

$s_addr = isset($_SESSION['home_address']) ? $_SESSION['home_address'] : ''; 
$p_addr = isset($_POST['newAdd'])          ? $_POST['newAdd']          : ''; 

if ( !empty($p_addr) ) {
   $_SESSION['home_address'] = $p_addr;
   echo "new_address = $p_addr<br>";
}
else { 
   echo "session_address = $s_addr<br>";
} 

?>

<form method='post' action='?'>
   <table cellpadding="10px">
       <tr>
           <td><input type="radio" id="huhu" name="huhu" value="<?php echo $_SESSION['home_address']; ?>"></td>
           <td><?php echo $_SESSION['home_address']; ?></td>
       </tr>
       <tr>
           <td><input type="radio" id="huhu" name="huhu" value="New"></td>
           <td><input type="text" placeholder="New Address" id="newAdd" name="newAdd"></td>
       </tr>
   </table>
   <input type='submit' value='submit'> 
</form>

答案 2 :(得分:0)

试试这个。

if(empty($_POST['newAdd'])){
$_SESSION['home_address'] = $_POST['huhu'];
}
else if(!empty($_POST['newAdd'])){
$_SESSION['home_address'] = $_POST['newAdd'];
}

我建议您不要在单选按钮页面中使用$ _SESSION。它会导致并发症,而且总会被写下来。