PHP文件意外结束,在jwt登录页面中

PHP文件意外结束,在jwt登录页面中,php,unexpectendoffile,Php,Unexpectendoffile,我不明白为什么给我一个错误,在代码的最后一行显示文件的意外en 我试过带还是不带?>但改变错误,不管怎样都不起作用有人能帮我吗 是一个jwt页面登录,我使用slimapp框架。 当我使用用户名和密码进行电话留言时 这是我的错误: 分析错误:语法错误,第74行的C:\xampp\htdocs\slimapp\src\routes\login.php中出现意外的“?>” 我编辑您的代码。您忘了添加})在结束脚本中: <?php use \Psr\Http\Message\ServerRequ

我不明白为什么给我一个错误,在代码的最后一行显示文件的意外en

我试过带还是不带?>但改变错误,不管怎样都不起作用有人能帮我吗

是一个jwt页面登录,我使用slimapp框架。 当我使用用户名和密码进行电话留言时

这是我的错误:
分析错误:语法错误,第74行的C:\xampp\htdocs\slimapp\src\routes\login.php中出现意外的“?>”


我编辑您的代码。您忘了添加
})在结束脚本中:

<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, DELETE, PUT, PATCH, OPTIONS');
header('Access-Control-Allow-Headers: token, Content-Type');


$app = new \Slim\App;


$app->post("/authenticate", function(Request $request, Response $response){
    $username= $request->getParam('username');
    $password= $request->getParam('password');
    $table_name = 't_users';


    $sql ="SELECT id, first_name, last_name, password FROM " . $table_name . " WHERE username = ? LIMIT 0,1";

    $db = new db();
    $db=$db->connect();

    $stmt = $conn->prepare( $sql );
    $stmt->bindParam(1, $username);
    $stmt->execute();
    $num = $stmt->rowCount();

    if($num > 0){
        $row = $stmt->fetch(PDO::FETCH_ASSOC);
        $id = $row['id'];
        $username = $row['username'];
        $roles = $row['roles'];
        $password2 = $row['password'];

        if(password_verify($password, $password2))
        {
            $secret_key = "javainuse";
            $issuer_claim = "LATAVOLAITALIANA"; // this can be the servername
            $audience_claim = "THE_AUDIENCE";
            $issuedat_claim = time(); // issued at
            $notbefore_claim = $issuedat_claim + 10; //not before in seconds
            $expire_claim = $issuedat_claim + 60; // expire time in seconds
            $token = array(
                "iss" => $issuer_claim,
                "aud" => $audience_claim,
                "iat" => $issuedat_claim,
                "nbf" => $notbefore_claim,
                "exp" => $expire_claim,
                "data" => array(
                    "id" => $id,
                    "username" => $username,
                    "roles" => $roles,
                    "email" => $email
                ));

            http_response_code(200);

            $jwt = JWT::encode($token, $secret_key);
            echo json_encode(
                array(
                    "message" => "Successful login.",
                    "jwt" => $jwt,
                    "email" => $email,
                    "expireAt" => $expire_claim
                ));
        }
        else{

            http_response_code(401);
            echo json_encode(array("message" => "Login failed.", "password" => $password));
        }
    }
}); // edit
    ?>

您缺少
->post
函数的右括号
<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, DELETE, PUT, PATCH, OPTIONS');
header('Access-Control-Allow-Headers: token, Content-Type');


$app = new \Slim\App;


$app->post("/authenticate", function(Request $request, Response $response){
    $username= $request->getParam('username');
    $password= $request->getParam('password');
    $table_name = 't_users';


    $sql ="SELECT id, first_name, last_name, password FROM " . $table_name . " WHERE username = ? LIMIT 0,1";

    $db = new db();
    $db=$db->connect();

    $stmt = $conn->prepare( $sql );
    $stmt->bindParam(1, $username);
    $stmt->execute();
    $num = $stmt->rowCount();

    if($num > 0){
        $row = $stmt->fetch(PDO::FETCH_ASSOC);
        $id = $row['id'];
        $username = $row['username'];
        $roles = $row['roles'];
        $password2 = $row['password'];

        if(password_verify($password, $password2))
        {
            $secret_key = "javainuse";
            $issuer_claim = "LATAVOLAITALIANA"; // this can be the servername
            $audience_claim = "THE_AUDIENCE";
            $issuedat_claim = time(); // issued at
            $notbefore_claim = $issuedat_claim + 10; //not before in seconds
            $expire_claim = $issuedat_claim + 60; // expire time in seconds
            $token = array(
                "iss" => $issuer_claim,
                "aud" => $audience_claim,
                "iat" => $issuedat_claim,
                "nbf" => $notbefore_claim,
                "exp" => $expire_claim,
                "data" => array(
                    "id" => $id,
                    "username" => $username,
                    "roles" => $roles,
                    "email" => $email
                ));

            http_response_code(200);

            $jwt = JWT::encode($token, $secret_key);
            echo json_encode(
                array(
                    "message" => "Successful login.",
                    "jwt" => $jwt,
                    "email" => $email,
                    "expireAt" => $expire_claim
                ));
        }
        else{

            http_response_code(401);
            echo json_encode(array("message" => "Login failed.", "password" => $password));
        }
    }
}); // edit
    ?>