這是一個小菜鳥問題,但..它有時會發生在每個人。PHP:用戶登錄系統/檢查用戶是否有訪問頁面
我從來沒有與$ _SESSION工作這麼一次,我需要一個登錄系統我用Dreamweaver中做一個給我。
我有一個頁面,他要求輸入用戶名和密碼。 如果登錄成功,則轉到其他頁面。否則它在登錄頁面中說。
問題是,曾經工作過的登錄系統現在無法工作。 因爲他留在登錄頁面。我做了一個「echo $ _SESSION ['MM_Username'];」
並沒有返回。所以我認爲這意味着我沒有創建用於訪問的cookie?
對不對?我認爲會話中的回聲會顯示一些內容。
嗯,我可以幫助一些人嗎?也許一個簡單的登錄系統。不是Dreamweaver記錄。
我會在登錄頁面發佈用戶登錄代碼。
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
session_start();
}
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}
if (isset($_POST['username'])) {
$loginUsername=$_POST['username'];
$password=$_POST['passe'];
$MM_fldUserAuthorization = "power";
$MM_redirectLoginSuccess = WWW."/administrador";
$MM_redirectLoginFailed = WWW."/login";
$MM_redirecttoReferrer = false;
mysql_select_db($database_dbconnect, $dbconnect);
$LoginRS__query=sprintf("SELECT username, passwd, power FROM `user` WHERE username=%s AND passwd=%s",
GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text"));
$LoginRS = mysql_query($LoginRS__query, $dbconnect) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {
$loginStrGroup = mysql_result($LoginRS,0,'power');
//declare two session variables and assign them
$_SESSION['MM_Username'] = $loginUsername;
$_SESSION['MM_UserGroup'] = $loginStrGroup;
if (isset($_SESSION['PrevUrl']) && false) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: " . $MM_redirectLoginSuccess);
}
else {
header("Location: ". $MM_redirectLoginFailed);
}
}
我工作過。它會在$ MM_redirectLoginSuccess和$ MM_redirectLoginFailed中看到的更改以及數據庫中沒有任何更改。
如果它累了一些。只需發佈一個簡單的登錄用戶代碼,我發現了一些但不好的。剩下的就是我。
你知道它的奇怪嗎?有效。我救了,然後關掉電腦,然後當我回來沒有工作。
再次感謝。
這個問題已經得到解答,但請自己幫助未來。切換到可讓您逐行調試的IDE。我使用Xdebug使用NetBeans。它會顯示局部變量和所有內容。 – 2009-06-07 12:35:28