2011-08-24 97 views
1

我使用post方法从HTML表单获取值,并通过mysql INSERT命令(在PHP中完成)将它们存储在我的数据库中。将值插入表单域--PHP

是这样的:

$value = $_POST['name']; 
$value1 = $_POST['age']; 
$sql = "INSERT INTO table(name,age) VALUES('$value','$value1')" ; 

现在我想做的事就是我想给像同一个PHP文件的链接:作为中提到

echo '<A HREF="http://xxx.com/rascal.php/">To update just entered info click on me</a>'; 

现在rascal.php上面的链接也包含相同的表单字段(名称和年龄)。

通过上面的INSERT命令存储在数据库中的值应该从数据库中提取并放置在相应的表单字段区域(名称和年龄应该以它们各自的rascal.php形式存储)。

我怎样才能做到这一点?

+6

你可能想要阅读SQL注入攻击之前,你发送此代码生活... –

+0

http://php.net/mysql_real_escape_string – Jasper

+1

okk ..我将mysql真正的转义字符串到我提取的值,但这不是我的问题 –

回答

2

这就是:

<?php 

if(isset($_GET['name']) AND isset($_GET['age'])){ 
$name=$_GET['name']; 
$age=$_GET['age']; 
} 
else{ 
if(!empty($_POST['name']) AND !empty($_POST['age'])){ 

$value=mysql_real_escape_string($_POST['name']); 
$value1=mysql_real_escape_string($_POST['age']); 
$sql = "INSERT INTO table(name,age) VALUES('$value','$value1')" ; 
mysql_query($sql); 

echo '<A HREF="http://xxx.com/rascal.php?name='.$value.'&age='.$age.'">To update just entered info click on me</A>'; 
} 
} 

?> 

<form method="POST"> 
<input name="name" value="<?php print $name;?>"/> 
<input name="age" value="<?php print $age;?>"/> 
</form> 

如果你改变了“表”到你的表名这应该工作。你应该很高兴,因为我为你写了整个代码。请显示它。

进一步的建议:确保通过mysql_real_escape_string()函数传递所有输入变量来保存代码。在你的数据库表中添加一个id字段(唯一键,self incrament),这样你就可以根据他们的id而不是其他字段来选择记录(我提供的代码只有在你没有更多的同名记录时才有效)。

有一些很棒的php教程here

0

鲍比杰克对此的危险是完全正确的,但我会尽力回答你的问题。

为什么不在触摸数据库时不这样做?你可以修改链接到rascal.php像这样:

echo '<A HREF="http://xxx.com/rascal.php?name=' . $value1 . '&age=' . $value2 .' /">To update just entered info click on me</a>'; 

然后使用$ _REQUEST [“名”]来获得rascal.php信息。这样,你可以放心地继续使用相同的值。

另一种方式可能是使用mysql LAST_INSERT_ID并以这种方式获取信息,虽然它不是100%可靠的,但您也可以使用该ID作为查询来填充表单。

编辑:您可以使用LAST_INSERT_ID并将该ID放在rascal.php的链接中,或者将其用于rascal.php本身以查询您需要的信息。