Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Re: Веб-разработка » Аварийная остановка апатч » 20.10.2017 21:35:02

вот что написала поддержка.

Здравствуйте! Ошибка вида: "502 Bad Gateway nginx/1.12.1", напрямую указывает на недоступность сервиса apache. Причины его недоступности, вам были описаны ранее. С нашей стороны рекомендуем проверить легитимность поступающих запросов к сайту, например, за текущие сутки к сайту поступило 301137 запросов с 1029 различных ip адресов. Наибольшее количество обращений поступало с ip адресов(список вида "количество обращений" "ip адрес"): 14448 92.127.232.168 11213 46.61.27.5 10764 46.39.229.4 9544 80.83.225.27 6045 46.133.13.199 6029 93.124.42.51 5477 188.0.188.173 5242 176.226.219.190 5204 188.162.228.73 5069 83.220.239.173 4700 178.90.225.252 4698 87.249.205.168 4644 188.170.72.200 4513 46.0.64.56 C ip адреса, с наибольшим количеством обращений к сайту(92.127.232.168) поступали запросы к следующим страницам: 6864 /ajax/get_drop 6848 /ajax/get_drop_m 262 / 238 /contests 162 /uploads/sb.png 9 /case/4 8 /case/2 6 /case/1 6 /bonus 5 /sounds/win.wav 3 /user/8319 2 /user/540 2 /user/17427 Стоит учесть, что периодически, от данного пользователя поступало до 4 обращений в секунду, пример запросов: 92.127.232.168 - - [20/Oct/2017:04:37:18 +0100] "GET /ajax/get_drop_m HTTP/1.0" 200 1738 "http://cash-game.ru/contests" "Mozilla/5.0 (Linux; Android 7.1.2; LGE Nexus 5 Build/_BuildID_) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36" 92.127.232.168 - - [20/Oct/2017:04:37:18 +0100] "GET /contests HTTP/1.0" 200 7554 "http://cash-game.ru/contests" "Mozilla/5.0 (Linux; Android 7.1.2; LGE Nexus 5 Build/_BuildID_) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36" 92.127.232.168 - - [20/Oct/2017:04:37:18 +0100] "GET /ajax/get_drop HTTP/1.0" 200 1738 "http://cash-game.ru/contests" "Mozilla/5.0 (Linux; Android 7.1.2; LGE Nexus 5 Build/_BuildID_) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36" 92.127.232.168 - - [20/Oct/2017:04:37:18 +0100] "GET /contests HTTP/1.0" 200 7562 "http://cash-game.ru/contests" "Mozilla/5.0 (Linux; Android 7.1.2; LGE Nexus 5 Build/_BuildID_) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36" 92.127.232.168 - - [20/Oct/2017:04:37:18 +0100] "GET /contests HTTP/1.0" 200 7556 "http://cash-game.ru/contests" "Mozilla/5.0 (Linux; Android 7.1.2; LGE Nexus 5 Build/_BuildID_) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36"
Судя по информации whois данного ip адреса, он принадлежит: inetnum: 92.127.192.0 - 92.127.255.255 netname: WEBSTREAM descr: OJSC "Sibirtelecom" remarks: Novosibirsk Local Telephone Company (NGTS) $ host 92.127.232.168 168.232.127.92.in-addr.arpa domain name pointer ws.92.127.232.168.nsk.sibirtelecom.ru.

С нашей стороны отсутствует информация об алгоритмах работы вашего сайта, возможно данные обращения легитимны, вам необходимо проверить данную информацию. Также обращаем ваше внимание, что мы привели пример анализа лога доступа, только для ip адреса с наибольшим количеством обращений.

#2 Re: Веб-разработка » Аварийная остановка апатч » 20.10.2017 20:04:31

Перед тем как сайт ложится возникает
1 ошибка Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator at webmaster@cash-game.ru to inform them of the time this error occurred, and the actions you performed just before this error. More information about this error may be available in the server error log. Apache/2.4.7 (Ubuntu) Server at cash-game.ru Port 80

2 Ошибка: 502 Bad Gateway nginx/1.12.1

#3 Re: Веб-разработка » Аварийная остановка апатч » 20.10.2017 18:41:18

Запутался. Это у клиента так реализовонно а не у меня

#4 Re: Веб-разработка » Аварийная остановка апатч » 20.10.2017 18:36:24

