2013-11-22 3 views
0

누군가 나를 도울 수 있습니까? 메신저로 이미지를 편집하려면이 코드가 작동하지만 다른 이미지를 선택하면 이전 폴더가 내 폴더에 남아 있습니다.삭제 방법 및 데이터베이스에 자동 입력하는 이유는 무엇입니까?

두 번째 문제는 이미지를 선택하지 않으면 데이터베이스의 이미지 이름이 변경되는 것입니다. 그것의 i는 이미지를 선택하지만 $ 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)'이중 조건이며 아무 것도 지정하지 않습니다. 그것은 $ someVar = isset ($ _GET [ 'act'])이어야합니까? $ _GET [ 'act'] : 0' –

답변

0

업로드하기 전에 또는 php inbuilt 함수를 사용하기 전에 이전 파일의 연결을 해제해야합니다. 두 번째 문제를 들어

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

감사합니다. 두 번째 문제에 대한 답변은 훌륭합니다. 음, 첫 번째 문제에 대해. if (isset ($ nama_fileedit) {'에서'unlink ("filepath/filename");'를 쓰면 unlink 문에 내가 편집하기로 선택했던 오래된 이미지 파일의 이름을 어떻게 알 수 있습니까? – whaku

0

대답하여 질문 :

코드에서

, 변수 $ randomedit = 시간 ('YmdHis'); 문제를 일으키는 중입니다. 현재 시간을 사용하고 있기 때문에 언제든지 동일한 고유 한 이름으로 파일을 찾지 않으므로 파일을 덮어 쓰는 데 아무런 문제가 없습니다. 또한 unlink() 함수를 사용하여 명시 적으로 파일을 삭제하지 않았습니다. 당신의 질문에

응답 : 파일이 업로드되고 있는지 여부를 확인하지 않기 때문에 데이터베이스 변경에

이미지 이름. $ _FILES 배열에 값이 들어 있는지 검사하십시오. 값이 포함 된 경우 새 파일 이름 만 업데이트 쿼리에 보내고 데이터베이스의 파일 이름은 업데이트하지 않습니다.

희망이 도움이 될 것입니다.

관련 문제