2017-05-11 77 views
1

我是Slim框架的新成員,目前我正在爲它創建登錄和註冊服務。PHP 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(); 

?> 

,當我嘗試用這個URL

http://localhost/slim/[email protected]/11111

http://localhost/slim/index.php/[email protected]/11111

登錄

它給了我一個頁面未找到錯誤。我沒有更多的想法,任何人都可以幫忙。

+0

請閱讀有關mysql注入並使用準備好的語句或至少轉義值之前在查詢中使用它們。在get url中也有登錄憑據是一個壞主意。他們可能會在第三方網站的REFERER頭部中顯示,並會顯示在日誌,瀏覽器歷史記錄等中 –

+0

您使用的是哪個版本的slim?您似乎將混合Slim 2和Slim 3代碼混合在一起。 – meun5

回答

0

在使用Slim 3時,您使用Slim 2方式聲明路線。您的應用程序只有一條路線,實際上是website.com/:email/:password。因此你得到404錯誤。

苗條3採用這種方式快速幹線和,而不是指定的佔位符:

'/:email/:password' 

應聲明它們是這樣的:

'/{email}/{password}' 

你可以閱讀更多關於corresponding section of Slim documentation宣佈路線的方法或nikic/fastRoute github repository