2017-05-11 5 views
1

Ich bin neu mit Slim Framework und derzeit erstelle ich einen Dienst für die Anmeldung und Registrierung mit ihm.PHP Slim-Anwendung wird nicht ausgeführt?

Ich erstellte eine Datenbankdatei in lib für database.php und folgenden Code in diese Datei für ausgewählte Daten für Benutzer.

<?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;  
    } 
} 
?> 

dann habe ich

<?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(); 

?> 
folgenden Code in index.php setzen

und wenn ich versuche, mit dieser URL

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

oder

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

anmelden

es gibt mir eine Seite nicht gefunden Fehler. Ich habe keine Ideen mehr, also kann mir jemand helfen.

+0

lesen Sie bitte über mysql-Injektionen und verwenden Sie vorbereitete Anweisungen oder zumindest Escape-Werte, bevor Sie sie in einer Abfrage verwenden. Auch die Anmeldedaten in der get-URL zu haben, ist eine schlechte Idee. Sie sind möglicherweise in der REFERER-Kopfzeile auf Websites von Drittanbietern sichtbar und werden in Protokollen, Browserverlauf usw. angezeigt. –

+0

Welche Version von Slim verwenden Sie? Sie scheinen Slim 2 und Slim 3 Code zu mischen, die nicht zusammen funktionieren. – meun5

Antwort

0

Sie deklarieren Routen in Slim 2-Weise, während Sie Slim 3 verwenden. Ihre Anwendung hat nur eine Route, die buchstäblich website.com/:email/:password ist. Daher erhalten Sie 404 Fehler.

Schlanke 3 verwendet schnelle Route und statt eines festen Platzhalter auf diese Weise:

'/:email/:password' 

Sie sollten sie auf diese Weise erklären:

'/{email}/{password}' 

Sie können mehr über Möglichkeiten zu erklären Routen lesen corresponding section of Slim documentation oder nikic/fastRoute github repository.

Verwandte Themen