0

我想知道为什么它Session似乎并没有保持它的价值,但它实际上打印了它的价值?我打印出 the 的值,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>

谢谢,

4

2 回答 2

0

我添加了

<?php
$username = Session::get('username');
?>

{{ Session::flash('username', $username) }}

因此,当刷新页面时,uservalid.php 它会显示相同的页面(这是正确的),并且当页面在新窗口中打开时,它不会注销或现在与以前不同

不过,这对我来说似乎有点不确定.. 有什么建议吗?

于 2013-09-03T04:49:53.587 回答
0

真的,您可能应该将这个Auth类用于这样的事情,您会发现它会为您处理所有与会话相关的身份验证内容。

于 2013-09-03T07:56:36.887 回答