2011-08-24 79 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本身以查詢您需要的信息。