如何删除以及为什么自动输入数据库


How to delete and why auto input to database?

有人能帮我吗?我用图片编辑帖子,这段代码有效,但如果我选择另一张图片,旧的图片仍然在我的文件夹里。

第二个问题是,如果我不选择任何图像,数据库中的图像名称就会更改。这就像我选择图像,但只输入$randomnewedit。

if (isset ($_POST['submitedit'])){
$uploads_dir = '../images';
$randomedit   = time('YmdHis');
$randomnewedit = $randomedit."_";
$tipe_fileedit      = $_FILES['filefotoedit']['type'];
$tmp_fileedit       = $_FILES['filefotoedit']['tmp_name'];
$nama_fileedit      = $_FILES['filefotoedit']['name'];
$new_nama_fileedit  = $randomnewedit.$nama_fileedit;
move_uploaded_file($tmp_fileedit,"$uploads_dir/$new_nama_fileedit");
    $namabankedit=trim($_POST['namabankedit']);
    $cabangedit=trim($_POST['cabangedit']);
    $norekeningedit=trim($_POST['norekeningedit']);
    $namanasabahedit=trim($_POST['namanasabahedit']);
    $kueri = "UPDATE trans SET namabank='" . $namabankedit. "', cabang='" . $cabangedit. "', rekeningbank='" . $norekeningedit. "', namanasabah='" . $namanasabahedit. "', logobank='" . $new_nama_fileedit. "' WHERE idtrans='" . $idedit . "'";
    $hasil = mysql_query($kueri);
    echo "<meta http-equiv='refresh' content='0; url=indexcuko.php?module=rekening'>";
}}}

这是我的编辑表格:

if (isset ($_GET['act']) ? $_GET['act']:0){
if ($_GET['act'] == 'edit') {
$idedit = $_GET['id'];
$resultedit = mysql_query("SELECT * FROM trans WHERE idtrans = $idedit;");
$rowedit = mysql_fetch_assoc($resultedit);
$titlenamabank = $rowedit['namabank'];
$titlecabang = $rowedit['cabang'];
$titlerekeningbank = $rowedit['rekeningbank'];
$titlenamanasabah = $rowedit['namanasabah'];
$titlelogobank = $rowedit['logobank'];
echo"
<h1>Edit Rekening</h1>
<form action='' method='"post'" onreset='"location.href=rekening.php'" name='"form2'"  enctype='multipart/form-data'>
<table class='"tableb'">
    <tr>
    <td width=120 align=center>Nama Bank</td>
    <td align=center>:</td>
    <td width=120 align=center><input class='"inputz'" name='"namabankedit'" id='"namabank'" type='"text'" size='"50'" value='"$titlenamabank'" /></td>
    </tr>
    <tr>
    <td width=120 align=center>Cabang</td>
    <td align=center>:</td>
    <td width=120 align=center><input class='"inputz'" name='"cabangedit'" id='"cabang'" type='"text'" size='"50'" value='"$titlecabang'" /></td>
    </tr>
    <tr>
    <td width=120 align=center>No. Rekening</td>
    <td align=center>:</td>
    <td width=120 align=center><input class='"inputz'" name='"norekeningedit'" id='"norekening'" type='"text'" size='"50'" value='"$titlerekeningbank'" /></td>
    </tr>
    <tr>
    <td width=120 align=center>Atas Nama</td>
    <td align=center>:</td>
    <td width=120 align=center><input class='"inputz'" name='"namanasabahedit'" id='"namanasabah'" type='"text'" size='"50'" value='"$titlenamanasabah'" /></td>
    </tr>
    <tr>
    <td width=120 align=center>Logo Bank</td>
    <td align=center>:</td>
    <td width=120 align=center><input name='"filefotoedit'" id='"filefoto'" type='"file'" value='"$titlelogobank'" /></td>
    </tr>
    <tr>
    <td colspan='"3'"><button class='"buttonz'" name='"submitedit'" type='"submit'" onClick='"return verify()'" value='"save'">Simpan</button></td>
    </tr>
</table>
</form>";}}

对不起,如果说错了,我的英语不是很好!

在上传之前或使用php内置函数之后,您需要取消链接旧文件。

unlink("filepath/filename");

对于第二个问题:你需要检查文件是否存在,基于此,

       $nama_fileedit      = $_FILES['filefotoedit']['name'];

    $new_nama_fileedit  = $randomnewedit.$nama_fileedit;

        $namabankedit=trim($_POST['namabankedit']);
        $cabangedit=trim($_POST['cabangedit']);
        $norekeningedit=trim($_POST['norekeningedit']);
        $namanasabahedit=trim($_POST['namanasabahedit']);
        if(isset($nama_fileedit){
             move_uploaded_file($tmp_fileedit,"$uploads_dir/$new_nama_fileedit");
             $kueri = "UPDATE trans SET namabank='" . $namabankedit. "', cabang='" . $cabangedit. "', rekeningbank='" . $norekeningedit. "', namanasabah='" . $namanasabahedit. "', logobank='" . $new_nama_fileedit. "' WHERE idtrans='" . $idedit . "'";
         }else{
              $kueri = "UPDATE trans SET namabank='" . $namabankedit. "', cabang='" . $cabangedit. "', rekeningbank='" . $norekeningedit. "', namanasabah='" . $namanasabahedit. "'  WHERE idtrans='" . $idedit . "'";
         }
        $hasil = mysql_query($kueri);
        echo "<meta http-equiv='refresh' content='0; url=indexcuko.php?module=rekening'>";

回答第一个问题:

在您的代码中,变量$randomedit=时间('YmdHis');是造成问题的原因。由于它使用当前时间,在任何时候你都找不到具有相同唯一名称的文件,因此不会有重写文件的问题。此外,您还没有使用unlink()函数显式删除文件。

回答第二个问题:

数据库中的图像名称发生更改,因为您没有检查文件是否正在上载。检查$_FILES数组中是否包含任何值。如果它包含值,则只将新文件名发送到更新查询,否则不更新数据库中的文件名。

希望这对你有帮助。