PHP图像上传和唯一文件名分配

PHP图像上传和唯一文件名分配,php,sql,image,upload,uniqueidentifier,Php,Sql,Image,Upload,Uniqueidentifier,先谢谢你。我已经检查过类似的问题,但它们没有帮助,因为工作流程设置不同。 尝试开始工作: 1.用户通过表单字段上传图像 2.(脚本1)在另一个页面上,脚本指定唯一名称(脚本2),将图像文件保存到服务器,并将图像URL上载到SQL。转到脚本末尾的新页 问题是我没有收到错误,脚本运行,新页面打开,但服务器上没有保存任何文件,SQL表中也没有插入任何数据(输入日期会添加,但不会添加图像URL)。我的PHP.ini指令远远超过了我测试过的图像的大小。文件夹位置为chamode 0777。我发布整个脚本

先谢谢你。我已经检查过类似的问题,但它们没有帮助,因为工作流程设置不同。 尝试开始工作: 1.用户通过表单字段上传图像
2.(脚本1)在另一个页面上,脚本指定唯一名称(脚本2),将图像文件保存到服务器,并将图像URL上载到SQL。转到脚本末尾的新页

问题是我没有收到错误,脚本运行,新页面打开,但服务器上没有保存任何文件,SQL表中也没有插入任何数据(输入日期会添加,但不会添加图像URL)。我的PHP.ini指令远远超过了我测试过的图像的大小。文件夹位置为chamode 0777。我发布整个脚本是因为如果出现错误,很难看出问题所在

图像处理

  <?php
  require_once 'unique_gen.php';
      $page_path = $_POST['page_path'];
      $imgloc = "/avatars/";
  //up one directory level
      $store_loc = "..".$imgloc;
      $link_loc = "http://www.webapge.com".$imgloc;
  //Upload and characterize image file 
    if(isset($_FILES['image'])){
  //File 
      $upload['image'] = $_FILES['image'];
  //Verify 
          if ($upload['image']["error"] > 0){
            die ("File Upload Error: " . $upload['image']["error"]);
          }else{
  //Upload 
            $img_ext = end(explode('.', $upload['image']['name']));
  //Unique code generator
            $image_name = implode('.', array(unique_generator(),$img_ext));
              while(file_exists($store_loc.$image_name)){
                $image_name = implode('.', array(unique_generator(),$img_ext));
               }
          $image_name = $upload['image']['name'];
          //Move file to another location
          move_uploaded_file($upload['image']["tmp_name"],$store_loc.$image_name) or exit("<br>Error, IMAGE file not moved!");
          //Save location as link
          $link_to_img = $link_loc.$image_name;
          }
    }else{
      $image_name = "";
    }

  //connect to db
  $con=mysqli_connect("localhost","usernm","pssword","dbName");

  // Check connection
  if (mysqli_connect_errno())
    {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

  //Insert to SQL
  $sql="INSERT INTO comments (avatar, entry_date)
  VALUES
  ('$_POST[link_to_image]', now())";

  //verify insert
  if (!mysqli_query($con,$sql))
    {
    die('Error: ' . mysqli_error($con));
    }
  //direct to new page using variable
  header('Location: http://www.weBsite.com/' . $page_path);
  //close session
  mysqli_close($con);     
  ?> 

试着把它放在脚本的顶部:

<?php
    error_reporting(E_ALL);
    ini_set('display_errors','1');
?>

下面是:

<?php
    print_r(array_keys(get_defined_vars()));
    print_r(array_values(get_defined_vars()));
?>


这很有帮助,现在尝试找出“132”的值是如何被推送到SQL中的,但它仍然没有显示在数据库中。我想这将有助于我缩短我的问题和转发。[insert_id]=>[server_info]=>[server_version]=>[stat]=>[sqlstate]=>[protocol_version]=>[thread_id]=>[warning_count]=>)[10]=>插入评论(姓名、电子邮件、评论、故事id、头像、输入日期)值('jgfhffgjhffg'、'fghfghfgjfgfgjfgj'、'132'、'',now())@buzrw我编辑了上面的答案。请注意,“显示错误”必须设置为“1”而不是“0”“1”将显示错误,“0”将隐藏错误。另外,请确保在所有要调试的文件中都包含这些块。此外,(这是非常重要的)如果你有一个网站,并决定在开发过程中使用它们,这是很好的,但你必须评论出来或删除他们一旦你的网站上线。否则,当出现错误时,查看器将看到每个错误的输出消息。本质上强调站点安全漏洞的路线图。在桶中向恶意用户钓鱼。
<?php
    print_r(array_keys(get_defined_vars()));
    print_r(array_values(get_defined_vars()));
?>