2009-06-07 14 views
0

これはちょっとした質問ですが、時には誰もがそれを起こします。PHP:ユーザログインシステム/ユーザがページにアクセスしているかどうかをチェック

私は$ _SESSIONで作業したことがないので、ログインシステムが必要な場合は、私のためにDreamweaverを使用しました。

ユーザー名とパスワードを要求するページがあります。 そして、logginが成功すれば、他のページに行きます。それ以外の場合は、ログインページに表示されます。

これまでに働いていたログインシステムが現在機能していないという問題点があります。 彼はログインページにとどまっているためです。私は "echo $ _SESSION ['MM_Username'];を実行しました。

何も返されません。だから私はアクセスのためのクッキーを作成していないことを意味すると思いますか?

右か?私はセッションのエコーが何かを表示すると思います。

私はいくつかの助けを借りてもらえますか?単純なログインシステムかもしれません。 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にあり、データベースに何も変更されていない変更がそこに表示されます。

疲れた場合はいくつか。単純なログインユーザーコードを投稿するだけで良いものは見つけられませんでした。それは私が残りをする。

あなたは何を知っていますか?出来た。私は保存し、コンピュータをオフにして、その後私が戻ってきたときに働いていない。

もう一度おねがいします。

+0

質問は既に回答されていますが、将来は自分自身に有利です。行ごとにデバッグできるIDEに切り替えます。 XdebugでNetBeansを使用しています。それはあなたにローカル変数とすべてを表示します。 –

+0

提案友人に感謝します。私はすでにNetbeansを試してきました。しかし、私は多くのことに慣れていない、その情報のおかげで。 –

答えて

2

あなたのデータベースは稼動していますか?

変数をデバッグするときに、デバッグしている変数の型(特にnullの場合)が表示されるように、変数をデバッグするときにvar_dump($ var)を使用してみてください。

$ LoginRS__query - これをエコーし​​、どのクエリが生成されているかを確認します。それをあなた自身で実行し、何が起こるかを見てください。

header( "Location:"。$ MM_redirectLoginSuccess); - データが送信された場合(変数がエコーされた場合など)、ヘッダーはすでに送信されているため、ユーザーをリダイレクトすることはできません。

0

ありがとうございました。そのような紛争のいくつかの種類として、私はそれに費やすのに多くの時間がなかったのかどうかわからない、私はそれを迅速に動作させる必要がありました。

私が投稿した最初のコードにはユーザの電源チェックが含まれていましたが、管理パネルが終了した後でしか使用できないため、私は使用していませんでした。

私はその部分を削除してOKになりました。

// *** 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 = ""; 
    $MM_redirectLoginSuccess = WWW."/administrador"; 
    $MM_redirectLoginFailed = WWW."/login"; 
    $MM_redirecttoReferrer = false; 
    mysql_select_db($database_conn, $dbconnect); 

    $LoginRS__query=sprintf("SELECT username, passwd 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 = ""; 

    //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); 
    } 
} 

私は電源チェックシステムを自分で行うしかありませんが、問題はありません。

ありがとうございました。

関連する問題