登录后重定向到管理员/用户页面

时间:2012-09-12 07:16:35

标签: php mysql sql

这是我的页面,它运行正常,我只想添加如何重定向页面,具体取决于帐户是管理员还是用户,请指出添加位置,以及是否有任何想法在我的MySQL数据库上进行更改,这将是有用的。

数据库:

id_number username password status
1         admin    admin    1
2         user     user     0

admin = 1
user = 0

            <?php 
             // Connects to your Database 
             mysql_connect("localhost", "root", "") or die(mysql_error()); 
             mysql_select_db("net25") or die(mysql_error()); 
             //Checks if there is a login cookie
             if(isset($_COOKIE['ID_my_site']))
             //if there is, it logs you in and directes you to the members page
             { 
                $username = $_COOKIE['ID_my_site']; 
                $pass = $_COOKIE['Key_my_site'];
                    $check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error());
                while($info = mysql_fetch_array( $check ))  
                    {
                    if ($pass != $info['password']) 
                        {
                                    }
                    else
                        {
                        header("Location: main.php");
                        }
                    }
             }
             //if the login form is submitted 
             if (isset($_POST['submit'])) { // if form has been submitted
             // makes sure they filled it in
                if(!$_POST['username'] | !$_POST['pass']) {
                    die('You did not fill in a required field.');
                }
                // checks it against the database
                if (!get_magic_quotes_gpc()) {
                }
                $check = mysql_query("SELECT * FROM users WHERE username = '".$_POST['username']."'")or die(mysql_error());
             //Gives error if user dosen't exist
             $check2 = mysql_num_rows($check);
             if ($check2 == 0) {
                    die('That user does not exist in our database. <a href=register.php>Click Here to Register</a>');
                            }
             while($info = mysql_fetch_array( $check ))     
             {
             $_POST['pass'] = stripslashes($_POST['pass']);
                $info['password'] = stripslashes($info['password']);
                $_POST['pass'] = md5($_POST['pass']);
             //gives error if the password is wrong
                if ($_POST['pass'] != $info['password']) {
                    die('Incorrect password, please try again. <a href=index.php>Click Here to Log In</a>');
                }
                else 
             { 
             // if login is ok then we add a cookie 
                 $_POST['username'] = stripslashes($_POST['username']); 
                 $hour = time() + 3600; 
             setcookie(ID_my_site, $_POST['username'], $hour); 
             setcookie(Key_my_site, $_POST['pass'], $hour);  
             //then redirect them to the members area 
             header("Location: main.php"); 
             } 
             } 
             } 
             else 
            {    
             // if they are not logged in 
             ?> 
            <form action="<?php echo $_SERVER['PHP_SELF']?>" method="post"> 
             <table border='1' cellpadding='5' cellspacing='0' bordercolor='#FF9900' bgcolor="#CCFFFF"> 
             <tr><td colspan=2><h1>Login</h1></td></tr> 
             <tr><td>Username:</td><td> 
             <input type="text" name="username" maxlength="40"> 
             </td></tr> 
             <tr><td>Password:</td><td> 
             <input type="password" name="pass" maxlength="50"> 
             </td></tr> 
             <tr><td colspan="2" align="right"> 
             <input type="submit" name="submit" value="Login"> 
             </td></tr> 
             </table> 
             <br />
             <a href="/hrd/orig/register.php">Register Here</a>
            </form> 
             <?php 
             } 
             ?>

3 个答案:

答案 0 :(得分:3)

if ($info['status'] == '1') { // check the value of the 'status' in the db
    //go to admin area
    header("Location: admin.php");
} else {
    //go to members area
    header("Location: main.php");  
}

应该这样做。

答案 1 :(得分:1)

我会在原始行附近添加其他重定向:

header("Location: main.php");

可能在这样的if语句中:

if($info['status'])
{
    header("Location: admin.php");
}
else
{
    header("Location: main.php");
}

答案 2 :(得分:1)

当您在数据库中创建用户定义时,定义“身份验证”为0或1.然后当他们登录时,您可以执行类似的操作。

logincheckpage.php

mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");
$sql="SELECT * FROM users WHERE u_name='$myusername' and p_word='$encrypted_p_word'";
$result=mysql_query($sql);
$row= mysql_fetch_array($result);
$count=mysql_num_rows($result);
$auth=$row['auth'];
if($count==1){
    if($auth==1){
        session_start();
        $_SESSION['auth']=$auth;
        $_SESSION['u_name']=$myusername;
        header("location:index.php");
    }
    elseif($auth==0){
        session_start();
        $_SESSION['auth']=$auth;
        header("location:calendar.php");
    }
}
else {
echo "Wrong Username or Password";
}

在其他页面的顶部,您不希望用户看到类似

的内容
session_start();
if($_SESSION['auth']!=1){
    header("location:login.php");
}