Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP登录脚本返回意外的else_Php_Mysql_Forms_Session_Passwords - Fatal编程技术网

PHP登录脚本返回意外的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'” 我非常需要让它与会话和变量一起工作 有没有人知道我是如何解决这个问题的,这样我就可以添加会话等等

由于新的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();}
谢谢!我整晚都在用这个,但我显然是瞎了。除了你的建议外,我到处都试过。