Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是否使用会话在网页上显示存储的数据库图像?_Php_Html_Forms_File Upload_Mysqli - Fatal编程技术网

Php 是否使用会话在网页上显示存储的数据库图像?

Php 是否使用会话在网页上显示存储的数据库图像?,php,html,forms,file-upload,mysqli,Php,Html,Forms,File Upload,Mysqli,嗨,我正在尝试使用session将图像存储到数据库中,它已成功完成,但问题是,当我上传页面并单击“保存”按钮时,它无法显示在我的网页上再次显示以前的pic,但新pic已成功保存到数据库中,我想将pic存储在我的文件夹中。编码如下 Html页面编码如下所示 <form class="form" action="accountsetting.php" method="post" enctype="multipart/form

嗨,我正在尝试使用session将图像存储到数据库中,它已成功完成,但问题是,当我上传页面并单击“保存”按钮时,它无法显示在我的网页上再次显示以前的pic,但新pic已成功保存到数据库中,我想将pic存储在我的文件夹中。编码如下

Html页面编码如下所示

<form class="form" action="accountsetting.php" method="post" enctype="multipart/form-data">
    <div class="row">
        <div class="col-12 col-sm-auto mb-3">
            <div class="mx-auto" style="width: 140px;">
                <div class="rounded-circle avatar avatar-xl mb-3">
                    <img class="rounded-circle" id="preview_avatar" name="image" src="https://imgbob.com/path/cdn/avatars /zxMvnv1q52hFyNeEGKz0UuPU5fkth5YadkXe3m26S4HODj09An.png"  
width="100" height="100">
                </div>
            </div>
        </div>
        <div class="col d-flex flex-column flex-sm-row justify-content-between mb-3">
            <div class="text-center text-sm-left mb-2 mb-sm-0">
                <h4 class="pt-sm-2 pb-1 mb-0 text-nowrap"><?php echo $_SESSION['user']['fullname']; ?></h4>
                                                                                            <p class="mb-0"><?php echo $_SESSION['user']['username']; ?></p>
                <div class="form-group mb-2 pt-2">
                    <input class='input' type='hidden' name='id' value="<?php echo $_SESSION['user']['id']; ?>" />
                    <input id="avatar" type="file" name="avatar" hidden="" accept="image/png, image/jpeg, image/jpg">
                    <button id="uploadBtn" type="button" class="btn btn-primary btn-file " >
                        <i class="fa fa-camera" aria-hidden="true"></i> &nbsp Upload Avatar
                    </button>
                </div>
                <div class="row">
                    <div class="col d-flex justify-content-end pr-5">
                        <button class="btn btn-primary " type="submit" name="profile">Save Changes</button>
                    </div>
                </div>
            </div>
        </div>
    </div>
</form>
$id = "";
if(isset($_POST['profile'])) {
    $id = $_SESSION['user']['id'];
    $file=addslashes(file_get_contents($_FILES["avatar"]["tmp_name"]));
    $query = "UPDATE users SET avatar = '$file' WHERE id = '$id'";
    $query_run = mysqli_query($db,$query);

    if($query_run) {
        echo '<script type = "text/javascript"> alert("image profile upload")</script>';
    } else {
        echo '<script type = "text/javascript"> alert("image profile not upload")</script>';
    }
}


好的代码缩进将帮助我们阅读代码,更重要的是,它将帮助您为自己的利益调试代码。您可能会被要求在几周/几个月内修改此代码,最后您会感谢我。如果您将
addslashes()
添加到从磁盘读取的二进制文件中,您将无疑损坏该文件在尝试将图像文件存储到数据库之前,将图像文件添加到
base64\u encode()
是正常的。图像文件是复杂的文件,通常包含看起来像文件结束标记的数据,该标记不在脚本打开的文件的末尾。甚至您也应该始终在
MYSQLI_uquot>或
PDO
API中使用,而不是将用户提供的值连接到查询中。永远不要相信任何用户输入!亲爱的,你能帮我解决这个问题吗
<?php
include('../functions.php');
if (!isLoggedIn()) {
    $_SESSION['msg'] = "You must log in first";
    header("location: /uploadimg/loginform.php");
}

if (isset($_GET['logout'])) {
    session_destroy();
    unset($_SESSION['user']);
    header("location: /uploadimg/loginform.php");
}
if(isset($_SESSION['success']))
{
    echo $_SESSION['success'];
    unset($_SESSION['success']);
}
if(isset($_SESSION['user']['fullname']))
{

}
?>
<?php 
session_start();

function isAdmin()
{
    if (isset($_SESSION['user']) && $_SESSION['user']['user_type'] == 'admin' ) {
        return true;
    }else{
        return false;
    }
}

function isLoggedIn()
{
    if (isset($_SESSION['user'])) {
        return true;
    }else{
        return false;
    }
}