【发布时间】:2014-12-18 00:16:01
【问题描述】:
我在涉及 isset() 的两个单独页面上遇到相同的错误,但无法弄清楚。 解析错误:语法错误,第 389 行的 login.php 中出现意外的“{” 第 389 行如下所示 我正在尝试连接到数据库并将结果存储在变量中
//----get username/ password values
//if 1
if (isset($_POST['submit']) {
$usernametxt = $_POST['username'] ;
$passwordtxt = $_POST['password'];
$sql = "SELECT username, memberID from members where username = $usernametxt AND password = $passwordtxt";
$res = mysqli_query($dbcnx, $sql);
$dbcnx = mysqli_connect("localhost", "root", "", "PoolSociety");
//if 2
if (mysqli_connect_errno($dbcnx )){
echo "Failed to connect to MySQL: " .mysqli_connect_error();
exit();
}//end if 2
//if 3
if ( !$res ) {
echo('Query failed ' . $sql . ' Error:' . mysqli_error());
exit();
}else{
//if4
if(mysqli_num_rows($res)< 1){
//there are no members
$display_block = "<p><em> No members</em></p>";
}
else
{
$member_info = mysqli_fetch_array($res);
$username = $member_info['username'];
$memberID = $member_info['MemberID'];
$session['username'] = $username;
$session['memberID'] = $memberID;
header("location: localMyPage.php");
} // end if 4
} //End if 3
} //end if 1
?>
在第二页上,如果 isset() 出现相同的解析错误 解析错误:语法错误,第 33 行的 \Register.php 中出现意外的“{”
if(isset($_POST['submit']) //-----<<<<---line 33
echo '<script type="text/javascript">alert("' . $string . '");</script>';
}
【问题讨论】:
-
旁注:
/ /----get不是有效的注释行。通过正确格式化您的代码,您也将受益很大。 -
那不是第 389 行... if (isset($_POST['submit']) {
-
为什么不直接打开错误报告而不是猜测是哪一行导致的。
-
if (isset($_POST['submit'])的两组都缺少右括号。应该是if (isset($_POST['submit']))。后者也缺少一个左大括号 -
并回答您不可避免的下一个问题; 1)这是因为您在建立连接之前正在运行查询,并且 2)您的查询值
$usernametxt和$passwordtxt没有被引用。改用带有绑定参数的prepared statement
标签: php mysql parse-error