我是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
它给我一个页面找不到错误。我没有更多的想法,所以任何人都可以提供帮助。
答案 0 :(得分:0)
使用Slim 3时,您正在以Slim 2方式声明路由。您的应用程序只有一条路径website.com/:email/:password
。因此,您会收到404
错误。
Slim 3使用快速路由,而不是以这种方式指定占位符:
'/:email/:password'
你应该这样声明:
'/{email}/{password}'
您可以在corresponding section of Slim documentation或nikic/fastRoute github repository中详细了解宣布路线的方法。