php - 验证图像未检测到

标签 php mysql user-input

我有代码可以从数据库中创建/更新/删除我的数据。

我有数据和横幅图像。如果只设置了数据,我不想更新图像。

因此,我尝试制作一个代码验证器:如果我仅更新数据(而不是图像),则我的图像不会设置为空。

但是我的验证无法检测我是否已填写输入文件...

这是我的代码:

<?php
 include ("config.php");
 $id= $_POST['id'];
 $konten3 = $_POST['konten3'];
 $footer=$_POST['footer'];
 $lokasi_file   = $_FILES['banner']['tmp_name'];
 $nama_file     = $_FILES['banner']['name'];

 if(isset($_FILES['banner'])) {
 $hapus = mysql_query("SELECT * FROM newsletter WHERE id='$id'");
 $r=mysql_fetch_array($hapus);
 $d = 'upload/'.$r['banner'];
 unlink ($d);
 move_uploaded_file($lokasi_file,"upload/".$nama_file);


 }if (empty($lokasi_file)) {
 if ($edit = mysql_query("UPDATE newsletter SET konten3='$konten3', footer='$footer' WHERE id='$id'")){
    header("Location: newsletter.php");
    exit();
}
die ("Terdapat kesalahan : ". mysqli_error($konek));

}
if ($edit = mysql_query("UPDATE newsletter SET banner='$nama_file', konten3='$konten3',footer='$footer' WHERE id='$id'")){
    header("Location: newsletter.php");
    exit();
}
die ("Terdapat kesalahan : ". mysql_error($konek));
?>

如果有人能帮助我,我会很高兴。我正在尝试使用名称横幅更新图像

最佳答案

问题出在您的条件和上次查询中。我认为在上次更新中您不需要更新图像。更改您的代码如下

<?php
 include ("config.php");
 $id= $_POST['id'];
 $konten3 = $_POST['konten3'];
 $footer=$_POST['footer'];
 $lokasi_file   = $_FILES['banner']['tmp_name'];
 $nama_file     = $_FILES['banner']['name'];

 if(isset($_FILES['banner']) && $_FILES['banner']['name'] != "") {
 $hapus = mysql_query("SELECT * FROM newsletter WHERE id='$id'");
 $r=mysql_fetch_array($hapus);
 $d = 'upload/'.$r['banner'];
 unlink ($d);
 move_uploaded_file($lokasi_file,"upload/".$nama_file);


 }
if (!empty($lokasi_file)) { //change here need to check "not empty" instead of "empty"
 if ($edit = mysql_query("UPDATE newsletter SET banner='$nama_file',konten3='$konten3', footer='$footer' WHERE id='$id'")){
    header("Location: newsletter.php");
    exit();
}
die ("Terdapat kesalahan : ". mysqli_error($konek));

}
//Remove banner from below query
if ($edit = mysql_query("UPDATE newsletter SET , konten3='$konten3',footer='$footer' WHERE id='$id'")){
    header("Location: newsletter.php");
    exit();
}
die ("Terdapat kesalahan : ". mysql_error($konek));
?>

编辑

如果上传了横幅,请按如下方式更改逻辑,然后移动并更新横幅,否则仅更新其他数据

<?php
 include ("config.php");
 $id= $_POST['id'];
 $konten3 = $_POST['konten3'];
 $footer=$_POST['footer'];
 $lokasi_file   = $_FILES['banner']['tmp_name'];
 $nama_file     = $_FILES['banner']['name'];

 if(isset($_FILES['banner']) && $_FILES['banner']['name'] != "") {
 $hapus = mysql_query("SELECT * FROM newsletter WHERE id='$id'");
 $r=mysql_fetch_array($hapus);
 $d = 'upload/'.$r['banner'];
 unlink ($d);
 move_uploaded_file($lokasi_file,"upload/".$nama_file);

 if ($edit = mysql_query("UPDATE newsletter SET banner='$nama_file',konten3='$konten3', footer='$footer' WHERE id='$id'")){
    header("Location: newsletter.php");
    exit();
}
 die ("Terdapat kesalahan : ". mysqli_error($konek));

 }

//Remove banner from below query
if ($edit = mysql_query("UPDATE newsletter SET , konten3='$konten3',footer='$footer' WHERE id='$id'")){
    header("Location: newsletter.php");
    exit();
}
die ("Terdapat kesalahan : ". mysql_error($konek));
?>

关于php - 验证图像未检测到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47469647/

相关文章:

mysql - SQL查询可以做到这一点吗?

javascript - 用于数学输入的良好 HTML5 对象?

javascript - 如何在点击事件上创建可编辑输入

php - 从网页提取的数据/文本不会插入到 mysql 数据库中

php - 如何使用wordpress自定义元素?

MySQL:匹配在两个日期之间有 x 个连续日期可用的记录

php - 每次PHP,MySQL如何检索随机行

mysql - ExpressJS - Sequelize - 列丢失错误

go - 如何在Golang中写入stdin?

java - 输入为负数时如何退出扫描仪?