使用php上传到图像的错误

时间:2016-10-22 17:55:08

标签: php mysql

我正在尝试使用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");
             }





}
?>

1 个答案:

答案 0 :(得分:1)

您遇到的一个问题是您的更新声明。没有&#39; where&#39;语句说明应该更新数据库中的哪条记录,以便此查询更新所有记录。这就是为什么你只有所有数据库行中的最后一个图像。

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

另一点是看看&#39;功能&#39;。您至少运行两次完全相同的代码。每次代码更改都必须完成两次。非常适合函数调用,例如

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