我正在尝试创建一个包含会话的登录页面,这些会话区分两种类型的用户,“Admin”和“Sub”,其中每种类型的用户在成功登录后将被定向到不同的登录页面。这是通过比较输入的用户名和密码与数据库中的用户名和密码来完成的,其中两个字段的匹配将导致成功登录。
用户输入的用户名和密码将与从不同表格中抽取的值进行比较,这些表格对应不同类型的用户。
然而,我收到错误Parse错误:语法错误,意外'{',期待'('在第32行。我已经在StackOverflow上做了一些搜索,我能找到的最接近的答案来自{{3}从我可以做到的事情来看似乎并不适用于我。我在堆栈上看到的大部分关于解析错误的问题是由于人们忘记关闭他们的“}”或“)”。但是,我收到一个关于意外的“{”的错误,当一个“(”是预期的时候。为什么会这样呢???
我的代码如下:
<?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;
}
如果有人能指出我的错误,我将不胜感激。
答案 0 :(得分:1)
这是因为如果您使用else if
,则必须指定条件。
实施例
elseif($num == 0)
{
这会检查> 0
是否为= 0
,否则为< 0