2012-07-09 483 views
0

請,如果你能幫助我,我與PHP_SELF編碼的問題,這是我的代碼: 這是PHP代碼PHP_SELF問題表單提交

<?php 
if (isset($_POST['submit'])) 
{ 
$id=$_REQUEST['id']; 
$notes_en=$_REQUEST['notes_en']; 

$notes_ru=$_REQUEST['notes_ru']; 


$sql="UPDATE hostess SET notes_en='$notes_en',notes_ru='$notes_ru' WHERE id='$id'"; 
$result=mysql_query($sql); 
if($result){ 
echo "<div id='edittxt'>successfully updated"; 
echo "<BR>"; 
echo '<td ><a href="index.php">View Results</a></div>'; 
} 

else { 
die('error'.mysql_error()); 
}} 


?> 

This here is the form code from which i ake the information 
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
<label>Notes</label></br><div id="note"><h1><textarea value="<?php echo $star['notes_en'];?>"><?php echo $star['notes_en'];?></textarea></h1></div></br> 

<input name="id" type="hidden" id="id" value="<?php echo $star['id'];?>"> 

<input type="submit" value="submit" name="submit"></form>" 

如果可能的話,請檢查一下,因爲我一直試圖修改它,我沒有得到任何結果,它不會給我錯誤,但它也不會更新數據庫

+4

你去使用此代碼的任何進一步之前,閱讀了有關[SQL注入攻擊(http://bobby-tables.com) - 你的代碼是敞開的,並只是乞求讓你的服務器pwn3d。然後在查詢調用中添加一些錯誤處理:'... mysql_query($ sql)或者die(msyql_error())'。永遠不要假設查詢成功。 – 2012-07-09 15:14:50

+0

嘿馬克,感謝您的建議,但我需要解決它... – TMA 2012-07-09 15:15:55

+1

如果更真實的問題會導致您的服務器被破壞,當您將代碼放到公共面向時,解決「真正」問題毫無意義現場。贏得這場戰鬥,輸掉戰爭...... – 2012-07-09 15:17:10

回答

0

您的字段上沒有name屬性。另外,不需要一個值屬性。

試試這個:

<textarea name="notes_en"><?php echo $star['notes_en'];?></textarea> 

而且,我絕對推薦以下馬克·B的意見和保護自己免受SQL注入攻擊。看看這個線程:

How can I prevent SQL injection in PHP?

+0

我試過了,它仍然沒有做任何事... – TMA 2012-07-09 15:25:15

+0

埃德謝謝,我試了一下,問題是它顯示結果後,我打了兩次提交.. – TMA 2012-07-09 15:29:03