2016-10-22 83 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

答:这是因为你没有'WHERE'子句,正在更新你的整个数据库。 –

+0

你还需要养成接受答案的习惯。人们认为你的其他问题仍未解决。祝你好运,我告诉过你该怎么做。 –

回答

1

你们中的一个有问题的是与你的更新语句。没有'where'语句表示数据库中的哪个记录应该更新,以便此查询将它们全部更新。这就是为什么你只有所有数据库行中的最后一张图像。

除此之外,从安全角度来看,您的代码并不是很好。您应该查看mysqli或pdo来查看数据库连接和查询,因为MySQL已被弃用并从PHP中删除。还要看看SQL注入和数据验证。除了一些非常基本的扩展和大小验证之外,没有任何东西可以保存事情。尝试转义并验证所有用户输入。

另一点是看看'功能'。你至少运行两次完全相同的代码。每次代码更改都必须进行两次。完美的函数调用,如

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

它只是一个数据库记录,我只想更新它,所以请你能帮助我更多,并告诉我有什么问题 –

+1

我告诉过你问题是什么。就像弗雷德二世在你的问题的评论中所做的一样。将where语句添加到您的更新函数中 –