[Fri Oct 20 16:22:34.158609 2017] [mpm_prefork:notice] [pid 1119] AH00163: Apache/2.4.7 (Ubuntu) mpm-itk/2.4.6-01 OpenSSL/1.0.1f configured — resuming normal operations
[Fri Oct 20 16:22:34.158632 2017] [core:notice] [pid 1119] AH00094: Command line: '/usr/sbin/apache2

ошибки апатч лога

#5 Веб-разработка » Аварийная остановка апатч » 20.10.2017 18:09:13

Viktor92
Ответов: 9

Добрый день прошу помощи.  Используем на сайте сервер. В опредеённое время апатч аварийно выключается и сайт ложится. Не могу понять. веб сервер оперативка 2 гига. Снизу прекрепил тест. Что сервер менять? если менять то какой брать?


https://printscreens.ru/Siu8Z - скриншот теста веб сервера

#6 Laravel 5.x » Как сделать ридерект logout - на Login » 15.10.2017 14:48:11

Viktor92
Ответов: 4

Добрый День не могу разобраться с перенаправлением после того как выходишь из приложения. В данном случае это logout. Хочу сделать так что бы человек после выхода из приложения возвращался не на стартовую страницу - а в login. Пробывал менять роуты, после чего меня перенаправляло в логин где я уже зашёл. Кто подскажет как сделать так что бы после выхода из приложения переноправляло на форму логина.

web.php

// Логин и Выход.
$this->get('login', 'Auth\LoginController@showLoginForm')->name('login');
$this->post('login', 'Auth\LoginController@login');
$this->post('logout', 'Auth\LoginController@logout')->name('logout');

сама форма

<ul class="dropdown-menu" role="menu">
                                    <li>
                                        <a href="{{ url('/logout') }}"
                                            onclick="event.preventDefault();
                                                     document.getElementById('logout-form').submit();">
                                            Logout
                                        </a>

                                        <form id="logout-form" action="{{ url('/logout') }}"
                                          method="POST"style="display: none;">
                                            {{ csrf_field() }}
                                        </form>

LoginController

public function __construct()
    {
        $this->middleware('guest', ['except' => 'logout']);
    }
}

#7 Re: Laravel 5.x » Как переопределить Редирект в Регистрации ? » 05.10.2017 03:46:40

AlexeyMezenin  Спасибо большое у меня всё заработало ,когда  ввёл   return '/id'.auth()->id();
Видимо неправильно синтаксировал писал обычно так - Auth::user()->id  надо было просто немного исправить.Спасибо что не оставили в беде.

#8 Re: Laravel 5.x » Как переопределить Редирект в Регистрации ? » 05.10.2017 03:41:07

