这是我的错误:
解析错误:语法错误,意外“连接”(T_STRING),期待','或';'在第13行的/home/ubuntu/workspace/login.php
代码:
<?php
// establishing the MySQLi connection
$con = mysqli_connect(“localhost”,”root”,””,”members”);
if (mysqli_connect_errno()) {
echo “MySQLi Connection was not established:” .mysqli_connect_error();
}
// checking the user
if(isset($_POST[‘login’])) {
$email = mysqli_real_escape_string($con,$_POST[’email’]);
$pass = mysqli_real_escape_string($con,$_POST[‘pass’]);
$sel_user = "select * from members where user_email='$email AND user_password='$pass'";
$run_user = mysqli_query($con, $sel_user);
$check_user = mysqli_num_rows($run_user);
if($check_user > 0) {
$_SESSION[‘user_email’] = $email;
echo “<script>window.open(‘home.php’,’_self’)</script>”;
} else {
echo “<script>alert(‘Email or password is not correct, try again!’)</script>”;
}
}
?>
答案 0 :(得分:4)
看起来您使用的是斜引号(“
和‘
),而不是直引号("
和'
)。修改PHP要求的那些,你会没事的。这通常是使用不适当的编辑器(例如文字处理包)的结果;例如,Microsoft Word使用名为“智能引号”的功能替换带有斜引号的直引号。
请注意,双引号和单引号在PHP中的行为略有不同。使用单引号时,不同之处在于它们不理解控制字符(例如\n
)并且它们不插入内联变量。
顺便说一下,你有两个问题:
$sel_user = "select * from members where user_email='$email AND user_password='$pass'";
双方都没有引用您的电子邮件字符串,因此会导致SQL错误。此外,您将以明文形式存储密码 - 它们应该进行散列和加盐。有关如何以安全的方式执行此操作,请参阅PHP手册。