大家好我有这样的代码
include('db.php');
if (isset($_POST['save']) && $_POST['save'] == '') {
if(isset($_POST['misamarti'])){ $misamarti = $_POST['misamarti']; }
if(isset($_POST['teleponi'])) { $teleponi = $_POST['teleponi']; }
if(isset($_POST['posta'])) { $posta = $_POST['posta']; }
if(isset($_POST['paqsi'])) { $paqsi = $_POST['paqsi'];}
$query = "UPDATE contact SET `misamarti` = ".$misamarti.", `teleponi` = ".$teleponi.", `posta` = ".$posta.", `paqsi` = ".$paqsi." WHERE `contact`.`id` =1;";
$result = mysql_query($query);
}
<form method="post" action="" enctype="multipart/form-data">
<input type="hidden" name="about" value="template1" />
<input type="text" value="" name"misamarti" />
<input type="text" value="" name"teleponi" />
<input type="text" value="" name"posta" />
<input type="text" value="" name"paqsi" />
<input type="submit" value="" name="save" />
,结果是
注意:未定义的变量:第18行的C:\ xampp \ htdocs \ Template \ admin_panel \ contact.php中的misamarti
注意:未定义的变量:第18行的C:\ xampp \ htdocs \ Template \ admin_panel \ contact.php中的teleponi
注意:未定义的变量:第18行的C:\ xampp \ htdocs \ Template \ admin_panel \ contact.php中的posta
注意:未定义的变量:第18行的C:\ xampp \ htdocs \ Template \ admin_panel \ contact.php中的paqsi
如果有人知道为什么这个错误请评论。
答案 0 :(得分:0)
即使它们未随表单一起提交,您也在使用这些变量,并使用这些未定义的变量更新数据库中的字段,因此您将破坏以前数据库中的所有数据。
如果不出意外,您至少需要为字段设置默认值,例如:
$misamarti = isset($_POST['misamarti']) ? $_POST['misamarti'] : '';
^^--default empty string
然后意识到你对sql injection attack的开放态度很高。你正准备让你的服务器pwn3d。
答案 1 :(得分:0)
正如您在HTML代码中看到的那样,您的名字写得不好,必须以这种方式编写:name="misamarti"
。你忘记了=
和名字之间的平等(name
)。如果您看到其他属性,例如text
和value
,您会发现它们是相同的,这是设置属性的正确方法。