Ошибка обычно такая.
ErrorException in RegisterController.php line 32: Undefined variable: user а с логином работает(

#10 Re: Laravel 5.x » Как переопределить Редирект в Регистрации ? » 05.10.2017 03:35:41

AlexeyMezenin пробывал по разному не получается(( С логина редиректит а регистрации нет.

#11 Laravel 5.x » Как переопределить Редирект в Регистрации ? » 04.10.2017 00:49:40

Viktor92
Ответов: 5

Всем Добрый День. Смог в Логине переопредилить редирект со странице home на id пользователя. Но в регестрации не получается переопределить Редирект на другой Роут. Прошу помощи , пытался разными способами в том числе и в RedirectIfAuthenticated.php. Но зато редиект с логина работает.
LoginController.php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;

class LoginController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Login Controller
    |--------------------------------------------------------------------------
    |
    | This controller handles authenticating users for the application and
    | redirecting them to your home screen. The controller uses a trait
    | to conveniently provide its functionality to your applications.
    |
    */

    use AuthenticatesUsers;

    /**
     * Where to redirect users after login.
     *
     * @var string
     */

    //protected $redirectTo = '/id';//.Auth::user()->id;

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function redirectTo(){
        return '/home';//.//Auth::user()->id;
        //die(print_r(Auth::user()));
    }
       public function authenticated($request,$user)
    {
        return redirect('/id' . $user->id);
    }
    public function __construct()
    {
        $this->middleware('guest', ['except' => 'logout']);
    }
}

RegisterController.php

namespace App\Http\Controllers\Auth;

use App\User;
use Validator;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\RegistersUsers;
use  Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
class RegisterController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Register Controller
    |--------------------------------------------------------------------------
    |
    | This controller handles the registration of new users as well as their
    | validation and creation. By default this controller uses a trait to
    | provide this functionality without requiring any additional code.
    |
    */

    use RegistersUsers;
   
    /**
     * Where to redirect users after registration.
     *
     * @var string
     */
public function redirectTo(){
        return '/id{id}', 'ProfilesController@index');//.//Auth::user()->id;
        //die(print_r(Auth::user()));
}
public function RegistersUsers($request,$user)
    {
     return redirect('/id' . $user->id);   
   
    }


    /**
     * Create a new controller instance.
     *
     * @return void
     */
     
    public function __construct()
    {
        $this->middleware('guest');
    }

    /**
     * Get a validator for an incoming registration request.
     *
     * @param  array  $data
     * @return \Illuminate\Contracts\Validation\Validator
     */
    protected function validator(array $data)
    {
        return Validator::make($data, [
            'name' => 'required|max:255|unique:users',
            'email' => 'required|email|max:255|unique:users',
            'password' => 'required|min:6|confirmed',
            'gender' => 'required|string',
           
        ]);
    }

    /**
     * Create a new user instance after a valid registration.
     *
     * @param  array  $data
     * @return User
     */
    protected function create(array $data)
    {
        if($data['gender'])
        {
            $avatar = 'public/defaults/avatars/male.jpg';
        }
        else
        {
            $avatar = 'public/defaults/avatars/female.png';
        }
             return User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'gender' => $data['gender'],
            'password' => bcrypt($data['password']),
            'slug' => str_slug($data['name']),
            'avatar' => $avatar
           
     

        ]);
Profile::create(['user_id' => $user->id ]);
        return $user;
    }
}

RedirectIfAuthenticated.php

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Auth;

class RedirectIfAuthenticated
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @param  string|null  $guard
     * @return mixed
     */
       public function handle($request, Closure $next, $guard = null)
    {
        if (Auth::check()) {
            return redirect()->action('ProfilesController@index', Auth::user()->id);
        }
        return $next($request);
    }
/*    public function handle($request, Closure $next, $guard = null)
    {
        if (Auth::guard($guard)->check()) {
            return redirect('/id'.Auth::user()->id);
        }

        return $next($request);
    }*/
}

#12 Re: Laravel 5.x » Как сделать Глобальный Роут 404? » 02.10.2017 12:08:57

Всё полностью разобрался) Всем спасибо а что получается можно несколько подгрузить шаблонов ошибок?

#15 Re: Laravel 5.x » Как сделать Глобальный Роут 404? » 02.10.2017 11:09:06

Я сделал в контроллере не знаю правильно нет? Вобщем всё работает.

