上传基于用户LOGGED IN的文档

时间:2015-11-13 11:00:20

标签: php sql

我已经整理了一个脚本,允许用户上传和查看文档,但是,我遇到的问题是,如果一个用户上传文档,所有注册用户都可以看到..所以我试图建立在登录用户上的文档上传...请参阅以下代码:

uploadconfig.php

<?php
include("dbconfig.php");
require("upload.php");
if(isset($_POST['btn-upload'])){
$file = $_FILES['file']['name'];
    $file_loc = $_FILES['file']['name'];
    $file_size = $_FILES['file']['size'];
    $file_type = $_FILES['file']['type'];
    $folder = "uploads/";
    move_uploaded_file($file_loc, $folder.$file);
    $sql = mysqli_query($conn, "INSERT INTO upload( file, type, size, personalid) VALUES (select personalid FROM person where personalid='$username'),('$file', '$file_type', '$file_size') ") or die (mysqli_error($conn));

    if($sql){
    header("location:upload.php?msg0=Document upload successful.");

    }

else {

    header("location:upload.php?msg1=Document upload failed.");

    }


    }

    ?>

我'需要'upload.php文件的原因是因为用户会话变量在该文件中,我想通过要求该文件,我能够将该变量传递给我的uploadconfig.php文件。但是它不是插入数据,而是在INSERT语句中的SELECT语句附近抛出语法错误。

有谁能告诉我为什么会出现这个错误?

如果您希望我上传任何其他文件,请告知我们。

谢谢,

苏海尔。

2 个答案:

答案 0 :(得分:0)

更改您的插入查询,如下所示:

User

对于你的:

INSERT INTO upload( file, type, size, personalid) select '$file', '$file_type', '$file_size', personalid FROM person where personalid='$username'

答案 1 :(得分:0)

我收到语法错误的原因是因为我错误地构造了我的SQL语句。请参阅下面的更改:

在:

$sql = mysqli_query($conn,"INSERT INTO upload(file, type, size, personalid) VALUES (select personalid FROM person where personalid='$username'),('$file', '$file_type', '$file_size') ") or die (mysqli_error($conn));

在:

$sql = mysqli_query($conn, "INSERT INTO upload (personalid, file, type, size) values ((select personalid from person where username='$username'), '$file', '$file_type', '$file_size')") or die (mysqli_error($conn));

幸运的是,它现在已经全部运行。

苏海尔。