Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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中更新图像Src_Php_Mysql_Image - Fatal编程技术网

无法在PHP中更新图像Src

无法在PHP中更新图像Src,php,mysql,image,Php,Mysql,Image,我正在尝试为我的网站创建个人资料图片功能。文件上载和图像显示功能工作正常,但不会将“我的表”中的“配置文件”列更新为图像名称 我的数据库名是intranet,表名是profile。以下是我的源代码: <?php session_start(); $_SESSION['username']; ?> <?php if(isset($_POST['submit'])){ move_uploaded_file($_FILES['file']['

我正在尝试为我的网站创建个人资料图片功能。文件上载和图像显示功能工作正常,但不会将“我的表”中的“配置文件”列更新为图像名称

我的数据库名是intranet,表名是profile。以下是我的源代码:

<?php session_start();
    $_SESSION['username'];
?>

<?php
    if(isset($_POST['submit'])){
            move_uploaded_file($_FILES['file']['tmp_name'],"images/profile/".$_FILES['file']['name']);
            $con = mysqli_connect("localhost","root","","intranet");
            $q = mysqli_query($con,"UPDATE user SET profile = '".$_FILES['file']['name']."' WHERE username = '".$_SESSION['username']."'");
    }
?>

 <!DOCTYPE html>
<html>
    <head>

    </head>
    <body>
            <form action="" method="post" enctype="multipart/form-data">
                    <input type="file" name="file">
                    <input type="submit" name="submit">
            </form>


            <?php
                    $con = mysqli_connect("localhost","root","","intranet");
                    $q = mysqli_query($con,"SELECT * FROM user");
                    while($row = mysqli_fetch_assoc($q)){
                            echo $row['Username'];
                            if($row['profile'] == ""){
                                    echo "<img width='100' height='100' src='images/profile/default.jpg' alt='Default Profile Pic'>";
                            } else {
                                    echo "<img width='100' height='100' src='images/profile/".$row['image']."' alt='Profile Pic'>";
                            }
                            echo "<br>";
                    }
            ?>
    </body>
</html>

检查配置文件字段是否为varchar,或者检查images/profile文件夹中是否已有同名的图像。如果是,请在移动上载的文件之前尝试生成唯一的文件名

我通过在第9行的C:\IntranetBeta\test.php中运行echo Notice:Undefined index:username UPDATE user SET profile='Koala.jpg',其中username=

这段代码:

<?php session_start();
    $_SESSION['username'];
?>
没有为该会话数组分配任何内容,因此需要将其分配给某个对象

如果它来自上一页并在那里分配,那么您需要检查它是否已设置以及分配给了什么

否则,您需要将其删除或为其分配某些内容

即:

另外,正如我在前面的评论中所指出的,在尝试查询之前,先放置您的连接


这是因为你没有在上面连接。将您的连接代码单独放置在所有代码之上。
你试过用明文打印查询吗?它符合预期吗?这是因为你没有超越它。将连接代码分别放在所有代码之上。在打开PHP标记后立即将错误报告添加到文件顶部,例如,这是因为您没有使用此$_会话['username']执行任何操作;它只是作为$_SESSION['username']放在那一行;而不是$_SESSION['username']=John Doe;举个例子。这将使您更难知道如何将其分配为,或者是否将其分配到其他地方。@user2812059这向我表明您的$\u会话设置不正确,因为用户名不作为密钥存在于其中。我建议首先考虑一下这个问题。profile字段是一个varchar,文件名在profile folder中是唯一的。顺便说一句,我认为您有一个很好的观点,可以将连接移到外部。我确信,我并没有解决这个问题,但我认为这会产生更好的代码!。尤其是因为OP使用它来选择页面。“不需要多余。”拉斯克拉特说得对,我在早些时候的评论中提到了他们的问题。是的,这就是我所指的。他们应该按照你的评论来做。@user2812059不客气。这将取决于您要将会话数组分配给哪个用户。有很多方法可以做到这一点,从上一个表单的POST数组,或者从DB获取。这取决于你。@user2812059干杯!请记住将其标记为已解决,否则它将保留在未解决类别中。这里是如何以防万一,然后返回到答案做同样的事情。这会告诉未来的访问者这个问题已经找到了解决方案。
<?php 
session_start();

    if(isset($_SESSION['username'])){
        $_SESSION['username'] = "John Doe";
        }

    else{
        $_SESSION['username'] = "Empty";
        }
?>