2012-07-09 269 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