2016-11-19 19 views
0

私は、PHP + Slimフレームワークを使って安らかなWebサービスを作成しようとしています。ポケモンに関するmongodbデータベースで構成されており、ポケモンに関する情報をクライアントが検索することができます。最初に、検索フィールドを収集し、POSTメソッドでサーバーに送信するHTMLフォームがあります。メソッドが許可されていません。 POST - Slim Framework

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

    $n = $req->getParsedBody(); 

}); 

が、私はエラーを取得プログラムを実行します:

Method not allowed. Must be one of: POST 

ここでは、サーバファイルさ:

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

?> 

ここにHTMLがあるが、サーバーで怒鳴るコードがありますファイル:

<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> 

どうすれば修正できますか?

+0

フォームのHTMLを表示します。 – bcmcfc

+0

チェックアウト、その上にある – roooooon

+0

あなたのフォームは 'servidor.php'に提出されますが、あなたのルートは' $ app-> post( '/' ' – MrCode

答えて

0

問題は、あなたのコードでPOSTメソッドをサーバーに送信し、送信された実際のメソッドがGETであることです。ブラウザのURLバーからサーバーにリクエストしましたか?はいの場合は、指定した方法でデータを編集して再送信します。そうでない場合は、REST APIの開発に適したPostman for Google Chromeをダウンロードしてください。

+0

答えを説明してください –

関連する問題