1

我有一个上传图片的代码。上传图片后,用户可以对其进行裁剪。然后,使用 调用图片$new_name。我唯一的问题是,在$new_name,$_GET['MomentEvent']永远不会出现在图片名称中。但是当我回显它时,它会正常显示。那么,我怎样才能让它也出现$new_name呢?

有关信息,MomentEvent请参阅创建的每个新页面的唯一键。所以当用户上传图片时,它只会在页面上显示该图片MomentEvent

编辑:看起来问题来自这一行:echo $new_name."?".time();,因为当我尝试只是 echo$_GET['MomentEvent']时,什么也没有发生。

编辑 2:看起来问题来自if(isset($_GET['t']) and $_GET['t'] == "ajax"),因为最后一个回声,它在外面,并且所有工作,但是在里面的回声,没有任何工作。但是我仍然不知道出了什么问题...

<?php
include('db.php');
session_start();
     $session_id=$_SESSION['id']; // Or Session ID
         $actual_image_name = time().substr($txt, 5).".".$ext;
         $t_width = 450; // Maximum thumbnail width
         $t_height = 150; // Maximum thumbnail height
              $new_name = "$actual_image_name".$_GET['MomentEvent'].".jpg"; // Thumbnail image name
              $path = "images/";

         if(isset($_GET['t']) and $_GET['t'] == "ajax")
         {

         extract($_GET);
             $ratio = ($t_width/$w); 
             $nw = ceil($w * $ratio);
             $nh = ceil($h * $ratio);
             $nimg = imagecreatetruecolor($nw,$nh);
             $im_src = imagecreatefromjpeg($path.$img);
             imagecopyresampled($nimg,$im_src,0,0,$x1,$y1,$nw,$nh,$w,$h);
             imagejpeg($nimg,$path.$new_name,90);
         mysql_query("UPDATE users_event SET image_small='$new_name' WHERE MomentEvent='".$_GET['MomentEvent']."'");
         echo $new_name."?".time();
         exit;
         }
     echo $new_name;
 ?>
4

1 回答 1

0

不要使用提取物。通常使用它是不好的做法,但尤其是在 _get 变量上...它会使您面临 DOS 攻击,在这种攻击中,有人可以用数百个不需要的变量淹没您的查询字符串。

http://php.net/manual/en/function.extract.php

只需单独引用关联数组项。

于 2013-09-27T14:16:50.277 回答