2013-12-11 65 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變量不會提供給你