2015-02-07 97 views
0

好的,所以需要做一些解釋。所以,讓我們從我想要實現的目標開始。我正在嘗試爲用戶上傳用於其個人資料的圖像來創建頭像功能。這是我的概念;如何從PHP登錄項目中獲取用戶名

用戶上傳圖像目錄=圖像根據自己的用戶名更名=

當用戶訪問他的個人資料的圖像被抓住自己的用戶名稱爲=

所以基本上,圖像輸出將像這樣<img src="avatars/$username.png" />

現在,因爲我還沒有很多使用PHP的經驗,我決定使用一個名爲「PHP的登錄項目」內置預PHP登錄腳本。它使事情變得更快。

雖然這是我的困境,但我不知道如何訪問用戶名信息以在我的上傳圖片php文件中使用(該文件名爲upload.php。)所以,目前upload.php允許用戶上傳圖片,然後用隨機的一串數字重命名它,我不想要這個。相反,代替數字將是用戶的用戶名。這裏是upload.php文件;

<?php 
$rand = rand(10000000, 999999999); 
$file_name = $rand.$_FILES["fileToUpload"]["name"]; 
$target_dir = "avatars/"; 
$target_file = $target_dir . $file_name; 
$uploadOk = 1; 
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 
// Check if image file is a actual image or fake image 
if(isset($_POST["submit"])) { 
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); 
    if($check !== false) { 
     //echo "File is an image - " . $check["mime"] . "."; 
     $uploadOk = 1; 
    } else { 
     echo "File is not an image."; 
     $uploadOk = 0; 
    } 
} 
// Check if file already exists 
if (file_exists($target_file)) { 
    echo "Sorry, file already exists."; 
    $uploadOk = 0; 
} 
// Check file size 
if ($_FILES["fileToUpload"]["size"] > 500000) { 
    echo "Sorry, your file is too large."; 
    $uploadOk = 0; 
} 
// Allow certain file formats 
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" 
&& $imageFileType != "gif") { 
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed."; 
    $uploadOk = 0; 
} 
// Check if $uploadOk is set to 0 by an error 
if ($uploadOk == 0) { 
    echo "Sorry, your file was not uploaded."; 
// if everything is ok, try to upload file 
} else { 
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { 
     //echo "The file ". basename($_FILES["fileToUpload"]["name"]). " has been uploaded."; 
     header('Location: http://1.testing.uk.to/PROJECT_SPACE/edit.php'); 
    } else { 
     echo "Sorry, there was an error uploading your file."; 
    } 
} 
?> 

這裏是PHP登錄項目的GitHub頁面:GitHub Link

現在,如果你沒有使用/看到PHP登錄項目,這個問題可能不容易理解。所以,如果你已經看到它,並知道它是如何工作的,這裏是我問的問題,我如何獲取用戶的用戶名並將其添加到我的upload.php文件中,重命名上傳的文件以匹配用戶名?經驗豐富的PHP開發人員也可能會理解這個問題,但建議您查看PHP登錄項目的代碼。希望我以一種可以幫助我解決問題的方式解釋我想要的內容。感謝您提供的任何幫助。

回答

1

嘗試使用此功能在的login.php線no.738

<code> 
    public function getUsername() 
    { 
     return $this->user_name; 
    } 
</code> 
+0

感謝您的代碼,但是,我會在何處將其實施到我的upload.php文件中? – MyNameIsNotSoCool 2015-02-07 10:36:51

+0

對不起,我不太明白..你能詳細點嗎?感謝您的幫助! – MyNameIsNotSoCool 2015-02-07 10:46:02

+0

$ objLogin = new Login(); $ userName = $ objLogin-> getUsername();在$ userName中,您將獲得登錄的用戶名,您可以使用此值更新上傳的文件名upload.php – 2015-02-07 10:47:28

0

查看文件,登錄功能正在存儲會話中的用戶名。所以你可以在上面的文件中調用這個會話,並用它來分配變量「$ filename」。

+0

好了,所以我已經添加在會話中,但我得到的錯誤'未定義的變量:_SESSION'。我認爲這是因爲我沒有包含某個文件?因此會話是不確定的?如果是這樣,我該如何解決這個問題? – MyNameIsNotSoCool 2015-02-07 05:51:26

+0

請檢查以下幾點,1: - 會話在您使用的頁面上啓動。 2: - 使用適當的會話變量。 3:其他頁面上的任何其他會話都不會覆蓋它。 – 2015-02-07 07:22:51

+0

將'session_start();'添加到文件中會導致錯誤消失,但不會上傳文件。 – MyNameIsNotSoCool 2015-02-07 07:49:03

相關問題