Ответы пользователя по тегу PHP
  • Как передать (экспортировать/импортировать) переменную из javascript в php?

    tregor
    @tregor
    Senior PHP Backend developer
    Если есть AJAX отправка в коде, то лучшим решением будет - добавление этой секретной строки в форму.

    Просто добавь инпут с параметром hidden, а при отработке отправки формы устанавливаешь значение этого инпута в форме на нужную строку.
    Ответ написан
    2 комментария
  • Почему не обновляется переменная в php?

    tregor
    @tregor
    Senior PHP Backend developer
    У тебя ID "#prices" точно один на всю страницу? ID должен быть уникальным у каждого элемента, class может быть одинаковым. Если ID не уникален, то видимо JS ломается и не находит элемент и поэтому отправляет дефолтные данные.
    Ответ написан
    5 комментариев
  • Что использовать лучше всего для бота?

    tregor
    @tregor
    Senior PHP Backend developer
    MTProto для сложных и необычных приложений, это не то что бы wrapper для API, скорее wrapper для всего телеграма, позволяющий заходить например как обычный пользователь, а не бот.

    Для простых проектов - самописная либа, таскаю уже года 3 её, время от времени дорабатывая.
    Ответ написан
    Комментировать
  • Как ограничить количество запросов POST по IP используя PHP или Apache?

    tregor
    @tregor
    Senior PHP Backend developer
    Если не трогать БД - можно юзать lock файлы!

    Алгоритм примерно следующий:
    При получении запроса пытаемся открыть файлик $_SERVER['REMOTE_ADDR'] . ".lock", т.е. название это IP клиента ("89.108.13.56.lock", "127.0.0.1.lock" и т.д.)
    Далее читаем Unix timestamp из этого файла, если не прошло 10 минут - die().
    Если прошло 10 минут и больше, то кидаем в файлик текущий Unix timestamp и работаем дальше!

    С БД конечно правильнее было бы, но раз такой случай, то можно использовать мой метод.
    Ответ написан
    2 комментария
  • Как прочитать массив такого плана?

    tregor
    @tregor
    Senior PHP Backend developer
    Ммм, возможно я неправильно понял суть проблемы, но кажется ответом будет простейший код:
    foreach($array as $value){
    echo $value[4]; //Имя
    echo $value[8]; //Сообщение
    }
    Ответ написан
    Комментировать
  • Как получать данные с бд в реальном времени с помощью ajax?

    tregor
    @tregor
    Senior PHP Backend developer
    Первый вариант, более простой в реализации:
    Используя AJAX делаем периодичные запросы на скрипт (назовём его к примеру DBquery.php).
    Каждую секунду отправляем запрос содержащий ID последней полученной записи, скрипт обращается в БД с запросом а-ля "SELECT `p1`,`p2`,`content`,`tag` FROM `table` WHERE `id` > 33".
    Полученный ответ форматируем при необходимости и выводим.

    Плюсы - написать такой код займёт 20 минут максимум.
    Минусы - частота обновления ограничивается частотой AJAX запросов.


    Второй вариант, чуть сложнее, но минусов прямых нет.
    То же самое, что и в первом случае, только AJAX заменяем на технологию WebSockets. Разница AJAX и WebSockets заключается в том, что AJAX нужно вызывать переодически, а WebSockets висит всегда. Т.е. если появилась новая запись в БД, то AJAX её передаст в течении 1 секунды, а WebSockets отдаст моментально.
    В остальном всё точно так же, есть скрипт, который делает запросы к БД и возвращает результат при необходимости отформатированный.
    Ответ написан
  • Как отправить GET запрос, а так же получить ответ от него?

    tregor
    @tregor
    Senior PHP Backend developer
    В первую же очередь исправь строку №7 на следующую:

    $response = file_get_contents("https://api.mojang.com/users/profiles/minecraft/".$nick."?at=".$timestamp);


    В оригинале у тебя во-первых используются одинарные кавычки, а двойные воспринимаются как символ URL'а. Во вторых - конкатенация (склеивание) строк в PHP производится при помощи точек, а не знака плюс. $str1.$str2, а не $str1+$str2
    Ответ написан
    Комментировать
  • Как поставить запятую, отделяющую разряд сотен и тысяч у числа?

    tregor
    @tregor
    Senior PHP Backend developer
    Читайте документацию внимательнее:
    php.net/manual/ru/function.number-format.php

    echo number_format(6883);
    // 6,883
    echo number_format(6883, 2, ".", ",");
    // 6,883.00
    echo number_format(6883, 2, "#", "$");
    // 6$883#00
    Ответ написан
    Комментировать
  • Как вывести количество столбцов из базы данных mysql?

    tregor
    @tregor
    Senior PHP Backend developer
    Я не знаю, что у вас за движок, но вообще проблема может заключаться в следующем: по дефолту функции mysqli_query() возвращают не ассоциативный массив результирующей выборки, а ресурс mysqli_result. Необходимо дополнительно переконвертировать его в массив
    Ответ написан
    Комментировать
  • Не выставляет кодировку при парсинге сайта CURL?

    tregor
    @tregor
    Senior PHP Backend developer
    Надо поиграться с кодировкой, сделать это можно несколькими способами, один из них точно сработает:

    1) Когда вы используете cURL, он декодирует строку в UTF-8, вам нужно её всего лишь декодировать при помощи функции
    utf8_decode ($res)

    2) Так же можно использовать заголовок сервера
    header('Content-type: text/html; charset=UTF-8');

    3) Прогнать результат через
    iconv("Windows-1251", "UTF-8", $output);</res >
    Ответ написан
    Комментировать
  • Как справиться с ошибкой функции protected?

    tregor
    @tregor
    Senior PHP Backend developer
    Исправьте код на нижеследующий, так должно заработать!

    <?php
        
        namespace App\Http\Controllers\Auth;
        
        use App\User;
        use App\Http\Controllers\Controller;
        use Illuminate\Support\Facades\Validator;
        use Illuminate\Foundation\Auth\RegistersUsers;
        use Illuminate\Http\Request;
        
        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
             */
            protected $redirectTo = '/home';
        
            /**
             * Create a new controller instance.
             *
             * @return void
             */
            public function __construct()
            {
                $this->middleware('guest');
            }
        	/**
        	* @param Request $request
        	* @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
        	*/
        	
        	public function register( Request $request)
            {
                $this->validator($request->all())->validate();
        
                event(new Registered($user = $this->create($request->all())));
        
                $this->guard()->login($user);
        
                return $this->registered($request, $user)
                                ?: redirect($this->redirectPath());
            }
            /**
             * 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, [
                    'email' => 'required|string|email|max:255|unique:users',
                    'password' => 'required|string|min:6|confirmed',
                ]);
            }
        
            /**
             * Create a new user instance after a valid registration.
             *
             * @param  array  $data
             * @return \App\User
             */
            protected function create(array $data)
            {
                return User::create([
                    'name' => $data['name'],
                    'email' => $data['email'],
                    'password' => bcrypt($data['password']),
                ]);
            }
        }
    Ответ написан
  • Как получить прямую ссылку на аву instagram?

    tregor
    @tregor
    Senior PHP Backend developer
    А вот способ еще проще, чем парсить HTML.

    Делаем запрос на адрес "https://www.instagram.com/{username}/?__a=1", где {username} - никнейм нужного пользователя.
    $username = "tregor_live";
    
    $response = file_get_contents("https://www.instagram.com/{$username}/?__a=1");
    $acccount = json_decode($response, true);


    В ответ получаем JSON объект с данными аккаунта, в том числе и аватаркой.
    Конкретно ссылка на аватарку лежит в
    "$account['graphql']['user']['profile_pic_url']"
    или в
    "$account['graphql']['user']['profile_pic_url_hd']"
    Ответ написан
    1 комментарий
  • Что неверно в запаси в json?

    tregor
    @tregor
    Senior PHP Backend developer
    $resArr = $jsonFileUser[$_SESSION['email']]["orders"];
    $resArr = array_merge($resArr, $content);


    Возможно вы ищете это решение, но опять же мало входных данных, в каком формате об массива, что именно и как "добавлял" и т.д.
    Ответ написан
    Комментировать
  • Почему не работает sendPhoto в Telegram API?

    tregor
    @tregor
    Senior PHP Backend developer
    Причина в РКН, скорее всего. Подключи прокси к cURL, тогда должно сработать!
    Ответ написан
    Комментировать