2011-04-22 24 views
0

你好 我在PHP只是一個隱藏的錯誤


> <form name ="deleteForm" 
> action="CRUD/deleteAct.php" 
> method="POST"><input type="text" 
> value="'.$row['id'].'"/><input 
> type="submit" value="DELETE" /></form> 

這段代碼,當它發佈到deleteAct.php 我們有這樣的代碼來獲得的id值

連接..

mysql_select_db('bena'); 
echo "delete info"; 
$id = $_GET['id']; 
echo "$id"; 
$delete = "DELETE FROM activites WHERE id = $id"; 

$delquy = mysql_query($delete,$connection); 
if($delquy) 
echo " information was deleted!"; 

我在deletAct.php文件中用$ _GET交換了$ _POST,但沒有解決!

+4

可能是在「SQL注入」 ... – Pointy 2011-04-22 12:13:09

回答

0

您的初始表單使用POST方法,因此如果您需要id的值,請查看$ _POST數組。一般來說,無論如何可以很好地淨化價值。它需要一個name屬性,但:

<input type="text" name="id" value="'.$row['id'].'"/> 

//.. 

mysql_select_db('bena'); 
echo "delete info"; 
$id = intval($_POST['id']); 
echo "$id"; 
$delete = "DELETE FROM activites WHERE id = $id"; 

$delquy = mysql_query($delete,$connection); 
if($delquy) 
echo " information was deleted!"; 
1

你輸入提交這麼想的有一個名字

應該

<input type="text" name="id" value="'.$row['id'].'"/> 

另外,爲了防止注射

$delete = "DELETE FROM activites WHERE id = ".mysql_real_escape_string($id).""; 

或使用Prepared Statements

+0

感謝的話題讀了一個好主意,但我有同樣的錯誤後修改! – aida 2011-04-22 12:22:11