2011-03-11 65 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

相关问题