2013-11-22 31 views
0

有人可以帮我吗? 即时通讯编辑文章中的图像,这段代码的作品,但如果我选择另一个图像,旧的仍然在我的文件夹。如何删除和为什么自动输入数据库?

第二个问题是如果我不选择任何图像,数据库中的图像名称发生更改。它像我选择图像,但只有$ 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>";}} 

抱歉,如果说是错误的,即时通讯的英语不是很好!

+0

警告:您正在使用已弃用的mysql_ *库 – user4035

+0

这不会解决您的问题,但出于安全目的,您应该考虑使用预准备语句和参数化查询。 – bh42

+0

'if(isset($ _GET ['act'])?$ _GET ['act']:0)'double condition,并且不分配任何东西。它应该是$ someVar = isset($ _ GET ['act'])? $ _GET ['act']:0' –

回答

0

你需要取消链接旧文件进入上传之前或之后使用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'>"; 
+0

非常感谢,对第二个问题的回答很好,嗯关于第一个问题。如果我把'unlink(“文件路径/文件名”);'下'if(isset($ nama_fileedit){'你给我,我如何给unlink声明知道什么是我选择编辑的旧图像文件的名称? – whaku

0

回答你第一问题:

在代码中,变量$ randomedit = time('YmdHis');正在造成这个问题。因为它使用当前时间,所以在任何时候您都不会找到具有相同唯一名称的文件,因此不会覆盖文件。另外,您还没有使用unlink()函数明确删除文件。

回答你的第二个问题

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

希望这会帮助你。

相关问题