我正在使用基本注册表单,如果用户按下提交按钮,我想将输入值存储到会话中,并且还将相同的用户数据保留到输入字段中。使用以下代码,我可以临时存储和检索,但只有当我按两次提交按钮时。 我的基本要求是 - 我想在按“提交”后保留用户数据。 - 我也想保留收音机,复选框值。 - 即使我们刷新页面,也可以保留输入值。
代码如下,请就我的问题提出一些建议
<!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 :(得分: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();
变量将无法使用