2017-05-11 1 views
1

저는 Slim 프레임 워크에 익숙하지 않고 현재 로그인 및 등록 서비스를 만들고 있습니다.PHP 슬림 애플리케이션이 실행되지 않습니까?

나는 database.php에 대한 lib 디렉토리에 데이터베이스 파일을 만들고 다음 파일을이 파일에 넣어 사용자를위한 선택 데이터로 만들었습니다.

<?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 헤더에 제 3 자 웹 사이트에 표시 될 수 있으며 로그, 브라우저 기록 등에 나타날 수 있습니다. –

+0

어떤 버전의 슬림을 사용하고 있습니까? 함께 작동하지 않는 Slim 2 및 Slim 3 코드를 혼합 한 것처럼 보입니다. – meun5

답변

0

Slim 3을 사용하는 동안 Slim 2 방식으로 경로를 선언하고 있습니다. 응용 프로그램에는 문자 그대로 website.com/:email/:password이라는 경로가 하나만 있습니다. 따라서 404 오류가 발생합니다. 당신은 corresponding section of Slim documentation에서 선언 경로의 방법에 대한 자세한 내용을보실 수 있습니다

'/{email}/{password}' 

:

'/:email/:password' 

당신이 그들에게 이런 식으로 선언해야합니다

슬림 3는이 방식으로 빠른 경로 대신의 지정 자리 표시자를 사용 또는 nikic/fastRoute github repository.

관련 문제