2013-12-11 133 views
0

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

代码如下,请给一些建议,关于我的问题

<!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> 

在此先感谢

回答

0

移动这部分在脚本的顶部,只是session_start();后:

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

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

0

这个<?php session_start(); ?>应该在一切之前来到页面顶部! 它应该像这样开始;

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

你现在应该得到一个PHP错误,现在说“致命错误;头已发送”或类似的东西。如果服务器没有在你的代码的第一行得到指令session_start();

$_SESSION变量不会提供给你