2016-10-22 2 views
-2

PHP로 두 개의 이미지를 업로드하려고합니다. 데이터베이스에 추가하십시오. 어떻게 든 하나의 이미지 만 업로드하고 데이터베이스의 레코드는 항상 같은 값을 갖습니다. PHP로 이미지를 업로드 할 때 오류가 발생했습니다.

내가 당신이 가지고있는 문제의

<?php 
include "../connect.php"; 

$name1 = $_FILES['pic1']['name']; 
$size1 = $_FILES['pic1']['size']; 

$name2 = $_FILES['pic2']['name']; 
$size3 = $_FILES['pic2']['size']; 
if(isset($_POST['name'])) 
{ 

    $extension1 = pathinfo($name1,PATHINFO_EXTENSION); 
    $array = array('png','gif','jpeg','jpg'); 
     if (!in_array($extension1,$array)){ 
      echo "<div class='faild'>".$array[0]."-".$array[1]."-".$array[2]."-".$array[3]." --> (".$name.")</div>"; 
     }else if ($size>10000000){ 
      echo "<div class='faild'>Size</div>"; 
     }else { 
      $new_image1 = time().'.'.$extension1; 
      $file1 = "images/upload"; 
      $pic1 = "$file1/".$new_image1; 
      move_uploaded_file($_FILES["pic1"]["tmp_name"],"../".$pic1.""); 
          $insert = mysql_query("update temp set pic='$pic1' ") or die("error ins");  
     } 

    $extension2 = pathinfo($name2,PATHINFO_EXTENSION); 
    $array = array('png','gif','jpeg','jpg'); 
     if (!in_array($extension2,$array)){ 
      echo "<div class='faild'>".$array[0]."-".$array[1]."-".$array[2]."-".$array[3]." --> (".$name.")</div>"; 
     }else if ($size>10000000){ 
      echo "<div class='faild'>Size</div>"; 
     }else { 
      $new_image2 = time().'.'.$extension2; 
      $file2 = "images/upload"; 
      $pic2 = "$file2/".$new_image2; 
      move_uploaded_file($_FILES["pic2"]["tmp_name"],"../".$pic2.""); 

         $insert = mysql_query("update temp set passport='$pic2'") or die("error ins"); 
      } 





} 
?> 
+0

A : WHERE 절이없고 전체 db를 업데이트하고 있기 때문입니다. –

+0

또한 답을 수락하는 습관이 필요합니다. 사람들은 당신의 다른 질문이 아직 풀리지 않는다고 생각합니다. 이것에 행운을 빈다, 나는 당신에게 무엇을해야하는지에 관해 말했다. –

답변

1

하나는 당신의 update 문 함께 사용하는 코드입니다. 이 쿼리가 업데이트되도록 데이터베이스의 어떤 레코드를 업데이트해야 하는지를 나타내는 'where'문은 없습니다. 그래서 모든 데이터베이스 행에 마지막 이미지 만있는 것입니다.

게다가, 당신의 코드는 보안 관점에서별로 좋지 않습니다. MySQL은 PHP에서 삭제되고 PHP에서 제거되었으므로 데이터베이스 연결 및 쿼리에 대해서는 mysqli 또는 pdo를 살펴보아야합니다. 또한 SQL 주입 및 데이터 유효성 검사를 살펴보십시오. 아주 기본적인 확장과 크기 검증 외에도 물건을 저장하는 데는 아무 것도 없습니다. 모든 사용자 입력을 이스케이프하고 유효성을 검사하십시오.

또 다른 요점은 '기능'을 살펴 보는 것입니다. 거의 동일한 코드를 두 번 이상 실행하고 있습니다. 모든 코드 변경은 두 번 수행해야합니다. 함수 호출에 이상적입니다.

function storeImage($image){ 
    // write the uploading and storing PHP here 
} 
+0

데이터베이스에있는 레코드가 하나뿐이기 때문에 업데이트하고 싶습니다. 더 많은 정보를 얻고 문제의 원인을 알려주십시오. –

+1

문제가 무엇인지 말씀 드렸습니다. 마찬가지로 - 프레드 ii - 귀하의 질문에 대한 의견에 않았다. 업데이트 함수에 where 문 추가 –

관련 문제