ユーザーがadmin(2)またはnoarmal user(1)の場合、異なるコンテンツを表示したいと思います。ログインは正常に機能しますが、ユーザーが「usertype」1または2を持っているかどうかを確認するのがホットかわかりませんか?PHP$_SESSIONを使用したい。
これは私のログインフォームです:
<!-- Log in -->
<form method="post" action="authentication.php">
<input type="text" name="userid" placeholder="E-mail" required/>
<input type="password" name="password" placeholder="Password" required/><br>
<button type="submit" name="submit" class="btn">Log in</button>
</form>
これは私のauthentication.phpです:
session_start();
if(isset($_POST['userid']) && isset($_POST['password'])){
$userid = $_POST['userid'];
$password = $_POST['password'];
$dbc = mysqli_connect('localhost', 'root', '', 'news');
if(!$dbc){
echo "Cannot connect to database";
exit;
}
$query = "SELECT * FROM users_tbl WHERE email = '$userid' AND password = sha1('$password')";
$result = $dbc->query($query);
if($result->num_rows)
{
$_SESSION['valid_user'] = $userid;
}
$dbc->close();
}
if(isset($_SESSION['valid_user'])){
header("location:prefs.php");
}else{
header("location:login.php");
echo 'Error';
}
これは私が試したことです:
<?php
mysql_connect('localhost', 'root', '');
mysql_select_db('news');
$sql = "SELECT users_tbl.usertype FROM users_tbl";
$result = mysql_query($sql);
$user = mysql_fetch_array($result);
$_SESSION['user'] = $user['user'];
$_SESSION['usertype'] = $user['usertype'];
if($_SESSION['user']['usertype'] == 2)
{?>
<h1>Only admin stuff</h1>
<$? }//Endif user is admin(2) ?>
たぶん、ユーザーが管理者であるかどうかを確認するために毎回クエリを実行する代わりに、$ _ SESSION ['usertype']を保存し、これを使用して、管理者の場合、ユーザーがログインしているときに、ユーザーが2であるかどうかを確認できます。 ?しかし、私はこれを行う方法がわかりません。私はこれでかなり新しいです。