PHP登录脚本返回意外的else
由于新的PHP版本(PHP7.2),我正在重新设计一个网页,并且必须创建一个新的登录脚本(见下文) 当我输入正确的用户名和密码时,下面的脚本返回OK 但是,当我尝试在$message=“ok”之后(在else之前)添加会话和更多变量时,脚本将停止并返回HTTP错误500。在日志中,它在$message之间的else上显示“PHP Parse error:syntax error,意外的'else'” 我非常需要让它与会话和变量一起工作 有没有人知道我是如何解决这个问题的,这样我就可以添加会话等等,使这个脚本能够继续工作PHP登录脚本返回意外的else,php,mysql,forms,session,passwords,Php,Mysql,Forms,Session,Passwords,由于新的PHP版本(PHP7.2),我正在重新设计一个网页,并且必须创建一个新的登录脚本(见下文) 当我输入正确的用户名和密码时,下面的脚本返回OK 但是,当我尝试在$message=“ok”之后(在else之前)添加会话和更多变量时,脚本将停止并返回HTTP错误500。在日志中,它在$message之间的else上显示“PHP Parse error:syntax error,意外的'else'” 我非常需要让它与会话和变量一起工作 有没有人知道我是如何解决这个问题的,这样我就可以添加会话等等
session_start();
$conn = mysqli_connect("localhost","username","password","database") or die($link);
$message="";
if(!empty($_POST["login"])) {
{
$result = mysqlI_query($conn,"SELECT * FROM logintable WHERE username='" . $_POST["user_name"] . "'");
$row = mysqli_fetch_array($result);
$hashpw = $row['password'];
if(password_verify($_POST["password"],$hashpw))
$message="OK";
else
$message="WRONG";
}
}
if(!empty($_POST["logout"])) {
$_SESSION["user_id"] = "";
session_destroy();
}
代码中的
else
语句缺少花括号,应该是:
if(password_verify($_POST["password"],$hashpw)) {
$message="OK";
} else {
$message="WRONG";
}
第5行和第13行的花括号过多。将其移除后,应:
<?php
session_start();
$conn = mysqli_connect("localhost","username","password","database") or die($link);
$message="";
if(!empty($_POST["login"])) {
$result = mysqlI_query($conn,"SELECT * FROM logintable WHERE username='" . $_POST["user_name"] . "'");
$row = mysqli_fetch_array($result);
$hashpw = $row['password'];
if(password_verify($_POST["password"],$hashpw))
$message="OK";
else
$message="WRONG";
}
if(!empty($_POST["logout"])) {
$_SESSION["user_id"] = "";
session_destroy();
}
或死($link)
都不会起作用,也不会真正起作用。您的代码在这里有一些问题。另外,您可以进行sql注入。请使用正确的语法:if(this){this();}else{that();}
谢谢!我整晚都在用这个,但我显然是瞎了。除了你的建议外,我到处都试过。