web.php
Route::get('/503', function () {
    return view('errors.503');
});
Profiles Controllers.
if(!$user){
     
     $user = new \stdClass();
     return response()->view('errors.503', [], 503);

#17 Laravel 5.x » Как сделать Глобальный Роут 404? » 02.10.2017 08:57:17

Viktor92
Ответов: 10

Всем Добрый День. Не могу разораться. Хочу прописать глобальный Роут на 404 ошибку на profiles.id. Если пользователь не авторезирован то его не существует, то отобразить ошибку 404 pages в id (такого профиля или юзера не существует

Web.php
Route::group(['middleware' =>
'auth'], function(){
$param_regex = ['id' => '(\d+)'];
Route::get('/id{id}', 'ProfilesController@index')->name('profile')->where($param_regex);

Profiles.Controller
if(!$user){
     $user = new \stdClass();
     $user->error = 'User was not found';
    }
$owner = Auth::user();
        return view('profiles.profile', ['user' => $user,'users' => $users, 'owner' => $owner ]);
           
    }

Данный код работает если вбить в браузер строку  любой id не  зарегистрированного пользователя  ,то покажет -  'User was not found';
Но нужно прописать глобальный Роут 404pages. Кто знает как  можно сделать? С ошибкой я сделал на время.

#18 Laravel 5.x » Как увелечить Скорость и производительность Laravel? » 29.09.2017 02:05:56

Viktor92
Ответов: 10

Добрый Вечер. Хочу спросить у продвинутых людей, как повысить производительность при загрузки сервера. Фикча такая - есть в фреймворке папка Vendor - она со всеми файлами весит 33мб. И меня это если честно немного напрягает что куча различных подключений. Какие есть способы повысить производительность при включении сервера?  Например я тестировал Phalcom там скорость быстрее, но я уже написал логики в ларавель и привык к синтаксису. Но что если у меня будет по 2 тысячи оферов? грузиться  а запросы будут повторяться. Как можно улучшить быстродействие. Заранее спасибо.

#21 Laravel 5.x » Прошу помощи как реализовывать классы в laravel » 24.07.2017 17:56:33

Viktor92
Ответов: 5

Здравствуйте уважаемые форумчане ,Я новичок в Ларавель версии 5.3. Создав  простую регистрацию и логин в этом фреймворке, я задался вопросом ,как перенести или вписать свой класс users в котором есть переменные,методы, хэш и поля с проверкой . Подскажите пожалуйста , как создавать ООП клаccы в ларе, а главное где? Вот пример моего класса users.
По старинке я делал так.

/Подключаем файл класса Users к index.php .
require_once("class.user.php");
//Запускаем сессию Users.
session_start();
//Тестовая переменная которая будет запускать роутинг.
$router_strart;
// с помощью переменной создаём нового пользователя.
$login = new USER();
// если новый пользователь залогинился
if($login->is_loggedin()!="")
{
//Перенаправляем его с логина  на страницу'profile.php'.
    $login->redirect('profile.php');
}
//Заполнения полей в логине и отправка запросов POST переменных серверу .
// Если кнопка батон логин нажата и поля правильно заполненны  после регистрации.
if(isset($_POST['btn-login']))
{
    $uname = strip_tags($_POST['txt_uname_email']);
    $umail = strip_tags($_POST['txt_uname_email']);
    $upass = strip_tags($_POST['txt_password']);
    // если поля переменных $uname,$umail,$upass заполнены   
    if($login->doLogin($uname,$umail,$upass))
    {
        //  то перенапрвляем пользователя на страницу профайл.php
        $login->redirect('profile.php');
    }
    // иначе
    else
    {
          // ошибка (вывод на экран)
        $error= "Неправильный логин или пароль";
               
    }   
}

Сам класс Юзеров с функциями и методами.

<?php

require_once('dbconfig.php');

class USER
{   
    public $username;
    private $login = false;
    private $conn;
   
    public function __construct()
    {
        $database = new Database();
        $db = $database->dbConnection();
        $this->conn = $db;
    }
   
    public function runQuery($sql)
    {
        $stmt = $this->conn->prepare($sql);
        return $stmt;
    }
   
    public function register($uname,$umail,$upass)
    {
        try
        {
            $new_password = password_hash($upass, PASSWORD_DEFAULT);
            $stmt = $this->conn->prepare("INSERT INTO users(user_name,user_email,user_pass)
                                                       VALUES(:uname, :umail, :upass)");
                                                  
            $stmt->bindparam(":uname", $uname);
            $stmt->bindparam(":umail", $umail);
            $stmt->bindparam(":upass", $new_password);
                                                         
            $stmt->execute();   
           
            return $stmt;   
        }
        catch(PDOException $e)
        {
            echo $e->getMessage();
        }               
    }
   
   
    public function doLogin($uname,$umail,$upass)
   
    {
        try
        {
            $stmt = $this->conn->prepare("SELECT user_id, user_name, user_email, user_pass FROM users WHERE user_name=:uname OR user_email=:umail ");
            $stmt->execute(array(':uname'=>$uname, ':umail'=>$umail));
            $userRow=$stmt->fetch(PDO::FETCH_ASSOC);
            if($stmt->rowCount() == 1)
            {
                if(password_verify($upass, $userRow['user_pass']))
                {
                    $_SESSION['user_session'] = $userRow['user_id'];
                    return true;
                }
                else
                {
                    return false;
                }
            }
        }
        catch(PDOException $e)
        {
            echo $e->getMessage();
        }
    }
   
    public function is_loggedin()
    {
        if(isset($_SESSION['user_session']))
        {
            return true;
        }
    }
   
    public function redirect($url)
    {
        header("Location: $url");
    }
   
    public function doLogout()
    {
        session_destroy();
        unset($_SESSION['user_session']);
        return true;
    }
}

Подвал раздела