我有一个用户表单,用户可以在其中输入数据。在用户输入数据后,我应该在提交数据库之前显示它以进行确认。 我写了一段代码。如果我显示用户确认的数据,则确认后不会存储。如果我直接提交到数据库,它将被存储。
请查看我的代码并帮助我在哪里做错了。
这是我的表格
<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 :(得分: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 "
";
?>