我想要一些有关PHP嵌套if
/else
的帮助。看起来应该检查用户是否登录的代码中的最后一个else
正在让我期待声明错误。整个代码很好,但最后的else
。嵌套if else语句,期望语句错误
这是页面上的错误:
Parse error: syntax error, unexpected 'else' (T_ELSE) in create_topic.php on line 141
虽然我知道这是因为其他人在过去,现在被视为一个额外的else
,我似乎无法找出原因,因为我用我的IDE来仔细检查我的陈述似乎都是平衡的。
<?php include "_class/core.php"; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Promanage</title>
<link rel="stylesheet" href="_css/style.css" type="text/css" />
</head>
<body>
<div id="main">
<?php
if(!empty($_SESSION['LoggedIn']) && !empty($_SESSION['Username']))
{
$username = $_SESSION['Username'];
?>
<h1>Profile</h1>
<a href="index.php" rel="nofollow">Home</a> <a href="profile.php" rel="nofollow">Profile</a> <a href="logout.php" rel="nofollow">Logout</a> <br /><br />
<?php
if($_SERVER['REQUEST_METHOD'] != 'POST')
{
$sql = "SELECT
course_id,
course_name,
course_description
FROM
course";
$result = mysql_query($sql);
if(!$result)
{
//the query failed, uh-oh :-(
echo 'Error while selecting from database. Please try again later.';
}
else
{
if(mysql_num_rows($result) == 0)
{
if($_SESSION['user_level'] == 1)
{
echo 'You have not created courses yet.';
}
else
{
echo 'Before you can post a topic, you must wait for an admin to create some categories.';
}
}
else
{
echo '<form method="post" action="">
Subject: <input type="text" name="topic_subject" />
Category:';
echo '<select name="topic_cat">';
while($row = mysql_fetch_assoc($result))
{
echo '<option value="' . $row['course_id'] . '">' . $row['course_name'] . '</option>';
}
echo '</select>';
echo 'Message: <textarea name="post_content" /></textarea>
<input type="submit" value="Create topic" />
</form>';
}
}
}
else
{
$query = "BEGIN WORK;";
$result = mysql_query($query);
if(!$result)
{
echo 'An error occured while creating your topic. Please try again later.';
}
else
{
$sql = "INSERT INTO
topics(topic_subject,
topic_date,
topic_cat,
topic_by)
VALUES('" . mysql_real_escape_string($_POST['topic_subject']) . "',
NOW(),
" . mysql_real_escape_string($_POST['topic_cat']) . ",
" . $_SESSION['user_id'] . "
)";
$result = mysql_query($sql);
if(!$result)
{
echo 'An error occured while inserting your data. Please try again later.' . mysql_error();
$sql = "ROLLBACK;";
$result = mysql_query($sql);
}
else
{
$topicid = mysql_insert_id();
$sql = "INSERT INTO
posts(post_content,
post_date,
post_topic,
post_by)
VALUES
('" . mysql_real_escape_string($_POST['post_content']) . "',
NOW(),
" . $topicid . ",
" . $_SESSION['user_id'] . "
)";
$result = mysql_query($sql);
if(!$result)
{
echo 'An error occured while inserting your post. Please try again later.' . mysql_error();
$sql = "ROLLBACK;";
$result = mysql_query($sql);
}
else
{
$sql = "COMMIT;";
$result = mysql_query($sql);
echo 'You have successfully created <a href="topic.php?id='. $topicid . '">your new topic</a>.';
}
}
}
}
}
?>
<?php
else
{
?>
<h1>Member Login</h1>
<p>Thanks for visiting! Please either login below, or <a href="register.php">click here to register</a>.</p>
<form method="post" action="index.php" name="loginform" id="loginform">
<fieldset>
<label for="username">Username:</label><input type="text" name="username" id="username" /><br />
<label for="password">Password:</label><input type="password" name="password" id="password" /><br />
<input type="submit" name="login" id="login" value="Login" />
</fieldset>
</form>
<?php
}
?>
</div>
</body>
</html>
这是给出错误的确切部分。
<?php
else
{
?>
<h1>Member Login</h1>
<p>Thanks for visiting! Please either login below, or <a href="register.php">click here to register</a>.</p>
<form method="post" action="index.php" name="loginform" id="loginform">
<fieldset>
<label for="username">Username:</label><input type="text" name="username" id="username" /><br />
<label for="password">Password:</label><input type="password" name="password" id="password" /><br />
<input type="submit" name="login" id="login" value="Login" />
</fieldset>
</form>
<?php
}
?>
什么是确切的错误?哪一行产生错误? –
嘿谢谢你的回应,它是问题中陈述的最后一个陈述。它给了我“期待声明”的错误。不太确定我做错了什么,但是我确实检查了是否错过了之前的任何一行,但似乎找不到任何东西。 :) @GergoErdosi – Balistix
@Balistix你应该在你的问题中发布确切的错误。这不是聊天室。 – JakeGould