我想知道为什么Session
似乎没有保留它的价值,但它实际上打印了它的价值?
我打印出Session
的值,但是当我在另一个选项卡上访问同一页面时,它无法识别它有值。
当页面刷新时Session
变为空...?
另一件事我不确定我在Log Out
按钮中做了什么是正确的
这就是我LogInController.php
<?php
class LogInController extends BaseController {
public function actionLogIn() {
$username = Input::get('username');
$password = Input::get('password');
if(($username == 'batman' and $password == '12345') or ($username == 'robin' and $password == '54321')){
Session::put('username', $username);
return Redirect::route('welcome')
->with('username', $username)
->with('title', 'Welcome!');
}else {
Session::flush();
return Redirect::to('login')
->with('asterisk', 'Invalid username or password')
->with('title', 'Login');
}
}
public function actionLogOut() {
Session::flush();
return View::make('login.formlogin')
->with('title', 'Login');
}
}
这是routes.php
Route::get('/', function()
{ return View::make('hello'); });
Route::get('login', array('as' => 'login', function ()
{ return View::make('login.formlogin')
->with('title', 'Login');
}));
Route::post('login', array('uses'=>'LogInController@actionLogIn'));
Route::get('error', array('uses'=>'LogInController@actionLogOut'));
Route::get('welcome', array('as' => 'welcome', function ()
{ return View::make('login.uservalid'); }));
formlogin.blade.php
@extends('login.login')
@section('content')
<h3>Login</h3>
{{ Form::open(array('method'=>'post')) }}
<div id="asterisk">{{ Session::get('asterisk') }}</div>
{{ Form::label('username', 'Username:') }}
{{ Form::text('username') }}<br/>
{{ Form::label('password', 'Password:') }}
{{ Form::password('password') }}<br/>
{{ Form::submit('Log In') }}
{{ Form::close() }}
@endsection
uservalid.php
@extends('login.layouts')
@section('content')
{{ Form::open(array('method'=>'get')) }}
welcome
{{ Session::get('username') }}
<br/>
{{ Form::submit('Log Out') }}
{{ Form::close(0) }}
@endsection
layouts.blade.php
的 uservalid.blade.php
<html>
<header>
<title></title>
</header>
<body>
@if(Session::has('username'))
@yield('content')
@else
nothing to do here
@endif
</body>
</html>
感谢,
答案 0 :(得分:0)
我添加了
<?php
$username = Session::get('username');
?>
和
{{ Session::flash('username', $username) }}
uservalid.php
中的因此,当刷新页面时,它显示相同的页面(这是正确的),并且当页面在新窗口中打开时,它不会注销或现在不像之前的任何内容
虽然对我来说似乎有点......任何建议/ s?
答案 1 :(得分:0)
真的,您应该使用Auth
类来做这样的事情,你会发现它会为你处理所有与会话相关的身份验证。