为什么会出现此错误?解析错误:语法错误,意外T_ELSE
我正在让一个系统来更改我的密码,我不知道为什么我得到这个错误。 我有这样的错误消息:为什么会出现此错误?解析错误:语法错误,意外T_ELSE
Parse error: syntax error, unexpected T_ELSE in /home/zenonhos/public_html/system/changepass.php on line 37
<?php
session_start();
$user = $_SESSION['username'];
if ($user)
{
if ($_POST['submit'])
{
$oldpassword = md5($_POST['oldpassword']);
$newpassword = md5($_POST['newpassword']);
$repeatnewpassword = md5($_POST['repeatnewpassword']);
$connect = mysql_connect("*******","******","*****");
mysql_select_db("zenonhos_lr");
$queryget = mysql_query("SELECT `password` FROM `users` WHERE username='$user'") or die();
$row = mysql_fetch_assoc($queryget);
$oldpassworddb = $row['password'];
if ($oldpassword==$oldpassworddb)
{
if ($newpassword == "") {
echo "Password cannot be blank";
} else {
if ($newpassword==$repeatnewpassword)
{
$querychange = mysql_query("UPDATE `users` SET password='$newpassword' WHERE username='$user'");
session_destroy();
die("Password successfully changed! <a href='index.php'>Return to home page</a>");
} else {
die("New passwords do not match");
} else {
die("Old password does not match");
} echo "<form action='changepass.php' method='POST'>
Old Password: <input type='password' name='oldpassword'><br>
New Password: <input type='password' name='newpassword'><br>
Repeat New Password: <input type='password' name='repeatnewpassword'><br>
<input type='submit' name='submit' value='Change Password'>";
} else {
die("You must be logged in to view this page.");
}
?>
你错过了树}
,并有两个sintax错误,因为两个else
。以下是您的代码更新。
$user = $_SESSION['username'];
if ($user)
{
if ($_POST['submit'])
{
$oldpassword = md5($_POST['oldpassword']);
$newpassword = md5($_POST['newpassword']);
$repeatnewpassword = md5($_POST['repeatnewpassword']);
$connect = mysql_connect("*******","******","*****");
mysql_select_db("zenonhos_lr");
$queryget = mysql_query("SELECT `password` FROM `users` WHERE username='$user'") or die();
$row = mysql_fetch_assoc($queryget);
$oldpassworddb = $row['password'];
if ($oldpassword==$oldpassworddb)
{
if ($newpassword == "")
{
echo "Password cannot be blank";
}
else
{
if ($newpassword==$repeatnewpassword)
{
$querychange = mysql_query("UPDATE `users` SET password='$newpassword' WHERE username='$user'");
session_destroy();
die("Password successfully changed! <a href='index.php'>Return to home page</a>");
}
else
{
die("Old password does not match");
}
}
}
}
}
echo "
<form action='changepass.php' method='POST'>
Old Password: <input type='password' name='oldpassword'><br>
New Password: <input type='password' name='newpassword'><br>
Repeat New Password: <input type='password' name='repeatnewpassword'><br>
<input type='submit' name='submit' value='Change Password'>";
?>
这仍然不起作用,只是给了我一个更低的线路上的错误 – 2012-07-07 06:03:08
@JonathanSmith,请再次复制并粘贴代码,我做了一些更改。如果你得到错误,把它们放在这里。 – 2012-07-07 06:06:28
现在它甚至没有显示窗体,也没有错误 – 2012-07-07 06:09:30
您还没有关闭这个if语句的括号:
if ($user)
{
if ($_POST['submit'])
{
if ($oldpassword==$oldpassworddb)
{
为了解决这个问题,只是在年底将有} } }
它们关闭的源代码。
此外,我建议您强烈阅读this。
请阅读:http://en.wikipedia.org/wiki/Indentation – Jack 2012-07-07 05:48:53
嗯你可以使用2个连续的? “else else {”New passwords do not match“); } else {” – 2012-07-07 05:53:12
@Shadow_boi是正确的,我认为(你应该提交作为答案:-) – 2012-07-07 06:00:37