PHP重定向条件语句

时间:2013-12-25 19:53:29

标签: php mysql

我正在尝试修改ID登录系统以便为管理员和用户工作,但是dosnt工作,有什么建议吗?为什么我的访问级别MySQL查询不起作用请帮忙。还有一个与db和函数调用的连接,但是这些与它无关我需要使用这个单一的表单。

<?php
require_once('lib/connections/db.php');
include('lib/functions/functions.php');
If acces_level = 2 {
$returnURL = "users/index.php";
   } else {
If access_level = 1 {
   $returnURL = "secdirpostdata//aderr/auth/admin/index.php";

//For login

    // we check if everything is filled in and perform checks

    if(!$_POST['username'] || !$_POST['password'])
    {
        die(msg(0,"Username and / or password fields empty!"));
    }

    else
        {
            $res = login($_POST['username'],$_POST['password']);
                if ($res == 1){
                    die(msg(0,"Incorrect Username or Password"));
                }
                if ($res == 2){
                    die(msg(0,"Your account has been suspended, contact us to remove the suspension"));
                }
                if ($res == 3){
                    die(msg(0,"Your account has not been activated. Please check your email's inbox or spam folder for a link to activate your account. If you are having problems activating your account then contact us to resolve the issue."));
                }
                if ($res == 4){
                    die(msg(0,"Your account has been disconnected and is banned from using server, Contact Us to resolve this issue."));
                }
                if ($res == 99){
                    echo(msg(1,$returnURL));
                }
        }

    function msg($status,$txt)
    {
        return '{"status":'.$status.',"txt":"'.$txt.'"}';
    }

?>

3 个答案:

答案 0 :(得分:0)

您正在使用等号=

进行作业
If access_level = 1 {
If acces_level = 2 {

而不是检查它是否等于==

将它们替换为:

If access_level == 1
If acces_level == 2 {

检查它是否等于。

修改

考虑到杰克为他的答案提出的建议,使用以下内容也会更有意义。

(感谢Jake Gould)

If $access_level == 1 {
If $acces_level == 2 {

N.B。acces_level有一个(可能)缺少s,因为您在access_level = 1中拼写正确,请仔细检查所有内容。在您发布的代码中没有其他对access_levelacces_level或任何其他变量的引用。

答案 1 :(得分:0)

ifelse if的语法错误。此外,=检查是一项任务,应该是==。当您有acces_level == 2acces_level == 1时,这些应该是变量,因此它应该是$acces_level == 2$acces_level == 1。最后,您需要围绕条件使用括号。以下示例。

你有这个:

If acces_level = 2 {
$returnURL = "users/index.php";
   } else {
If access_level = 1 {
   $returnURL = "secdirpostdata//aderr/auth/admin/index.php";

应该是这样的:

if ($access_level == 2) {
  $returnURL = "users/index.php";
}
elseif ($access_level == 1) {
  $returnURL = "secdirpostdata//aderr/auth/admin/index.php";

此外,尚不清楚该变量是acces_level还是access_level还是s。通常,您需要提供更多详细信息。但至少可以说你的格式化了。

答案 2 :(得分:-1)

同时保持格式正确

if (acces_level == 2) {

If acces_level = 2 {

更好的格式化并不意味着你实际上需要()