-3

我正在尝试创建一个登录页面,其会话区分两种类型的用户,“Admin”和“Sub”,其中每种类型的用户在成功登录后将被定向到不同的登录页面。这是通过将输入的用户名和密码与数据库中的用户名和密码进行比较来完成的,两个字段的匹配将导致成功登录。

用户输入的用户名和密码将与从不同表中提取的值进行比较,这些表对应于不同类型的用户。

但是,我收到错误 Parse error: syntax error, unexpected '{', expecting '(' on line 32。我在 StackOverflow 上做了一些搜索,我能找到的最接近的答案来自Parse error Unexpected (, expected ,在 php 中,当将内容文件分配给似乎不适用于我的静态属性时,从我的能力来看。我在堆栈溢出中看到的关于解析错误的大多数问题都是由于人们忘记关闭他们的“}”或“)”。但是,我收到一个关于意外“{”的错误,而“(”是预期的。为什么会这样???

我的代码如下:

<?php

session_start();
switch ($_POST[‘Button’])
{
case "Login":
    include("cxn.inc");
    $cxn=mysqli_connect($host,$user,$pass,$db) or die("Can't connect to database");
    $query="SELECT * FROM Users WHERE Username='$_POST[Username]'";
    $result=mysqli_query($cxn,$query) or die (" Cant find Username");
    $num=mysqli_num_rows($result);


        if($num>0)//Username is found
        {
            $query="SELECT * FROM Users WHERE Password='$_POST[Password]'";
            $result2=mysqli_query($cxn,$query)or die("Cant find Password");
            $num2=mysqli_num_rows($result2);
            if($num2>0)//Password is found
            {
                $_SESSION['Auth']="Yes";
                $_SESSION['Type']="Admin";
                header("Location:AdminMain.php");
            }
            else
            {
                echo"Invalid Username and/or Password";
            }

        }
        elseif//Executes when Username not found in Users table
        { <---This is the line giving me the error
            $query="SELECT * FROM SubUsers WHERE Username='$_POST[Username]'";
            $result3=mysqli_query($cxn,$query) or die(" Cant find Username");
            $num3=mysqli_num_rows($result3);
            if($num3>0)//Username is found
            {
                $query="SELECT * FROM SubUsers WHERE Password='$_POST[Password]'";
                $result4=mysqli_query($cxn,$query);
                $num4=mysqli_num_rows($result4);
                if($num4>0)//Password is found
                {
                    $_SESSION['Auth']="Yes";
                    $_SESSION['Type']="Sub";
                    header("Location:SubMain.php");
                }
                else
                {
                    echo"Cant find Password";
                }
            }
            else
            {
                echo"Cant find Username";
            }
        }
        else
        {
            echo"Invalid Username and/or Password entered";
        }
    include("LoginPage.php");

    break;
}

如果有人能指出我的错误,我将不胜感激。

4

1 回答 1

1

这是因为如果您使用 an else ifthen 您将必须指定一个条件。

例子

elseif($num == 0)
{

这将使它检查 if > 0then if= 0和 else 将是< 0

于 2013-05-26T16:27:16.500 回答