我刚刚发现Laravel 5可能输出敏感数据并可能导致许多主机的进一步利用:
https://www.google.com/search?q=intext%3ADB_PASSWORD+ext%3Aenv&gws_rd=ssl
我想知道保护.env文件的方法.我可以在.htaccess文件中使用以下代码来保护我的.env文件免受浏览器查看吗?
# Protect .env
<Files .env>
Order Allow,Deny
Deny from all
</Files>
Run Code Online (Sandbox Code Playgroud)
我上面的代码会.htaccess工作并保护我的.env文件吗?
底线:
如何在会话超时时注销用户?
详细问题:
我有一个 Laravel 5.6.* 应用程序,该项目要求用户在空闲时注销。我已经尝试过这里给出的解决方案,但没有一个对我有用。
然后我偶然发现了这篇文章: https://laravel-tricks.com/tricks/session-timeout-for-logged-in-user并通过它但没有成功。
我想要的是:
会话超时时自动注销用户。注销之前,请在表上设置is_logged_in属性。我该如何实现这一目标?false0Users
到目前为止我尝试过的代码:
session.php
/*
|--------------------------------------------------------------------------
| Session Lifetime
|--------------------------------------------------------------------------
|
| Here you may specify the number of minutes that you wish the session
| to be allowed to remain idle before it expires. If you want them
| to immediately expire on the browser closing, set that option.
|
*/
'lifetime' => env('SESSION_LIFETIME', 120),
'expire_on_close' => false,
Run Code Online (Sandbox Code Playgroud)
SessionTimeOut.php中间件
<?php
namespace App\Http\Middleware;
use …Run Code Online (Sandbox Code Playgroud) 我有2张桌子
制品
和类别

