2013-10-21 68 views
1

我有兩個腳本做幾乎相同的事情,但其中一個腳本不工作。我無法確定問題出在哪裏。兩個腳本都有幾乎相同的代碼,但「更新消息」腳本不起作用。我沒有得到任何PHP錯誤,但數據庫沒有更新。我不明白爲什麼這些PHP腳本中的一個不工作

刪除腳本(工作):

<?php 
function deleterow() 
{ 
$con=mysqli_connect("localhost","root","root","TP1AlexandreBouletCouture"); 
if (mysqli_connect_errno()) 
{ 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

$delete_id = ($_GET["delete_id"]); 
$sql="DELETE FROM `table1` WHERE `table1`.`id` = '$delete_id'"; 


if (!mysqli_query($con,$sql)) 
{ 
die('Error: ' . mysqli_error($con)); 
} 
echo '<p>Message supprimé</p>'; 


mysqli_close($con); 
} 
if(isset($_GET['delete_id'])) 
{ 
deleterow($_GET['delete_id']); 
} 
?> 

<form action="history.php" method="get"> 
<input type="submit" value="Supprimer"> 
<input type="hidden" name="delete_id" value='.$row['id'].'> 
</form> 

更新消息腳本(不工作):

<?php 
function updatemyinfos() 
{ 
$con=mysqli_connect("localhost","root","root","TP1AlexandreBouletCouture"); 
if (mysqli_connect_errno()) 
{ 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

$update_id = ($_GET["update_id"]); 
$new_message = ($_GET["updatemessage"]); 
$sql="UPDATE `table1` SET `message` = '$new_message' WHERE `table1`.`id` ='$update_id"; 


if (!mysqli_query($con,$sql)) 
{ 
die('Error: ' . mysqli_error($con)); 
} 
echo '<p>Message modifié</p>'; 


mysqli_close($con); 
} 
if(isset($GET['updatemessage'])) 
{ 
updatemyinfos($GET['updatemessage']); 
} 
?> 


<form action="history.php" method="get"> 
<textarea style="resize:none"cols="35"rows="3"name="updatemessage">'.$row['message'].'</textarea>   
<input type="submit" value="Modifier"> 
<input type="hidden" name="update_id" value='.$row['id'].'> 
</form> 
+0

您很容易受到[SQL注入攻擊](http://bobby-tables.com)的影響。 –

+0

您應該閱讀以下內容:[如何防止SQL注入PHP?](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) – kunal

+0

'$ GET '!='$ _GET',但這是你的問題最少的問題:谷歌的SQL注入和如何防止它,並從不使用GET請求來修改數據(預取瀏覽器可以預取所有你的DELETE鏈接,讓你的數據庫爲空)。 – Wrikken

回答

4

$update_id後失蹤的報價。

'$new_message' WHERE `table1`.`id` ='$update_id 

但是您應該使用PDO,http://php.net/manual/en/book.pdo.php。 mysql的擴展名從php 5.5.0

+0

非常感謝,我不知道我沒有看到..我一直試圖修復它像2小時! – abouletcouture

+0

不客氣。 –

0

中被棄用,除了Cristian的回答之外,你的php變量將不會被解析。您需要將它們包裝在php標籤中:

<input type="hidden" name="update_id" value="<?php echo $row['id']; ?>"> 
+0

我將添加PHP標記,但現在沒有它。 – abouletcouture

相關問題