【问题标题】:Laravel session doesn't start only on index(landing) pageLaravel 会话不仅仅在索引(登陆)页面上开始
【发布时间】:2014-07-24 12:02:48
【问题描述】:

我在索引页上有一个表格。当我新访问页面(清除所有 cookie)时,浏览器上的会话 cookie 未设置。它只发生在索引页面上。抛出的错误是令牌不匹配。

注意-我在表单中有表单令牌代码,抛出的错误是由于会话引起的。

有什么解决办法吗?谢谢

路线

Route::get('/',array('uses'=>'RootController@getIndex','as'=>'index'));

Route::group(array('before'=>'guest'),function(){
    Route::get('/account/create', array('uses' => 'AccountController@getCreate', 'as' => 'account_create' ));
    Route::get('/account/activate/{activation_code}', array('uses' => 'AccountController@getActivate', 'as' => 'account_activate' ));
    Route::get('/account/login', array('uses' => 'AccountController@getLogin', 'as' => 'login' ));
    Route::get('/account/forgot_password', array('uses' => 'AccountController@getForgotPassword', 'as' => 'forgot_password' ));
    Route::get('/account/recover/{activation_code}', array('uses' => 'AccountController@getRecover', 'as' => 'recover_account' ));

/*
CSRF Protection Group
*/
Route::group(array('before'=>'csrf'),function(){
    Route::post('/account/create', array('uses' => 'AccountController@postCreate'));
    Route::post('/account/login', array('uses' => 'AccountController@postLogin'));
    Route::post('/account/forgot_password', array('uses' => 'AccountController@postForgotPassword'));
    });

});

查看

{{ Form::open(array('action'=>'AccountController@postLogin','id'=>'sign-loginform','role'=>'form','class'=>'form-horizontal')) }}

{{ Form::token() }}

<div style="margin-bottom: 25px" class="input-group">
  <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
  <input id="login-username" type="text" class="form-control" name="email" value="" placeholder="Email">                                        
</div>

<div style="margin-bottom: 25px" class="input-group">
   <span class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></span>
   <input id="login-password" type="password" class="form-control" name="password" placeholder="password">
</div>


<div style="margin-top:10px" class="form-group">
   <div class="col-sm-12 controls">
       <button id="submit_button" name="submit_button" class="btn btn-primary">Login</button>
       <a id="btn-fblogin" href="{{ URL::route('account_create') }}" class="btn btn-success">Register</a>
    </div>
</div>


{{ Form::close() }}

控制器

public function getIndex(){
    return View::make('root.index')
        ->with('page','index');
}`

【问题讨论】:

  • 你能给我们看一些代码吗?
  • @MohammadWalid 代码已添加感谢您的回复
  • 你的会话驱动是什么?
  • 数据库。我也试过这个文件。都没有用

标签: php session laravel


【解决方案1】:

要小心,因为:

{{Form::open()}}

创建表单的开始标签、操作、方法和表单的属性,但还在开始标签关闭后添加一个隐藏的标记字段。

{{Form::token()}}

只创建隐藏的令牌输入字段。

猜猜看,你创建了两次 csrf 令牌。

【讨论】:

    猜你喜欢
    • 2013-12-27
    • 1970-01-01
    • 1970-01-01
    • 2016-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-21
    相关资源
    最近更新 更多