(CatParentId 0是父类别).
我想要实现的是当用户点击父类别时,它应该获取该类别中列出的产品以及它的子类别产品,如果用户点击任何子类别,它应该只获取那些产品列在儿童类别中.
这是我到目前为止使用的完整代码,但没有成功:
<section class="col-lg-9 col-md-9 col-sm-9">
<?php
$catId = $catName = $n = "";
$id = 0;
require_once 'Classes/class.Validation.php';
$validate = new Validation();
if ( isset( $_GET['name'] ) && $_GET['name'] != "" ) {
$catName = $_GET['name'];
$u = "SELECT CatId, CatName, CatParentId FROM categories WHERE CatName = '".$catName."'";
$validate->Query($u);
if ($validate->NumRows() >= 1) {
while ($rows = $validate->FetchAllDatas()) {
$id = $rows['CatId'];
$n = $rows['CatName'];
$query = "SELECT
c.CatName,
p.ProdCode,
p.ProdName
FROM
products p, …Run Code Online (Sandbox Code Playgroud) 我想使用ajax删除记录.
视图
@foreach( $products as $product )
<tr>
<td>{{ $product->code }}</td>
<td>{{ $product->name }}</td>
<td>{{ $product->display }}</td>
<?php $time = date('d M, Y h:i:s A', strtotime($product->created_at)); ?>
<td>{{ $time }}</td>
<td>
<a href="{{ url('/admin/products/' . $product->id . '/edit') }}" class="links-dark edits pull-left">
<i class="fa fa-edit fa-lg"></i>
</a>
<div id="deleteTheProduct">
{!! Form::open(['method' => 'DELETE', 'id' => 'formDeleteProduct', 'action' => ['AdminProductsController@destroy', $product->id]]) !!}
{!! Form::button( '<i class="fa fa-trash fa-lg"></i>', ['type' => 'submit', 'class' => 'delete text-danger deleteProduct','id' => 'btnDeleteProduct', 'data-id' => $product->id …Run Code Online (Sandbox Code Playgroud) 我想将 ckeditortextarea字段中编写的 html 内容存储在我products使用 AJAX调用的数据库表中。
一切都被成功插入和/或更新,留下产品描述。
product_edit.blade.php
{!! Form::open(['files' => 'true', 'autocomplete' => 'off', 'name' => 'formEditProductGeneralInfo', 'id' => 'formEditProductGeneralInfo']) !!}
<div class="form-group">
{!! Form::label('code', 'Code:') !!}
{!! Form::text('code', $product->code, ['class' => 'form-control input-sm']) !!}
</div>
<div class="form-group">
{!! Form::label('name', 'Name:') !!}
{!! Form::text('name', $product->name, ['class' => 'form-control input-sm']) !!}
</div>
<div class="form-group">
{!! Form::label('description', 'Product Description:') !!}
{!! Form::textarea('description', $product->description, ['class' => 'form-control input-sm ckeditor', 'rows' => 3, 'id' => 'prdDescription']) !!}
</div>
<div class="form-group"> …Run Code Online (Sandbox Code Playgroud) 我正在尝试在开发环境中发送带有附件的电子邮件 -mailtrap用于相同的用途。此附件可以是任何文件类型。但是,我总是最终收到错误:
Run Code Online (Sandbox Code Playgroud)Expected response code 250 but got code "502", with message "502 5.5.2 Error: command not recognized
我不知道我在什么地方犯了什么错误,但我没有达到预期的结果,那就是发送带有附件的邮件。
附件文件位于public/email-attachments/文件夹内
这是我迄今为止尝试过的源代码:
/**
* Build the message.
*
* @return $this
*/
public function build()
{
$mailContent = cache('allEmailContents')->first();
return $this->from('welcome@dprefumry.com')
->subject($mailContent->subject)
->view('emails.send')
->attach($mailContent->attachment, [
'as' => str_slug($mailContent->subject),
'mime' => File::mimeType($mailContent->attachment)
])
->with(['mailContent' => $mailContent]);
}
Run Code Online (Sandbox Code Playgroud)
在routes/web.php文件中:
Route::get('/', function() {
Mail::to('maddy@example.com')
->send(new SendWelcomeEmail());
return view('welcome');
});
Run Code Online (Sandbox Code Playgroud)
我也尝试过发送邮件的旧方式,但没有成功:
Route::get('/', function() {
$mailContent = cache('allEmailContents')->first();
$data = …Run Code Online (Sandbox Code Playgroud) 在我的Laravel 5应用程序中,管理员可以上传产品图像和产品的pdf文件.因此,表单有2个输入字段,如下所示:
<div class="col-md-4 col-sm-6">
<div class="form-group">
{!! Form::label('image', 'Image File:') !!}
{!! Form::file('image', ['class' => 'form-control input-sm'] ) !!}
</div>
</div>
<div class="col-md-4 col-sm-6">
<div class="form-group">
{!! Form::label('leaflet', 'Leaflet:') !!}
{!! Form::file('leaflet', ['class' => 'form-control input-sm'] ) !!}
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
当我上传小于2MB的图像和传单时,它会成功上传.但是在使用时,传单超过2MB,我明白了TokenMismatchException at line 46
在我的php.ini文件中,/etc/php5/apache2/php.ini我有这样的配置:
; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 2G
; Maximum size of POST data that PHP will accept.
; Its value may be 0 to …Run Code Online (Sandbox Code Playgroud) 在提出这个问题时,Laravel 的最新版本是 5.6.37 - 2 天前发布,即 2018 年 9 月 2 日。
我已经有一个正在处理的项目。在运行时composer update,我总是得到以下信息:
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover
Discovered Package: fideloper/proxy
Discovered Package: laravel/tinker
Discovered Package: barryvdh/laravel-debugbar
Discovered Package: nunomaduro/collision
Package manifest generated successfully.
Run Code Online (Sandbox Code Playgroud)
这是在我将 Laravel 项目更新到 5.6.35 之后才开始的。
当我安装一个新的 Laravel 项目时,情况并非如此。在新安装时,会下载最新版本的 laravel,即 5.6.37。
下面是我的 composer.json 文件
{
"name": "laravel/laravel", …Run Code Online (Sandbox Code Playgroud) 我是android的新手.我刚下载并安装了android sdk.现在,当我从eclipse运行应用程序时,我的设备没有被检测到.我用google搜索并将其作为我的解决方案,但这也没有奏效.
这是51-android.rules
SUBSYSTEMS=="usb", ATTR{idProduct}=="0bb4", ATTR{idProduct}=="0c03", MODE="0666", GROUP="plugindev", OWNER="<username>"
Run Code Online (Sandbox Code Playgroud)
之后我重启了我的笔记本电脑,并运行了这个命令:
username@laptopname:~/Android/adt-bundle/sdk/platform-tools$ adb devices
Run Code Online (Sandbox Code Playgroud)
我得到的输出是:
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
???????????? no permissions
Run Code Online (Sandbox Code Playgroud)
编辑
如果我运行lsusb,当插入设备时,我得到以下输出.
Bus 002 Device 004: ID 0bb4:0c03 HTC (High Tech Computer Corp.)
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID …Run Code Online (Sandbox Code Playgroud) 我想实现Facebook分享按钮功能,它将在用户点击分享按钮期间捕获元标签信息.
我有一个head.blade.php,其中包含一些要捕获的元标记.例
<meta property="og:url" content="@yield('facebook_share_url')">
<meta property="og:image" content="@yield('facebook_share_image')">
<meta property="og:description" content="@yield('facebook_share_description')">
Run Code Online (Sandbox Code Playgroud)
我有一个default.blade.php.
<!doctype html>
<html>
<head>
@include('includes.head')
</head>
<body>
<div class="container">
<header class="row">
@include('includes.header')
</header>
<div id="main" class="row">
@yield('content')
</div>
</div>
@include('includes.footer')
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
因此,当我浏览一些网址www.example.com/details时,default.blade.php将从此details.blade中获取内容.此时我想更改facebook元标记属性,所以我在详细信息页面中执行了类似下面的操作.
@section('facebook_share_image', 'This is a description')
@section('facebook_share_description', 'This is an individual page title')
Run Code Online (Sandbox Code Playgroud)
代码工作正常,但我想从我的视图数据中呈现它.就像是@section('facebook_share_description', {{ $data->description }})
但是当我检查我的元标记时,它什么也没给我.有可能这样做吗?
我尝试将一个表单放在foreach循环中.代码是:
@foreach( $document_rows as $row )
<?php
$idx = $row->id;
$product = Product::find( $row->product_id );
$vat = Vat::find( $row->vat_id );
$tot_riga = floatval($row->price) * intval($row->product_quantity);
?>
{!! Form::open([
'method' => 'PUT',
'route' => [ 'document.row.update', $document->id, $row->id ],
'class' => 'form-horizontal',
]) !!}
<tr class="document_row">
<td
id="field_id-{{ $idx }}"
readonly="true"
data-field="id"
data-id="{{ $idx }}"
>
{{ $idx }}
</td>
<td
class="field"
id="field_name-{{$idx}}"
data-field="name"
data-id="{{ $idx }}"
>
{{ $row->product_name }}
</td>
<td
class="field"
id="field_um-{{$idx}}"
data-field="um"
data-id="{{ $idx }}"
>
{{ …Run Code Online (Sandbox Code Playgroud) 我是Pusher和Laravel Echo的新手,并且逐步学习它。我正在尝试在新项目中实现它,但是以某种方式,我无法理解此推送程序库如何与Laravel Echo一起工作。
我正在做的是,在管理员注册后,我只想检查我所做的是否正确。我只想查看在Pusher仪表板帐户中的调试控制台上生成的事件的输出是什么。
我创建了一个AdministratorGenerated包含以下内容的事件:
class AdministratorGenerated implements ShouldBroadcast
{
use InteractsWithSockets, SerializesModels;
public $user;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct(User $user)
{
$this->user = $user;
}
/**
* Get the channels the event should broadcast on.
*
* @return Channel|array
*/
public function broadcastOn()
{
//return new PrivateChannel('administrator');
// To send it as public channel to pusher
return['administrator'];
}
}
Run Code Online (Sandbox Code Playgroud)
在bootstrap.js文件中,我有:
import Echo from "laravel-echo"
window.Echo = new …Run Code Online (Sandbox Code Playgroud) php ×11
laravel ×7
laravel-5 ×5
ajax ×2
laravel-5.6 ×2
android ×1
cart ×1
ckeditor ×1
composer-php ×1
eclipse ×1
email ×1
exception ×1
file-upload ×1
jquery ×1
laravel-5.2 ×1
laravel-5.3 ×1
laravel-5.4 ×1
laravel-form ×1
laravel-mail ×1
mysql ×1
pusher ×1
security ×1
session ×1
ubuntu ×1