【问题标题】:Session files laravel 5.1.7 Not writable会话文件 laravel 5.1.7 不可写
【发布时间】:2015-08-26 00:30:08
【问题描述】:

我的会话文件不可写

我创建 chmod -R 777 存储/框架/会话,但每个请求都创建一个会话文件。

我使用 PHP 5.5.26 的 1&1 共享服务器

app.blade.php

<?php
    $encrypter = app('Illuminate\Encryption\Encrypter');
    $encrypted_token = $encrypter->encrypt(csrf_token());
?>
<meta name="csrf-token" content="{{<?php echo $encrypted_token ?>}}">

main.js

 $.ajaxSetup({
        headers: { 'X-CSRF-TOKEN' : $('meta[name=csrf-token]').attr('content') }
    });

login.blade.php

@section('loginForm')
{!! Form::open(['route'=>'login', 'role' => 'form', 'name' => 'loginForm', 'id'=>'loginForm', 'data-toggle' => 'validator', 'class' => 'form-horizontal' ]) !!}
<div class="form-group has-feedback">
    <label for="email" class="col-sm-2 control-label hidepola">Email</label>
    <div class="col-sm-10">
        <input class="form-control" data-error="El correo de seguir esta forma ejemplo.correo@dominio.com" pattern="^[_a-z0-9]+(\.[_a-z0-9]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$" type="email" name="email" placeholder="Correo" required>
        <div class="help-block with-errors" ></div>
    </div>
</div>
<div class="form-group has-feedback">
    <label for="password" class="col-sm-2 control-label hidepola">Contraseña</label>
    <div class="col-sm-10">
      <input data-minlength-error="Minimo son 6 caracteres" data-minlength="6" maxlength="16" class="form-control" type="password" name="password" placeholder="Contraseña" required>
      <div class="help-block with-errors"></div>
    </div>
</div>
<div class="form-group">
    <div class="col-sm-offset-2 col-sm-10 col-xs-12">
      <div class="checkbox" id="ingresa">
        <label>
          <input type="checkbox"> Recordarme
          <a href="{{ URL::route('recoverView') }}">¿Olvidaste tu Contraseña?</a>
        </label>
      </div>
    </div>
</div>
<div class="form-group">
    <div class="col-sm-offset-2 col-sm-10">
      {!! Form::submit('Iniciar Sesion',['class' => 'btn btn-primary']) !!}
    </div>
</div>
{!! Form::close() !!}

@停止

授权控制器

if (Auth::attempt(['email' => $data['email'], 'password' => $data['password'], 'is_active' => 1],$request->has('remember'))) {

            return response()->json([
                'success' => [
                    'message' => 'Login User'
                ]
            ], 200);

        }

我的仓库是here 非常感谢

【问题讨论】:

  • 更多输入!它们不是 PHP 可写的吗?
  • 我是这么认为的,因为在我的本地环境中工作正常,并且我在会话文件上创建了 ls -l 输出是 -rw----r--
  • 使用APC或COOKIE驱动不是比FILE更好吗?

标签: php laravel laravel-5.1


【解决方案1】:

在远程服务器清理会话文件夹中,然后授予文件夹 777 权限。

但我建议您将会话驱动程序更改为:

  1. APC('驱动程序' => 'apc')



  2. COOKIE ('driver' => 'cookie')

在 config/session.php 文件中
并在使用 COOKIE 驱动程序时启用加密 ('encrypt' => true)

我们知道会话 id 存储在 cookie 中,那么为什么不将整个会话数据保存在 cookie 中并对其进行加密呢?

【讨论】:

  • 抱歉问题仍然存在我更改了存储会话的方法,但令牌 CSRF 和会话令牌不同,我无法验证用户,我在标题中的请求 ajax 中发送令牌
  • 你能删除 CSRF 中间件吗?你有必要使用 CSRF 令牌吗?
  • 如果删除 CSRF 通过身份验证但页面之间没有会话存储
  • 奇怪...“我在标头中的请求 ajax 中发送了令牌”-您可以更新您的答案并添加执行身份验证例程的控制器和具有身份验证表单的视图吗?
【解决方案2】:

我使用记事本 ++ 将我的 layout.blade.file 保存为 UTF8 而没有 BOM

我使用会话驱动文件。

我使用this 链接。

【讨论】:

    猜你喜欢
    • 2020-09-20
    • 2015-02-07
    • 1970-01-01
    • 2016-02-29
    • 2016-05-24
    • 1970-01-01
    • 2019-12-10
    • 1970-01-01
    • 2019-10-01
    相关资源
    最近更新 更多