Silex在表单提交上产生405个错误

时间:2013-05-02 09:54:29

标签: php html symfony silex

我正在尝试使用Silex在网站上制作表单,但是当我发布数据时,它会给我一个405错误。我没有使用Silex表单生成器。只是HTML。 Silex中是否存在阻止POST数据的设置? GET工作正常。

HTML:

<form name='login' action='' method='POST'>
    Username: <input type='text' name='user' value=''><br />
    Password: <input type='password' name='pass' value=''><br />
    <input type='submit' name='submit' value='Submit'>
</form>

1 个答案:

答案 0 :(得分:0)

HTTP的405状态代码意味着方法不允许,在您的情况下,这意味着您已为该网址定义了路由,但它不接受发布请求。这可能是这样的:

$app->get("/myform", function () use ($app) {});

即使网址本身匹配,除了GET之外什么都不匹配,其他一切都会产生405.你有两个选择:

  1. 使用$app->post()
  2. 创建一个POST控制器
  3. 创建一个同时接受$app->match()
  4. 的控制器

    如果沿着第二条路走下去,我推荐以下模式:

    $app->match("/myform", function (Request) use ($app) {
        if ($request->isMethod("post")) {
            // process post data
        }
    });