2014-04-03 146 views
0

程序應該是這樣的:if-else語句錯誤

  • 代碼將檢查是否有可供上傳的任何文件。
  • 如果找到任何文件。它會上傳,文本將保存在數據庫中。
  • 但是,如果找不到文件,它將不會上載,路徑也不會保存,但文本仍會保存在數據庫中。

真正發生:

  • 的文本保存
  • 的映像路徑仍保存!所以在後面的部分檢索圖像會是一個問題。

正如你注意到:

  • 我刪除了avatar_image_pathif這就是我想不被保存圖片的路徑,但它仍然保存。

代碼:

if ($_FILES["file"]["name"] == 0) 
    { 

    $updateQuery = "UPDATE `users`.`info` SET `password` = '$newPass',`contact_number` = '$newConNum',`user_address` = '$newAdd',`email_address` = '$newEmail', WHERE `info`.`username` = '$username' AND `info`.`password` = '$userpass' AND `info`.`firstname` = '$firstName' AND `info`.`lastname` = '$lastName' AND `info`.`admin_level` =$adminLvl AND `info`.`contact_number` = '$ConNum' AND `info`.`user_address` = '$usrAdd' AND `info`.`avatar_image_path` = '$avaImgPth' "; 
    $executeQuery=$con->query($updateQuery); 
    echo "Profile successfully UPDATED!"; 

     } 

else 
    { 
    move_uploaded_file($_FILES["file"]["tmp_name"], "avatar/owner-".$_SESSION['username']."-fname-".$_SESSION['fname']."-l_name-".$_SESSION['lname']."-filename-".$_FILES["file"]["name"]); 
    $updateQuery1 = "UPDATE `users`.`info` SET `password` = '$newPass',`contact_number` = '$newConNum',`user_address` = '$newAdd',`email_address` = '$newEmail',`avatar_image_path` = '$filepath' WHERE `info`.`username` = '$username' AND `info`.`password` = '$userpass' AND `info`.`firstname` = '$firstName' AND `info`.`lastname` = '$lastName' AND `info`.`admin_level` =$adminLvl AND `info`.`contact_number` = '$ConNum' AND `info`.`user_address` = '$usrAdd' AND `info`.`avatar_image_path` = '$avaImgPth' "; 
    $executeQuery1=$con->query($updateQuery1); 

    echo "Profile successfully UPDATED!"; 
    } 
+1

0是一個文件一個陌生的名字。 –

+1

您在if語句中詢問錯誤的情況。 – Termis

+0

對不起。我沒有時間提交這個。我也試過這個'if($ _ FILES ['file'] ['name'] ==「」)'但問題仍然是一樣的。 – user3437929

回答

0

首先你必須保存舊的輪廓圖像中隱藏字段。

<html> 
<input type="hidden" name="old_image" value=<?php echo $row['image'];?>/> 
<input type="file" name="new_image"/> 
</html> 

現在,當您提交然後形式檢查

<?php 
if($_FILES['new_image']['name']!="" && $_POST['old_image']=="") 
{ 
echo "upload process..."; 
} 
else 
{ 
echo "save old image in database."; 
} 
?> 
+1

您能否詳細說明一下?我無法完全理解你的提示。 – user3437929

+0

我認爲你的問題是當用戶更新他/她的個人資料,然後配置文件圖像上傳錯誤,如果他/她沒有上傳或未在數據庫中存儲適當的值,以便使用此腳本。 –