我已经在互联网上搜索了我的答案,但我找不到有用的答案。我有一个名为“post.php'使用表单我可以添加图像并将其提交到数据库。
最大的问题是,当我访问mysite.com/post.php时,会在数据库中自动创建一个新的空行,我显然不想要。我只想在单击提交按钮后更新数据库我的代码:
INSERT的一部分:
<?php
// POST.PHP POSTING NEW CONTENT
include 'config.php';
// values from form
$id=$_POST['id'];
$title=$_POST['title'];
$pic=$_POST['pic'];
$youtube=$_POST['youtube'];
$cat=$_POST['cat'];
// insert data to mysql
$sql = "INSERT INTO post(id, title, pic, youtube, cat)VALUES('$id', '$title', '$pic', '$youtube', '$cat')";
$result=mysql_query($sql);
// succes added
if(!$result){
echo "Something went wrong!";
}
else {
echo "Yeah, buddy! Your content is added.";
}
// end of post script ^^
?>
//插入结束
//POST IMAGE PAGE
if(isset($_GET['pic'])) {
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
title: <input name="title" type="text" id="title"><br />
Add url of image;<br />
<input type="text" name="pic" id="pic"/><br />
<?php
echo '
Category game:
<select name="cat"> ';
$query2 = mysql_query("SELECT * FROM `category`");
while($row=mysql_fetch_array($query2)){
echo '
<option value="'.$row["nameID"].'">'.$row["name"].'</option> ';
}
?>
</select>
<input type="submit" onclick="this.disabled = true" name="submit" value="submit">
</form>
<?php
// end script of posting picture
}
?>
答案 0 :(得分:1)
您需要在插入数据库的部分周围添加一些条件代码,检查是否已收到任何值(if($myvar){ // do stuff }
)。
添加其余的代码,特别是将数据添加到数据库的部分,因为这会导致问题,而不是您发布的代码。
答案 1 :(得分:0)
检查是否已在处理数据库输入的文件上设置了帖子。
if(isset($_POST['pic'])){
//do something
}
else{ // handle the exeption}
此外,您不应再使用mysql_ *函数。他们是不安全的,并且不赞成使用PHP 5.5
答案 2 :(得分:0)
您需要将整个数据库插入代码块包装在if语句中。这样,在表单提交并且$ _POST ['submit']具有值之前,它不会执行:
include 'config.php';
if (isset($_POST['submit'])){
// values from form
$id=$_POST['id'];
// etc... code stays the same down to:
echo "Yeah, buddy! Your content is added.";
}
}//end if (don't forget to add this last bracket)
此外,您应该切换到mysqli或PDO,然后使用parameterized queries。否则,您的站点可以通过SQL注入进行各种各样的粗暴攻击。切换并不困难,非常非常重要。