ダンストレーナーのためのダンストレーナーのためのplattformを現在取り組んでいます... トレーナーはアカウントを作成します そのアカウントでログイン - >メールとパスワードが正しくあれば、それらの変数の中にユーザのID、メールなどがあり、それらの変数がユーザによって開始された後にユーザロール(adminまたはuser/1または2) が開始され、実際のユーザーエリアのWebサイトに転送されます。 ここで、セッション変数が設定されているかどうか、およびユーザーロールがそのページにアクセスできるほど高いかどうかを確認します。管理者またはログインページ(adminの場合はrole = 2、roleの場合は! 2) しかし、変数は最初のログイン試行に保存していない、あなたは二回にログインする必要があります....ここPHPセッション変数は、2回目の試行でのみ保存します
は私のコード
ログインページです:
session_start();
include('connect.php'); //mysql connection function
if (isset($_POST["login"])) // check if login attemp exists
{
//get mail from form
$mail = mysqli_real_escape_string($verbindung, $_POST["mail"]);
//get password from form
$pw = mysqli_real_escape_string($verbindung, $_POST["pw"]);
//check if user exists in db
$sql = "SELECT * FROM user_db WHERE mail = '$mail'";
$query = mysqli_query($verbindung, $sql);
while ($user = mysqli_fetch_object($query))
{
if (password_verify($pw, $user->password))
{
// set session variables
$_SESSION["login"] = $user->acc_type; //role
$_SESSION["id"] = $user->id; //id
$_SESSION["vorname"] = $user->vorname;
$_SESSION["mail"] = $user->mail;
$_SESSION["nachname"] = $user->nachname;
}
}
}
// check if login attempt succeded and get the user role
if ($_SESSION["login"] == 1)
{
// if role is user goto user page
echo '<meta http-equiv="refresh" content="100; URL=user" />';
}else if ($_SESSION["login"] == 2)
{
if role is admin goto admin page
echo '<meta http-equiv="refresh" content="100; URL=admin" />';
}
ユーザー/管理者ページ(どちらも同じコード/エラー):
session_start();
if ($_SESSION["login"] == '2')
{
//goto admin if user is admin
echo '<meta http-equiv="refresh" content="0; URL=../admin">';
}else if ($_SESSION["login"] != '1')
{
//goto login if user is neither role 1 or 2
//this one triggers allways if it is your first attempt to login
//it behaves like the session didnt start on the login page but i dont know why
echo '<meta http-equiv="refresh" content="0; URL=../">';
}
あなたは、ログイン後、ユーザーが再度ログインにリダイレクトされるという意味ですか? さらに、 なぜあなたはヘッダーの場所を使用していませんか? なぜinfosecをチェックせずにクエリを使用していますか? – Buddhi741
はい、ログインをクリックすると、ユーザーページにリダイレクトされますが(これはどうなりますか)、セッション変数が設定されていないため、再度ログインページにリダイレクトされます。しかし、ログインをやり直すと、すべてがうまく動作する –
注入されたヘッダーの場所について聞いたことがないので、/私はそれらを今すぐGoogleに渡します:) –