在Input值中检索$ _SESSION值

时间:2013-12-11 09:21:02

标签: php html forms session session-variables

我正在使用基本注册表单,如果用户按下提交按钮,我想将输入值存储到会话中,并且还将相同的用户数据保留到输入字段中。使用以下代码,我可以临时存储和检索,但只有当我按两次提交按钮时。 我的基本要求是 - 我想在按“提交”后保留用户数据。 - 我也想保留收音机,复选框值。 - 即使我们刷新页面,也可以保留输入值。

代码如下,请就我的问题提出一些建议

<!DOCTYPE html>
<html>
<head>
<title>Registration</title>
<style type="text/css">
ul li
{ 
 list-style:none; 
}   
form
{
border:1px solid #ccc;
width:500px;
margin:0 auto;
}
</style>
</head>
<body>
<?php session_start(); ?>
<form action="<?php $_PHP_SELF ?>" method="post" name="register" >
<h4>User Registration</h4>
<ul>
  <li><label>User Name</label></li>
  <li>
  <input type="text" name="user" size="20" value="
  <?php echo isset($_SESSION['user']) ? $_SESSION['user'] : ''; ?>"></li>
  <li><label>Email</label></li>
  <li><input type="text" name="email" size="25" value="
  <?php echo isset($_SESSION['email']) ? $_SESSION['email'] : ''; ?>"></li>
  <li>Gender</li>
  <li><input type="radio" name="gender">Male</li>
  <li><input type="radio" name="gender">Female</li>
  <li>Computer Knowledge</li>
  <li><input type="checkbox" name="c">C Language</li>
  <li><input type="checkbox" name="cplus">C++ Language</li>
  <li><input type="checkbox" name="java">Java</li>
  <li><input type="checkbox" name="php">PHP</li>
  <li><input type="checkbox" name="python">python</li>
  <li><input type="submit" name="submit" value="submit">
 </ul>
 </form>
 <?php 
   if (isset($_POST['submit']))  
    {
    $_SESSION['user'] = $_POST['user'];
    $_SESSION['email'] = $_POST['email'];
    }
 ?>
 </body>
 </html>

提前致谢

2 个答案:

答案 0 :(得分:0)

将此部分移至脚本顶部,紧跟session_start();之后:

 <?php 
   if (isset($_POST['submit']))  
    {
    $_SESSION['user'] = $_POST['user'];
    $_SESSION['email'] = $_POST['email'];
    }
 ?>

另外,正如@ pythonian29033所说,session_start();应该在输出任何内容之前编写。

答案 1 :(得分:0)

这个<?php session_start(); ?>应该在其他所有内容之前出现在页面顶部! 它应该像这样开始;

 <?php session_start(); ?>
 <!DOCTYPE html>

你现在应该得到一个php错误,说“致命错误;标题已经发送”或类似的内容。

如果服务器未在代码的第一行获得指令$_SESSION,则session_start();变量将无法使用