Php 使用slim+;细枝,扩展另一个模板的模板不能有主体
我正在用twig和slim创建一个网站,在尝试设置用户身份验证系统时遇到了一些问题 我使用的是标准的LAMP配置(mysql、php5、apache2),还有composer、twig和slim 我阅读了Tour教程,并认为我会做类似的事情,但不知道如何在我的应用程序中实现它。我遇到的问题是Php 使用slim+;细枝,扩展另一个模板的模板不能有主体,php,session,twig,slim,Php,Session,Twig,Slim,我正在用twig和slim创建一个网站,在尝试设置用户身份验证系统时遇到了一些问题 我使用的是标准的LAMP配置(mysql、php5、apache2),还有composer、twig和slim 我阅读了Tour教程,并认为我会做类似的事情,但不知道如何在我的应用程序中实现它。我遇到的问题是php会话部分。到目前为止,我只将php和PDO用于数据库连接(我用AJAX对.php文件进行了POST调用),但现在看来我实际上需要将php代码插入我的twig文件中 所以我试着这样做: {% extend
php会话
部分。到目前为止,我只将php
和PDO
用于数据库连接(我用AJAX
对.php文件进行了POST
调用),但现在看来我实际上需要将php
代码插入我的twig
文件中
所以我试着这样做:
{% extends 'main.twig' %}
<?php
/*** begin our session ***/
session_start();
/*** set a form token ***/
$form_token = md5( uniqid('auth', true) );
/*** set the session form token ***/
$_SESSION['form_token'] = $form_token;
?>
{% block title %}
Sign Up | PTC Testers
{% endblock title %}
{% block stylesheet %}
<link rel="stylesheet" type="text/css" href="css/login.css">
{% endblock stylesheet %}
{% block content %}
<h1>Sign Up</h1>
<form method="post">
<fieldset>
<p>
<label for="email">Email</label>
<input type="text" name="email" value="" maxlength="40" placeholder="john@example.com">
</p>
<p>
<label for="password">Password</label>
<input type="text" name="password" value="" maxlength="20" />
</p>
<p>
<input type="hidden" name="form_token" value="<?php echo $form_token; ?>" />
<input type="submit" value="→ Login" />
</p>
</fieldset>
</form>
{% endblock content %}
{%extends'main.twig%}
{%block title%}
注册| PTC测试人员
{%endblock title%}
{%块样式表%}
{%endblock样式表%}
{%block content%}
注册
电子邮件
密码
发件人:
Slim应用程序不假定任何会话。如果您更喜欢使用PHP会话,则在实例化Slim应用程序之前,必须使用session_start()配置并启动本机PHP会话
此外,您实际上需要的是一个
这意味着在index.php中,您的代码将类似于:
/*** begin our session ***/
session_start();
$app = new \Slim\Slim(array(
'view' => new \Slim\Views\Twig()
));
$csrfTokenGenerator = function () {
$form_token = md5( uniqid('auth', true) );
$_SESSION['form_token'] = $form_token;
};
$app->get('/login', $csrfTokenGenerator, function() use ($app) {
$app->render('login.twig');
})->name('login');
这就是说,Slim已经将此功能作为一个单独的包提供给您,值得一看