0

データベース(管理者)から特定のユーザーのセッションを設定しようとしています。管理者がログインしている場合、管理者ページにリダイレクトされます。そしてより多くの特権を持つでしょう。

session_start();
require 'funcs.php';

$error = FALSE;

if (! empty($_POST)) {
    $username = $_POST['username'];
    $password = md5($_POST['password']);
    $sql = "SELECT * FROM `users` WHERE
            `username` = '$username' AND
            `password` = '$password' LIMIT 1";





    $result = query($sql,TRUE);
    if(! empty($result)) {
        $_SESSION['name'] = $result[0]['fullname'];
        $_SESSION['user'] = $result[0]['username'];
        header("Location: index.php");
        die;
    } else {
        $error = TRUE;
    }
4

4 に答える 4

2
<?php
session_start();
include('../database/connect.php'); // Database connect
if(isset($_POST['login']))
{
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);
    if($username =="")
    {
        $erro_msg_au="<font color=red><b>"."Please Enter Username"."</b></font>";
    }
    elseif($password =="")
    {
        $erro_msg_ap="<font color=red><b>"."Please Enter Password"."</b></font>";
    }
    if($username !="" && $password !="")
    {
        $sql=mysql_query("SELECT * FROM users where email_id='$username' AND password='$password' and usertype='admin'");   
        $row=mysql_fetch_array($sql);
            if($row['email_id']!="")
            {
                $_SESSION['admin']=$row['email_id'];
                echo "<script language=javascript>window.location='dashboard.php'</script>";
            }
            else
            {
                $erro_msg="<font color=red><b>"."Invalid Login Information"."</b></font>";      
            }
    }
}
?>

HTML スクリプト:

<form id="login_form" name="login_form" method="post">
<input name="username" type="text" id="username" value="<?php echo $_POST['username']?>" />
<input name="password" type="password" id="password" />
<input name="btnlogin" type="submit" value="Login" /> 
</form> 
于 2013-05-21T18:14:03.123 に答える
0

書かれているコードは、ユーザー データベースにあるユーザーを送信し、ページ index.php に正常にログインするために大まかに機能します。上記のコードが実際に index.php にある場合、session_start() への呼び出しの後、SQL ルックアップの前に、ユーザーが既にログインしているかどうかを確認するコードが必要です。

そのユーザーが「admin」の場合は、必要な追加の権限をユーザーに付与します。管理者またはログインしているユーザーに異なるものを表示したいページでは、同じ方法でセッション変数を確認する必要があります。たとえば、ページに次のようなチェックがあるとします。

<?php 
// if session already started, this loads $_SESSION with existing values:
session_start();

if(isset($_SESSION['user'])) { 
    // Code for Logged members 
    if ($_SESSION['user'] === "admin") {
        // Code to show for admin user
    }
    else {
        // code to show logged-in non-admin users
    }
} 
else { 
    // Code to show not-logged in users
} 
?> 
于 2013-05-21T17:29:17.233 に答える