Php 无法在Laravel中登录

Php 无法在Laravel中登录,php,forms,laravel-4,Php,Forms,Laravel 4,我已经创建了一个消息传递应用程序。主页包含两个表单。一个用于注册,一个用于登录。两种表单都有不同的相应处理路径。在localhost上,一切正常。用户可以注册,然后登录 今天我在网络服务器上上传了文件。现在它开始显示令牌不匹配错误。我找了很多,但没能解决这个问题 下面是有两种形式的视图(名为login.blade.php) <div id="header"> <center> <div id='loginform'>

我已经创建了一个消息传递应用程序。主页包含两个表单。一个用于注册,一个用于登录。两种表单都有不同的相应处理路径。在localhost上,一切正常。用户可以注册,然后登录

今天我在网络服务器上上传了文件。现在它开始显示令牌不匹配错误。我找了很多,但没能解决这个问题

下面是有两种形式的视图(名为login.blade.php)

<div id="header">
    <center>
    <div id='loginform'>        
        {{ Form::open(array('url' => 'login')) }}
            <div id='login_inputs_div'>
                {{ Form::text('email', Input::old('email'), array('placeholder'=>'Email', 'class'=>'inputs')) }}

                {{ Form::password('password', array('placeholder'=>'Password', 'class'=>'inputs')) }}

                {{ Form::submit('Log In', array('class'=>'submit')) }}
            </div>
            <div id='error_wrapper'>
                <div id='email_error'>{{ $errors->first('email') }}</div>
                <div id='password_error'>{{ $errors->first('password') }}</div>
                <div class='clear'></div>
            </div>
        {{ Form::close() }}
    </div>
    </center>
</div>


<div id="body">
    <div id='registration_alert_div'>
        <center>                                
            @if(Session::has('registration'))
                <div id="registration_alert">   
                    {{ Session::get('registration') }}
                </div>
            @endif              
        </center>
    </div>

    <div id="regform">
        {{  Form::open(array('url' => 'login/register')) }}
            <center><h1>Register To Make Friends</h1></center>
            {{ Form::text('name', Input::old('name'), array('id'=>'name', 'placeholder'=>'Name', 'class'=>'reginputs')) }}
            <span>{{ $errors->first('name') }}</span>

            {{ Form::text('username', Input::old('username'), array('id'=>'username', 'placeholder'=>'Username', 'class'=>'reginputs'))  }}
            <span>{{ $errors->first('username') }}</span>

            {{ Form::password('Password', array('id'=>'password', 'placeholder'=>'Password', 'class'=>'reginputs')) }}
            <span>{{ $errors->first('Password') }}</span>

            {{ Form::text('Email', Input::old('Email'), array('id'=>'email', 'placeholder'=>'Email', 'class'=>'reginputs')) }}
            <span>{{ $errors->first('Email') }}</span>

            {{ Form::text('ConfirmEmail', Input::old('ConfirmEmail'), array('id'=>'cemail', 'placeholder'=>'Confirm Your Email', 'class'=>'reginputs')) }}
            <span>{{ $errors->first('ConfirmEmail') }}</span>

            <center>{{ Form::submit('Register', array('class'=>'submit', 'id'=>'rsubmit')) }}</center>
        {{ Form::close() }}
    </div>
    <div class='clear'></div>
</div>  

我检查了源代码,令牌作为一个输入字段显示,带有一些值。为什么不匹配?

Laravel可能无法在Web服务器中保留会话,每次启动新会话时,它都会创建一个新令牌,这导致最后一个令牌与当前令牌不匹配。一些可能的解决办法:

1) 检查您的Web服务器是否可以写入
app/storage
,而不仅仅是
app/storage/session
,因为该文件夹中的其他文件可能存在问题

2) 例如,将会话驱动程序从文件更改为数据库(您必须创建会话表)

//Route for forms display| showLogin method displays the view(login.route.php)
Route::get('login', array('uses' => 'HomeController@showLogin'));

//Route for processing login form
Route::post('login', array('before'=>'csrf', 'uses' => 'HomeController@doLogin'));

//route for processing registration form
Route::post('login/register', array('before'=> 'csrf', 'uses' => 'HomeController@register'));