在提交到数据库之前显示用户在表单中输入的数据

时间:2011-03-11 11:23:26

标签: php

我有一个用户表单,用户可以在其中输入数据。在用户输入数据后,我应该在提交数据库之前显示它以进行确认。 我写了一段代码。如果我显示用户确认的数据,则确认后不会存储。如果我直接提交到数据库,它将被存储。

请查看我的代码并帮助我在哪里做错了。

这是我的表格

<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(); 
}

?>

3 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

$ _POST中的值仅保留下一个请求,因此要将这些值发送到另一个页面,您有两种方式。
1.将提交的数据放入隐藏字段,点击“确认”后再次发送 2.在会话中保存数据并在需要时将其带走。

答案 2 :(得分:1)

您已在首页上创建。但我认为你还没有在user_confirm.php上创建它。

在user_confirm.php上传递隐藏格式的所有元素 例如

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