Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 方法不允许。必须是其中之一:POST-Slim框架_Php_Mongodb_Web Services_Rest_Slim - Fatal编程技术网

Php 方法不允许。必须是其中之一:POST-Slim框架

Php 方法不允许。必须是其中之一:POST-Slim框架,php,mongodb,web-services,rest,slim,Php,Mongodb,Web Services,Rest,Slim,我正在尝试使用php+slim框架编写一个restful Web服务。它包含在一个口袋妖怪的mongodb数据库中,允许客户端搜索有关口袋妖怪的信息。首先是一个html表单,它收集搜索字段并使用POST方法将其发送到服务器。服务器上的代码如下: $app->post('/', function(Request $req, Response $res){ $n = $req->getParsedBody(); }); 但当我运行程序a时,会出现错误: Method no

我正在尝试使用php+slim框架编写一个restful Web服务。它包含在一个口袋妖怪的mongodb数据库中,允许客户端搜索有关口袋妖怪的信息。首先是一个html表单,它收集搜索字段并使用POST方法将其发送到服务器。服务器上的代码如下:

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

    $n = $req->getParsedBody(); 

});
但当我运行程序a时,会出现错误:

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>

Pokedex
Pesquisar Pokemon por nome:

佩斯奎萨尔口袋妖怪por tipo:


我怎么修理它

问题是您在代码中将POST方法发送到服务器,而实际发送的方法是GET。您是否通过浏览器的URL栏向服务器发出请求?如果是,请使用指定的方法编辑并重新发送数据。如果没有,请下载适用于开发REST API的Google Chrome Postman。

问题是您在代码中将POST方法发送到服务器,而实际发送的方法是GET。您是否通过浏览器的URL栏向服务器发出请求?如果是,请使用指定的方法编辑并重新发送数据。如果没有,请下载适用于开发REST API的Google Chrome Postman。

显示表单的HTML。签出,它就在那里。您的表单提交到
servidor.php
,但您的路径是
$app->post('/'
好,所以我将操作字段更改为action=“/”,它在我提交搜索时工作,但当我单独运行servidor.php时,它仍然会显示消息What is
servidor.php
?您需要定义路由,而不是创建php文件。显示表单的HTML。签出,它就在那里您的表单提交到
servidor.php
,但您的路由是
$app->post(“/”
嗯,所以我把action字段改为action=“/”,当我提交搜索时它会工作,但是当单独运行servidor.php时它仍然显示消息what is
servidor.php
?你需要定义路由而不是创建php文件。解释你的答案解释你的答案