PHP slim应用程序没有运行?

时间:2017-05-11 09:35:33

标签: php mysql slim slim-3

我是Slim框架的新手,目前我正在创建一个登录和注册服务。

我在lib中为database.php创建了一个数据库文件,并将以下代码放在该文件中以供用户选择数据。

<?php 
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

require 'lib/mysql.php';

class DatabseLayer{
    public function __constructor(){

    }


     public function isUserExist($email, $password){
        $dbObject = new DbConnect();
        $sql = "Select * from users where email = $email and password = $password limit 1";
        $result = mysqli_query($dbObject->getDb(), $sql);
        if(count($result) > 0){
            return true;
        }
        return false;       
    }
}
?>

然后我将以下代码放在index.php文件中

<?php
error_reporting(E_ALL);

use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

require 'vendor/autoload.php';
//require 'lib/mysql.php';


require 'lib/database.php';


$app = new \Slim\App;

$app->get('/:email/:password', function($email, $password){

    $password = md5($password);

    $databaseObject = new DatabaseLayer();
    $isRegistered = $databaseObject->isUserExist($email, $password);

    $app = SlimSlim::getInstance();

    if($isRegistered){
        $app->response->setStatus('200');   
        $app->response->headers->set('Content_Type', 'application/json');   
        echo json_encode(Array('isLogin' => '1'));

    }else{
        echo json_encode(Array('isLogin' => '0'));
    }

});


$app->run();

?>

当我尝试使用此网址登录时

http://localhost/slim/test@test.com/11111

http://localhost/slim/index.php/test@test.com/11111

它给我一个页面找不到错误。我没有更多的想法,所以任何人都可以提供帮助。

1 个答案:

答案 0 :(得分:0)

使用Slim 3时,您正在以Slim 2方式声明路由。您的应用程序只有一条路径website.com/:email/:password。因此,您会收到404错误。

Slim 3使用快速路由,而不是以这种方式指定占位符:

'/:email/:password'

你应该这样声明:

'/{email}/{password}'

您可以在corresponding section of Slim documentationnikic/fastRoute github repository中详细了解宣布路线的方法。