php - 上传将 PHP 变量读取为 null

标签 php html mysql

我在从 mysql 数据库加载图片时遇到问题。该目录是随机生成的并很好地存储在数据库中。当页面刷新时,img 返回一个损坏的链接,回显“未设置”,并且检查元素告诉我 $default_pic 未定义。我不明白这里发生了什么有人可以帮忙吗?

<?php
error_reporting(E_ALL); ini_set('display_errors', 1);
$listingid = $_SESSION['edit_listing'];
if(isset($_FILES['listingpic'])){
    if($_FILES['listingpic']['type']=="image/jpeg"||$_FILES['listingpic']['type']=="image/png"||$_FILES['listingpic']['type']=="image/gif"){
        if($_FILES['listingpic']['size']<1048576){
            $chars = "abcdefghijklmanopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
            $rand_dir_name = substr (str_shuffle($chars), 0, 15);
                                    mkdir("userdata/listingpics/$rand_dir_name/") or die("directory error");
            if(file_exists("userdata/listingpics/$rand_dir_name/".$_FILES['listingpic']['name'])){
                echo "File already exists.";
            }
            else{
                move_uploaded_file($_FILES['listingpic']['tmp_name'], "userdata/listingpics/$rand_dir_name/".$_FILES['listingpic']['name']) or die("Failed to move file.");
                $listing_pic_name = $_FILES['listingpic']['name'];
                $listing_pic_query = mysql_query("UPDATE properties SET default_pic='$rand_dir_name/$listing_pic_name' WHERE id='$listingid'"); 
                $check_def = mysql_query("SELECT default_pic FROM properties WHERE id='$listing_id'"); //ADDED
                $def_rows = mysql_fetch_assoc($check_def); //ADDED
                $def_pic = $def_rows['default_pic']; //ADDED
                $default_pic = "userdata/listingpics/".$def_pic;//<-PROBLEM
                header("Location: ../list_property/upload.php?id=".$listingid);
            }
        } else echo "File must not exceed 1MB.";
    } else echo "File must be a JPEG, PNG, or GIF image.";
} else echo "Not set.";

?>
<form action="" method="POST" enctype="multipart/form-data">
    <img src="<?php echo $default_pic; ?>" width="50%" height="50%"/><br>
    <br>
    <input type="file" name="listingpic" />
    <input type="submit" name="uploadpic" value="Upload Picture">
</form>

最佳答案

当您在上传图片后刷新页面时,脚本会刷新,这意味着您的 $default_pic 会被重置,因此它会变空。

如果您不想消除该错误,则应该编写一个查询,从数据库中提取默认图像并填充变量。

关于php - 上传将 PHP 变量读取为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31097461/

相关文章:

javascript - 如何确定哪些图像被按键移动

PHP:当添加 GROUP BY 时出现错误 Trying to get property of non-object

php - MySQL – 我应该使用 last_insert_id() 吗?或者是其他东西?

php - 为什么 `catch (Exception $e)` 不处理这个 `ErrorException` ?

jQuery Mobile 不响应或不触发点击 HTML5 iPhone 应用程序 (Safari)

mysql - 错误号 : 150 "Foreign key constraint is incorrectly formed" Nothing helps

php - log4php如何在日志文件中输出异常信息?

html - 将第二个全长行添加到垫表中的每个垫行

php - PDO 问题 - 在非对象上调用成员函数 query()

php - mysql转换问题。警告:mysqli_fetch_all()期望参数1为mysqli_result,在中给出 bool 值