简体   繁体   English

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

[英]Redirect to admin/user page after login

Here is my page and it works properly, I just want to add how to redirect the the page depending if account is admin or user, please indicate where to add, and if there is any idea on my MySQL database to change, that would be useful. 这是我的页面,它可以正常工作,我只想添加如何重定向页面,具体取决于帐户是管理员还是用户,请指出要添加的位置,如果我的MySQL数据库上有任何想法要更改,那将是有用。

DATABASE: 数据库:

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 
             } 
             ?>
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");  
}

should do the trick. 应该可以。

I would add the additional redirects near the original line: 我会在原始行附近添加其他重定向:

header("Location: main.php");

Probably in an if statement like this: 可能是这样的if语句:

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

When you create a user define in the database define an "Authentication" of 0 or 1. Then when they log in you can do something like. 当您在数据库中创建用户定义时,请定义0或1的“身份验证”。然后,当他们登录时,您可以执行类似的操作。

logincheckpage.php 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";
}

And at the top of the other pages that you don't want the user to see put something like 并且在其他页面的顶部,您不希望用户看到类似

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM