Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
этим будет пользоваться обычный юзер а не сисадмин
я решил проблему так- создал обычную пхп страницу которая умеет выполнять команду php artisan down\up
даже при "выключенном режиме" эта пхп страница будет открываться и можно будет включить основной сайт
там наверно все сломается
я тут тестовый проект обновил 5.2 на 5.8 и то перестал запускаться
обнаружил неприятный момент
php artisan --version
Laravel Framework version 5.3.31
в композере "laravel/framework": "5.3.*"
а в доке параметр allow ip под версию 6
получается надо обновляться? ничего не сломается?
или как тогда быть?
как вариант это использовать команду
php artisan down --allow=127.0.0.1 --allow=192.168.0.0/16
и указать ип вызывающего
а можно определить в каком состоянии находится сайт ? это где то сохраняется в параметрах сайта?
этим будет пользоваться человек далекий от консоли
нужно решение через веб
хочу в админке сделать кнопку, которая переведет сайт в режим обслуживания, и на всех страницах будет выводиться надпись сайт обновляется
как реализовать перехват всех запросов и перенаправить на страницу с текстом?
плюс надо фильтровать запросы на админку, чтобы можно было потом выключить этот режим
https://stackoverflow.com/questions/284 … -laravel-5 тут нашел решение
но теперь вопрос- как мне вывести в сообщения об ошибке фразу - пароль содержит запрещенное слово $word, где $word это слово из списка запрещенных слов?
также как проверить что пароль не содержит логин? как передать логин в проверку?
версия ларавел 5.1
в проекте используется валидация через app/Http/Requests
public function rules()
{
return [
'name' => 'min:3|max:128|plainText',
'lastname' => 'min:3|max:128|plainText',
'email' => 'unique:users,email,' . $user_id . '|email',
'login' => 'required|min:3|max:64|plainText|unique:users,login,',
'password' => [
'confirmed',
'min:8',
'max:64',
'regex:/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/',
function ($attribute, $value, $parameters)
{
foreach ($this->stopWords as $word) {
if (strpos($value, $word) !== false) {
//$this->word = $word;
$fail($attribute.' is invalid.');
}
}
//return false;
}
]
}
как мне добавить свое правило валидации для поля password?
перерыл весь интернет
или советуют создать свой rule, которого нету в классах
или делать через Validator::extend, при этом extend тоже нету
есть простое решение через анонимную ф-ю в этом чудо ларавел?
я всегда считал что параметр httponly обозначает что кука будет доступна только по http протоколу, включая https, и не будет доступна через скрипты
плюс хром в вкладке кукис отображает галочку httponly без уточнения http или https
какая связь между параметром http_only и этим куском кода https://github.com/laravel/framework/bl … en.php#L77 ?
да https
клиент хочет чтобы все куки были httpOnly
счас в проекте 2 куки XSRF-TOKEN и laravel_session
так вот laravel_session установлена как httpOnly, а XSRF-TOKEN нет
полез в исходник и нашел такой метод
vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php
protected function addCookieToResponse($request, $response)
{
$config = config('session');
$response->headers->setCookie(
new Cookie(
'XSRF-TOKEN', $request->session()->token(), time() + 60 * 120,
$config['path'], $config['domain'], $config['secure'], false
)
);
return $response;
}
получается намеренно убрали httpOnly без возможности регулировки?
пришлось переопределить метод
protected function addCookieToResponse($request, $response)
{
$config = config('session');
$response->headers->setCookie(
new Cookie(
'XSRF-TOKEN', $request->session()->token(), time() + 60 * 120,
$config['path'], $config['domain'], $config['secure']
)
);
return $response;
}
насколько такое решение правильное?