2012-01-25 55 views
-2

在我的php文件中,我創建了一個登錄,進入極端細節,所以我不會發布它,但我也是PHP的新手,我需要一個幫助。我不確定$_SESSION是否可以爲此工作,但如果它確實如此,我不知道該怎麼做。在網頁中傳遞的PHP變量

  1. 這就是我想知道...... 如果我有別人登錄我能有一個變量(有用戶名,所以我不,如果它被存儲在URL不知何故關心。)傳遞從頁面到頁面,並通過調用它來讀入每個文件。那麼我是否也可以讓變量被清空

  2. 另外一個更簡單的問題...我怎麼能在php中創建一個文件夾?

我的目錄仍不能正常工作

if (is_writable('/users')) { 
    if (mkdir('/users/$finalusername')) { 
    // success 
    } 
} 
$myFile = "https://stackoverflow.com/users/$finalusername/$finalusername.txt"; 
$fh = fopen($myFile, 'w') or die("There was an error in creating your account. <br />"); 
$stringData = "$finalusername\n"; 
fwrite($fh, $stringData); 
$stringData = "$finalpass\n"; 
fwrite($fh, $stringData); 
$stringData = "$finalemail\n"; 
fwrite($fh, $stringData); 
fclose($fh); 
} 
+0

我確實已經解決了這個問題,但是當我在線時它不會工作。我讓每個頁面從文本文件中讀取一個變量,當某人登錄時設置該變量,並在某人註銷時銷燬該變量,但如果我一次有多個人登錄,則這不起作用。說實話,我不知道如何使用$ SESSION –

+1

如果你嘗試了一些東西,然後發佈一些代碼,並解釋它爲什麼不起作用。堆棧溢出不是一個嘔吐代碼的網站。你必須付出一些努力。 – 2012-01-25 21:16:33

+0

我已經嘗試了$ SESSION開始爲您的信息我沒有成功,這是一個網站獲得幫助...因爲我在做爲什麼你要評論...我也嘗試傳遞變量soooo –

回答

3

不要通過在URL查詢字符串任何形式的認證價值。如果通過這種方式,用戶篡改他們的設置(或其他用戶的設置)將是微不足道的。

$_SESSION對於這類事情更爲理想,實施起來也很簡單。成功登錄後,設置會話變量用戶:

// Must be called to initiate session 
session_start(); 

// Login was successful 
$_SESSION['username'] = $the_username; 

// On other pages: 
session_start(); 

if (isset($_SESSION['username'])) { 
    // user is logged in 
} 
else // show the login form 

要出登錄用戶:

// Method 1 only unsets the username to log out the user 
session_start(); 
unset($_SESSION['username']); 

// Alternatively you can destroy the whole session, if 
// you are not using it for anything else the user may need again 
// despite not being logged in (maybe his preferred language, for example) 
session_destroy(); 
unset($_SESSION); 

用PHP創建一個目錄,使用mkdir()。 Web服務器用戶帳戶必須具有對創建新目錄的目錄的寫入權限,才能使其工作。

if (is_writable('/path/to/parentdir')) { 
    if (mkdir('/path/to/parentdir/new_directory')) { 
    // success 
    } 
    else { 
    // handle error 
    } 
} 
else // This directory has to be writable by the web server! 
+0

Thankyou!我一定要測試這..現在大聲笑 –

+0

所以要註銷? Session_End中(); $ _SESSION ['username'] = $ the_username; –

+1

註銷:'session_start(); session_destroy(); unset($ _ SESSION);'你必須在註銷頁面啓動會話,然後才能銷燬它。 –

1

我給你的每一個問題的鏈接

Simple Login Form in PHP with Sessions

請不要用您的用戶名出現在地址獲取變量。嘗試將$ _SESSION和$ _POST結合起來,獲得好的結果。

想象一下,如果我將我的地址從www.yourpage.com?username=kypros更改爲www.yourpage.com?username=administrator,那會立即讓我成爲管理員嗎?

至於你想要的第二個問題是 mkdir() function to create new folders

+0

Thankyou :)和網址上的好點...我也不知道爲什麼,但mkdir()早前不適合我。 –

+0

如果它不工作,你會發現我的猜測會成爲你在服務器上的寫權限或者某種拼寫錯誤的問題,因爲它是一個非常簡單的命令 – Kypros

0

$_SESSION是最適合您的答案。它通過在客戶機上存儲一個cookie(作爲HTTP響應的一部分發送)和一個唯一的會話ID來工作。然後將這個數據發送回客戶端發送給您的服務器的每個請求,直到cookie未被設置。服務器然後將相關信息存儲在臨時會話變量中。銷燬服務器端的會話(通過超時或通過您的代碼)也意味着用戶將被註銷(沒有爲會話存儲信息)。

0

mkdir()是一個用來創建目錄的函數。

理想情況下,您可以使用數據庫來存儲用戶登錄信息。然後使用一個表單,用戶可以輸入他們的用戶名和密碼。當他們點擊提交按鈕時,表單會發送輸入到登錄腳本的人員的值。然後,登錄腳本將搜索數據庫以查看用戶名和密碼是否與dababase中的任何一個匹配。如果他們這樣做,則可以使用session_start()創建會話並可創建一個等於用戶輸入的用戶名的$_SESSION變量。

根據用戶是否登錄,在所有想要顯示內容的網頁上使用session_start()功能。

您可以使用if()循環來確定$_SESSION['username']是否存在,如果存在則顯示內容。 要結束會話,請使用session_destory()函數。