2015-11-13 55 views
1

我已經放在一起,允許用戶上傳和查看文檔的腳本,但是,我遇到的問題是如果一個用戶上傳文檔,所有註冊用戶都可以看到它。所以我想基礎的文檔上傳上登錄的用戶......看到下面的代碼:上傳文檔基於用戶LOGGED IN

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語句附近引發語法錯誤。

有誰能告訴我爲什麼會顯示這個錯誤?

如果您希望我上傳任何其他文件,請讓我知道。

謝謝,

蘇海爾。

+0

你的SELECT語句在哪裏? –

+0

我不能看到任何SELECT語句。它是什麼確切的錯誤,是的,你需要在upload.php中顯示代碼 – Steve

+0

你的SQL語法有錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在'select personid FROM person where personalid ='sarif''),('index.php','applicati'在第1行使用的語法附近使用 這就是我得到的錯誤,select語句在$ sql變量中 –

回答

0

爲什麼我得到一個語法錯誤的原因是因爲我構建了我的SQL語句錯誤..見下文變化:

BEFORE:

$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)); 

AFTER:

$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)); 

值得慶幸的是,這是所有了,現在正在運行。

蘇海爾。

0

改變你的插入查詢是這樣的:

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

爲了您:

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

它給我一個語法錯誤 –

+0

錯誤是什麼 – Thamilan

+0

和以前一樣,如下所示:\t 你的SQL語法錯誤;檢查手冊對應於您的MySQL服務器版本的正確語法使用附近'選擇personalid FROM person where personalid ='sarif'),('index.php','applicati'在第1行 –