Php 使用silex发布值(表单提交)

Php 使用silex发布值(表单提交),php,forms,post,silex,Php,Forms,Post,Silex,我是新来的Silex,我真的搞砸了。 我正在尝试做一个简单的登录表单,但我不知道如何正确处理我的表单提交的帖子 我知道我必须在我的Silex索引中设置一些东西,但我不知道怎么做。基本上,我想要的是能够使用表单的post值做一些事情。这是我的实际代码: <?php require_once __DIR__.'/protected/vendor/autoload.php'; use Herrera\Template\TemplateServiceProvider; use Silex\App

我是新来的Silex,我真的搞砸了。
我正在尝试做一个简单的登录表单,但我不知道如何正确处理我的表单提交的帖子

我知道我必须在我的Silex索引中设置一些东西,但我不知道怎么做。基本上,我想要的是能够使用表单的post值做一些事情。这是我的实际代码:

<?php
require_once __DIR__.'/protected/vendor/autoload.php';

use Herrera\Template\TemplateServiceProvider;
use Silex\Application;
use Symfony\Component\Yaml\Parser;
use Phinx\Db\Adapter;


$parser = new Parser();
$config = $parser->parse(file_get_contents(__DIR__ .DIRECTORY_SEPARATOR.'protected'.DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR . 'main.yml'));

$app = new Application();

$app->register(new TemplateServiceProvider(), array('template.dir' => __DIR__ . '/protected/views/'));

/** @var Herrera\Template\Engine $engine */
$engine = $app['template.engine'];

$app->get('/admin', function() use($engine, $config) {
    return $engine->render('admin.php', array(
        'static_url' => $config['static_url'],
        'title'  => 'Admin'
    ), true);
});

$app->run();
?>

还有,我的admin.php文件(表单所在位置)是一个简单的html表单。
我一直在寻找答案,但我没有找到任何我能理解/做的

希望你能帮助我

谢谢

您应该创建一个提交表单后使用的
POST
路线。然后访问
请求
对象中的表单值。例如:

$app->post('/admin', function (Request $request) {
    $login = $request->get('login');
    $password = $request->get('password');

    // Further processing
});

查看文档:

登录表单张贴到哪里?你如何处理这条路?您应该将其添加到路由器中,或者添加代码(如果已经添加)exists@NikosM. 好的,我只想把这个post值发送到某个地方,在那里我可以将它发送到db,就像我使用原始php的普通表单所做的那样。是否可以将它们发送到表单所在的同一个文件(admin.php)??谢谢您不应该将数据发送到同一个文件,因为您应该有一个清晰的代码分隔。表单是视图的一部分,但是表单的处理应该在控制器中完成(作为类中的clousure、函数或方法)。我想你可能想看看Fabien Povertier(Symfony的创始人和Silex的合著者)关于OK的精彩系列,谢谢!我用它来调用我的UserDAO类并向数据库中添加一个用户:,但它不起作用。。。是我用错了什么?谢谢确保使用正确的URL提交表单。简单的解决方案,因为代码中的post和get路由使用相同的路径:将表单的action属性设置为空,如
action=”“
。我已经检查了表单的action标记,它是空的。简单地说,当我提交表单时,会显示一个空白页。。。你想让我把我的其他文件寄给你吗?谢谢好的,我已经在我的用户类中做了一些更改,现在它可以很好地与数据库一起工作,但是当提交表单并运行表单后的代码时,它会向我显示500个错误代码。尽管如此,代码(用户注册)运行成功,因为我可以在数据库中看到我添加的内容。我是否必须忽略这500个错误代码,只是在表单后面的某个地方重定向?还有,如果我必须这么做,我该怎么做?是否仅使用标题(位置)?谢谢好吧对不起,我有三条评论。。。但是我找到了重定向($app->redirect()),但是500个错误代码在那里。。。我只是用重定向来隐藏它。这不好吗?谢谢