PHP重定向取决于用户类型

时间:2013-09-11 19:44:06

标签: php

我有一个相当基本的登录页面。我正在开发一个原型,同时学习PHP的输入和输出。

在我的MySql数据库中,它看起来像这样: 用户ID,用户名,密码,人才,客户。人才和客户都是二元的,只有一个可以是真的。

所以我要做的是,如果talent = 1,将它们发送到index.php,如果customer = 1,则将它们发送到recruiter.php。

我90%肯定我已经掌握了基础知识,但是因为我已经添加了额外的if来检查人才和客户,所以它破坏了我的脚本:)

最后,我需要在每个页面上进行此检查,以确保客户不会访问人才页面,反之亦然。

我是否在正确的轨道上?

我当前的脚本执行此操作:

     <?php
        include("resource/config.php");
        if($_SERVER["REQUEST_METHOD"] == "POST")
        {
        // username and password sent from Form 
            $myusername=addslashes($_POST['username']); 
            $mypassword=addslashes($_POST['password']); 

            $sql="SELECT UserID, talent, customer FROM useradmin WHERE username='$myusername' and passcode='$mypassword'";
            $result=mysql_query($sql);
            $row=mysql_fetch_array($result);
            $active=$row['active'];
            $count=mysql_num_rows($result);
        // If result matched $myusername and $mypassword, table row must be 1 row

        if ($row['talent']==1) {
                if ($count==1) {
                    $_SESSION['login_user']=$myusername;
                    header("location: index.php");
                }
                else {
                    $error="Your Email or Password is invalid";
                }
            }    
        elseif ($row['customer']==1) {
                if ($count==1) {
                    $_SESSION['login_user']=$myusername;
                    header("location: recruiter.php");
                }
                else {
                    $error="Your Email or Password is invalid";
                }
            }

        else {
            $error="Your Login Name or Password is invalid";
            }
        }
    ?>

此外,在每个页面的顶部我都有这个,以确保只有登录用户可以访问它。

<?php
session_start();
include('config.php');
$user_check=$_SESSION['login_user'];

$ses_sql=mysql_query("select username from useradmin where username='$user_check' ");

$row=mysql_fetch_array($ses_sql);

$login_session=$row['username'];

if(!isset($login_session)) {
     header("Location: login.php");
  }
?>

2 个答案:

答案 0 :(得分:2)

你不能只做这样的比较:

if (['talent']==1)

你可能想要这样比较:

if ($row['talent']==1)

本质上你正在做的是将一个数组与talent的单个元素进行比较1

答案 1 :(得分:1)

应该是if ($row['talent']==1)elseif ($row['customer']==1)