0

これは私の最初の投稿なので、初心者のような発言を許してください。PHP は問題ありませんが、何かが足りないようです (明らかに)。割り当てられたユーザーグループに応じて、ログインした後にユーザーをリダイレクトしようとしています。したがって、メンバーはメンバーの領域に移動し、管理者は管理者領域に移動し、最後にスーパー管理者はスーパー管理者領域に移動します。コードは最近機能していましたが、Web ページの上部にリンク用の Javascript ドロップダウン メニューを追加した後、停止したようです。問題を次のスニペットに絞り込みました。

    if($count==1){

        // Register $myusername, $mypassword and redirect to file "login_success.php"
        $_SESSION['myusername'] = $myusername;
        $_SESSION['mypassword'] = $mypassword;
        $_SESSION['myusergroup'] = $myusergroup;
            if($usergroup == "SuperAdmin"){
            header("location:superadmin_login_success.php");
            exit();
            }
            elseif($usergroup == "Admin"){
            header("location:admin_login_success.php");
            exit();
            }
            elseif($usergroup == "Member"){
            header("location:login_success.php");
            exit();
            }
    }

カウントは、SQL クエリから返された結果を表します。クエリは、ユーザー名とパスワードのフィールドが以前にログイン時に送信したフォームと等しいテーブルからすべてのフィールドを選択します。私のログイン PHP コードはすべて同じ Web ページにあり、PHP の先頭にある if ステートメントは、フォームが送信されていないときにコードが実行されるのを防ぎます。誰かがこのスニペットまたは私のロジックに何か問題があることを見つけることができますか?私は同様の状況にある人々からこの問題を見つめて読んでいますが、まだどこにも行けません.

ご覧のとおり、ヘッダー関数を使用してリダイレクトしていますが、ヘッダーが呼び出される前にページに出力を印刷するときに関数に問題があります。この問題の詳細については完全にはわかりませんが、誰かが明確にして例を挙げて説明できる場合は、感謝します。これらのスクリプトを個別に作成し、必要に応じて含めることは適切で正しいですか? 私もそれについて考えてきました。

どうもありがとう

リス

4

4 に答える 4

0

を送信する前に、出力がないことを確認してくださいheader()。わずかな空白でもリダイレクトが台無しになる可能性があります。

于 2013-03-06T16:52:28.877 に答える
0

ob_start()出力バッファリングをオンにするために使用できます。PHP のOutput Control Functionsを見てください。

ヒント:複数のステートメントswitch()の代わりに使用しますif()

于 2013-03-06T16:55:39.790 に答える
0

セッション変数に $myusergroup を割り当てていることに気付きましたが、if ステートメントでは $usergroup のみを呼び出しています。$usergroup はどこかで使用されていますか?

于 2013-03-06T16:56:15.907 に答える
0

$myusergroup と $usergroup の違いは何ですか? あなたの if ステートメントは $usergroup をチェックします。それは設定されていますか、それとも彼らがチェックするのは $myusergroup である必要がありますか?

于 2013-03-06T16:54:44.630 に答える