php-mysql: другая страница доступа при входе - PullRequest
1 голос
/ 24 октября 2011

Я запутался в этом методе входа, особенно для другой страницы доступа для некоторых пользователей после входа в систему.

У меня есть список пользователей в моей БД, например:

  1. админ
  2. Пользователь

Я хочу, если я войду в систему как admin, направит на input.php, и если я войду как user, перенаправит на index.php. Я читал с некоторых сайтов, что он должен использовать switch-case. Но мне все еще неясно, как это использовать.

$dbc=mysql_connect(_SRV,_ACCID,_PWD) or die(_ERROR15.": ".mysql_error());
$db=mysql_select_db("qdbase",$dbc) or die(_ERROR17.": ".mysql_error());

switch(postVar('action')) {
        case 'submitlogin':
                submitlogin(postVar('loguser'),postVar('logpass'));
                mysql_close($dbc);
                exit;
                break;
}

function submitlogin($loguser,$logpass){
        if(isset($loguser,$logpass)){
                $myuser= mysql_real_escape_string($loguser);
                $mypass= mysql_real_escape_string($logpass);
                $sql= sprintf("SELECT * FROM admin WHERE user = '".$myuser."' AND password = '".$mypass."'", $myuser,$mypass);
                $result = mysql_result($sql) or die (_ERROR26.": ".mysql_error());
                if(mysql_num_rows($result) > 0){
                        session_register("loguser");
                        session_register("logpass");

      switch $myuser{                          //i dont know its correct or not
           case 'admin':
               header("location:input.php");
               break;
           case 'user':
               header("location:index.php");
               break;
           }    
?>
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
        <META http-equiv='refresh' content='2; url=index.php'>
</head>
<title>Login success</title>
<body>
        <h1>You logged in !</h1>
</body>
</html>
<?php
    }else
        {
            header("location:log.php?msg=" . urlencode("Wrong Username or Password. Please retry"));
       }
    }else{
       header("location:log.php?msg=" . urlencode("Please enter some username and password"));
    }
}
?>

Я получил эту ошибку:

PHP Warning:  mysql_result() expects at least 2 parameters, 1 given in /home/jeinqa/www/oqc/dolog.php on line 29 // on line 17 in this page

1 Ответ

2 голосов
/ 24 октября 2011

Если вы пытаетесь перенаправить пользователя 'admin' на другую страницу после входа в систему, вместо

header("location:index1.php");    //i want to use switch-case in this part

тебе нужно что-то вроде

switch($loguser) {
    case "admin" :
         header("location:input.php"); 
         break;
    default: // this branch will run for all users other than 'admin' 
         header("location:index.php"); 

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...