2011-03-11 20 views
0

我有一個用戶表單,用戶輸入他的數據。在用戶輸入數據後,我應該在提交到數據庫之前顯示它以進行確認。 我寫了一段代碼。如果我顯示用於用戶確認的數據,確認後它不會被存儲。如果我直接提交到數據庫它將被存儲。在提交到數據庫之前在表單中顯示用戶輸入的數據

請看我的代碼,並幫助我在哪裏做錯了。

這裏是我的形式

<form name="registration_form" method="post" action="user_confirm.php" 
    onsubmit="return Validate();"> 
    User Name: 
<input type="text" name="username"/><br /><br /> 

    Password: 
    <input type="password" name="password" /><br /><br /> 
    Retype Password: 
    <input type="password" name="password_confirmation"><br /><br /> 
    Name: 
    <input type="text" name="name" /><br /><br /> 
    Phone Number: 
    <input type="text" name="phone_number"><br /> 
    <br /> 
<input type="submit" value="Click here to confirm" /><br /> 

    </form> 

,這裏是我的user_confirm.php

<?php 
$username= $_POST['username']; 
$name = $_POST['name']; 
$phone_numbe = $_POST['phone_numbe']; 

echo $username "<br>"; 
echo $name "<br>"; 
echo $phone_number " <br>"; 
?> 

<form action="register2_db.php" method="post"> 
<input type="hidden" name="redirect_values" value="true"> 
<input type="submit" name="confirm" value="Confirm Details"> 
<input type="button" name="return" value="Return to data" onClick="javascript: window.history.back(-1)";> 
</form> 

爲什麼這個值是沒有得到確認後,存儲在數據庫中?

這裏是我的register2_db.php

<? 

$host="localhost"; // Host name 
$username="fissioni"; // Mysql username 
$password="password("; // Mysql password 
$db_name="fissioni_test"; // Database name 
$tbl_name="members"; // Table name 

// Connect to server and select databse. 
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB"); 

$query = 'insert into members (username,password,name,phone_number) 
        values 
        (
        "' . $_POST['username'] . '", 
        "' . md5($_POST['password']) . '", 
        "' . $_POST['name'] . '", 
        "' . $_POST['phone_number'] . '", 
        )'; 

$result = mysql_query($query); 

if($result){ 
    echo '<h1>Thank you</h1> <br> Go back to the main page <a href="index.html");'; 
}else{ 
    echo "ERROR: ".mysql_error(); 
} 

?> 
+0

你在哪裏存儲數據庫中的東西? – 2011-03-11 11:26:01

+0

他們爲什麼要這樣?哪裏是存儲值的數據庫的代碼? – heximal 2011-03-11 11:26:24

+0

你將什麼文件插入到數據庫中?你能告訴我們表單html和插入數據庫代碼嗎? – Belinda 2011-03-11 11:27:02

回答

1

值在$彥博只逗留了一個請求,所以這些值發送到另一個頁面,您有2種方式。
1.將提交的數據放入隱藏字段中,點擊「確認」後會再次發送。
2.將數據保存在會話中並在需要時進行採集。

+0

嘿,它的工作!感謝大家。非常感謝你! – mythri 2011-03-11 12:08:51

1

您已在第一頁上創建。但我想你還沒有在user_confirm.php上創建它。

通行證上user_confirm.php e.g

<form action='final.php' method = 'POST'> 
<input type = 'hidden' name = 'username' value='<?php echo $username;?>' /> 
.... 
</form> 
<?php 
echo $username " 
"; echo $name " 
"; echo $phone_number " 
"; 
?> 
+0

ohhhh好..是的,我沒有這樣做。將現在嘗試, – mythri 2011-03-11 11:46:53

2

這隱藏格式的所有元素,因爲沒有您的確認值是在窗體本身。你只是發送一個空的表單到你的PHP文件。修改您的確認表單,如下所示,將這些值包含在隱藏文本字段中將會爲您解決。

<form action="register2_db.php" method="post"> 
<input type="hidden" name="name" value="<?php echo $name?>"> 
<input type="hidden" name="password" value="<?php echo $password?>"> 
<input type="hidden" name="username" value="<?php echo $username?>"> 
<input type="hidden" name="phone_number" value="<?php echo $phone_number?>"> 

<input type="hidden" name="redirect_values" value="true"> 
<input type="submit" name="confirm" value="Confirm Details"> 
<input type="button" name="return" value="Return to data" onClick="javascript: window.history.back(-1)";> 
</form> 
+0

'htmlspecialchars'。 – Thai 2011-03-11 11:50:39

+0

@Thai yup,你是對的OP應該這樣做:) – JohnP 2011-03-11 11:56:24

+0

在你的代碼中,'value =「<?php echo htmlspecialchars($ name);?>」'。每當你迴應HTML時,你都應該逃脫。 – Thai 2011-03-11 12:28:19

相關問題