2016-11-19 1 views
0

Ich versuche einen erholsamen Webservice mit php + slim framework zu schreiben. Es besteht aus einer mongodb-Datenbank von Pokemons, die es den Kunden ermöglicht, Informationen über Pokemons zu suchen. Zuerst gibt es ein HTML-Formular, das die Suchfelder sammelt und es mit der POST-Methode an den Server sendet. Auf dem Server gibt es den Code unten:Methode nicht erlaubt. Muss einer sein von: POST - Slim Framework

$app->post('/', function(Request $req, Response $res){ 

    $n = $req->getParsedBody(); 

}); 

aber wenn ich das Programm ausführen eine bekommt die Fehler:

Method not allowed. Must be one of: POST 

hier ist die Server-Datei:

<?php 


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

require 'vendor/autoload.php'; 

$con = new MongoClient("mongodb://localhost:27017"); 
$db = $con->pokemon; 
$colec = $db->pokemon; 

$app = new \Slim\App; 

// $app->get('/', function($campo) { 

// echo $campo."<br>"; 


    // }); 


$app->post('/', function(Request $req, Response $res){ 

    $n = $req->getParsedBody(); 

}); 


$app->run(); 

?> 

hier ist die html Datei:

<html> 
<head> 
    <title>Pokedex</title> 
</head> 
<body> 

<link rel="stylesheet" type="text/css" href="estilo.css"> 
<img id="img" src="../Pokemon/img/pkm.png"/> 

<div id="primeiraDiv"> 
    <form id="formulario1" action="servidor.php" method="POST"> 
     <p>Pesquisar Pokemon por nome:</p> 
     <input type="text" name="nome" id="nome"> 
     <input type="submit" name="botao" id="botao" value="buscar"> 
    </form> 
</div> 

<div id="segundaDiv"> 
    <form action="servidor.php" method="POST" name="formulario2"> 
     <p>Pesquisar Pokemon por tipo:</p> 
     <input type="text" name="tipo" id="tipo"> 
     <input type="submit" name="botao" id="botao" value="buscar"> 
    </form> 
</div> 

<div id="terceiraDiv"> 
    <form action="servidor.php" method="POST" name="formulario3"> 
     <input type="submit" id="listar" nome="listar" value="Listar Todos Pokemons"> 
    </form> 
</div> 

Wie repariere ich es?

+0

Zeigen Sie den HTML-Code für das Formular an. – bcmcfc

+0

check out, es ist da oben – roooooon

+0

Ihre Formulare an 'servidor.php' senden, aber Ihre Route ist' $ app-> post ('/' ' – MrCode

Antwort

0

Das Problem ist, dass Sie die POST-Methode an den Server in Ihrem Code gesendet haben und die tatsächliche Methode, die gesendet wurde, ist GET. Haben Sie den Server über die URL-Leiste des Browsers angefordert? Wenn ja, bearbeiten und senden Sie Daten mit Ihrer angegebenen Methode erneut. Wenn nicht, laden Sie Postman für Google Chrome herunter, das für die Entwicklung der REST-API geeignet ist.

+0

Erkläre deine Antwort –

Verwandte Themen