Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
m0pfin

Игорь

  • 9
    вклад
  • 40
    вопросов
  • 27
    ответов
  • 30%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Как пройтись по массиву php и вывести результат цикла в Select?

    m0pfin
    Игорь @m0pfin Автор вопроса
    Нашел такое решение, в принципе годится

    $data = [
        'Перв.',
        'Втор.',
        'трет.',
        'Четверт.',
        'и тд.',
    ];
    echo '<form action="" method="GET">';
    echo '<select>';
    foreach ($data as $item) {
        echo "<option value='$item'> $item </option>" ;
    }
    echo '</select>';
    echo '</form>';
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Получение постов из группы в facebook?

    m0pfin
    Игорь @m0pfin
    Документация же у них есть, там написано)
    Ответ написан более двух лет назад
    1 комментарий
    1 комментарий
  • Как отправить сообщение боту?

    m0pfin
    Игорь @m0pfin
    Без chat_id - нет
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Где у меня ошибка (php)?

    m0pfin
    Игорь @m0pfin
    Если уж проверять есть ли переменные, то хотя бы используйте функцию
    isset()

    Найдите в сети исходник обычной формы отправки, и посмотрите как устроено, а то это велосипед.
    Например на: Github
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как получить тело POST запроса в php?

    m0pfin
    Игорь @m0pfin
    Потому что ты берешь JSON и ничего с ним не делаешь)
    Его нужно обработать json_decode()

    $inputJSON = file_get_contents('php://input');
    $input= json_decode( $inputJSON, TRUE ); 
    
    print_r(json_encode($input));
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Best practices по cUrl в php?

    m0pfin
    Игорь @m0pfin
    Писал функция для авторизации на сайте, и парсингом нужного значения с кабинета, если разберешься пригодится:
    P.S. использовал библиотеку PhpQuery
    /**
     * Функция для прасинга с авторизацией
     * @param $url - ссылка на сайт
     * @param $post - POST запрос для авторизации
     * @param string $pattern - шаблон для регулярки
     * @param string $url_page - ссылка куда нужно перейти после авторизации в кабинете, если нужное нам значение нет на главной ( не обязательное поле)
     * @param string $referer - реферер откуда пришли (необязательное поле)
     * @return mixed|string
     */
    
    function curl_get($url, $post, $pattern = "", $url_page = '', $referer = 'https://google.com'){
        $ch = curl_init();
    
        curl_setopt($ch, CURLOPT_COOKIESESSION, true);
        curl_setopt($ch, CURLOPT_COOKIEFILE, "/lead.txt"); // Куда записывать куки
        curl_setopt($ch, CURLOPT_COOKIEJAR, str_replace("\\", "/", getcwd()).'/lead.txt');
    
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($ch, CURLOPT_ENCODING , "gzip");
    
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36");
        curl_setopt($ch, CURLOPT_REFERER, $referer); // Говорим откуда пришли REFERER
    
        curl_setopt($ch, CURLOPT_URL, $url); // Переходим по нашему URLу
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post); // Отправляем наши POST данные
        $sess_cookie=substr($data, strpos($data, "PHPSESSID=")+10, 32);
    
        curl_setopt($ch, CURLOPT_COOKIE, $sess_cookie);
        $data = curl_exec($ch);
    
    //Если после авторизации нужно перейти на определенную страницу проверяем нужно ли перейти или нет
        if($url_page != ''){ 
            curl_setopt($ch, CURLOPT_URL, $url_page);
            $data = curl_exec($ch);
    
        }
    
        //Извлекаем баланс
        $document = phpQuery::newDocument($data);
        $str = $document;
        preg_match_all($pattern, $str, $arr);
        $data = implode(”, $arr[1]);
    
        curl_close($ch);
        phpQuery::unloadDocuments($document);
        return $data;
    }
    
        /**
         * Парсим баланс
         */
    
        $referer = 'https://site.pro';
        $post = "mail=test%40gmail.com&pass=testtest"; // POST запрос при авторизации
        $pattern = "#<b>(.+?)</b>#is"; // Шаблон для регулярки чтобы выбрать нужное значение
    
        $balance = curl_get('https://auth.site.pro/login', $post, $pattern); // используем функцию
        echo $balance; // Выводим на экран
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Избранные новости. Интерфейс пользователя?

    m0pfin
    Игорь @m0pfin
    Можете разбить новости на категории, а пользователю выбирать категории новостей которые он будет видеть
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как сделать такую форму?

    m0pfin
    Игорь @m0pfin
    Это картинка, или где-то на сайте уже есть?
    Если у кого-то уже есть, просто посмотри код элемента, и скопируй, вместе со стилями, а там уже разберешь на куски что тебе нужны.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Роутинг на PHP?

    m0pfin
    Игорь @m0pfin
    В микрофреймворке Slim хороший роутинг
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как правильно сделать, чтоб скрипт обработал лишь 4 записи?

    m0pfin
    Игорь @m0pfin
    ODRER BY id DESC LIMIT 4
    в запросе нельзя сделать?
    И затем их удалить
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как в select вывести значения из БД?

    m0pfin
    Игорь @m0pfin
    <?php 
    include "db.php";
    
    $sql = mysqli_query ($db, "SELECT * FROM variants");
    
    echo '<select name="kolvo" id="kolvo_price">';
    
    while ($result = mysqli_fetch_array($sql)){
    
    echo ' <option value="'.$result['amount'].'">'.$result['price'].'</option>';
    
    }
    echo '</select>';
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Почему цикл while не останавливается?

    m0pfin
    Игорь @m0pfin
    Для счетчика обычно используют цикл FOR
    for ($i = 1; $i <= 3; $i++){
    echo $i;
    }
    
    // 1
    // 2
    // 3
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как настроить запуск php скрипта через cron?

    m0pfin
    Игорь @m0pfin
    Какая панель управления хостингом/сервером?
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Почему не добавляются данные с формы в БД MySQL?

    m0pfin
    Игорь @m0pfin
    Первый раз вижу такой инклуд -_- БД, обычно так конфиг к БД инклудят
    $conn = require "db.php";
    Просто
    require "db.php";

    И вот это
    $sql = "INSERT INTO users (Name, Surname, email, telephon, pass) VALUES ('$Name', '$Surname', 'email', '$telephon', '$pass')";
          if (mysqli_query($conn, $sql))


    можно заменить:
    $sql = mysqli_query($conn, "INSERT INTO users (Name, Surname, email, telephon, pass) VALUES ('$Name', '$Surname', 'email', '$telephon', '$pass')");
          if ($sql){
               //
          }


    Чтобы поле не отправлялось пустым можно ставить required тогда браузер сам скажет что поле не может быть пустым

    <input type="text" name="Name" value="<?php echo @$data['Name']; ?>" required>


    Покажите код с db.php
    Ответ написан более трёх лет назад
    10 комментариев
    10 комментариев
  • Как вытянуть данные с JSON?

    m0pfin
    Игорь @m0pfin Автор вопроса
    Тоесть чтобы достать Email нужно указать так?

    $result->DATA->Email;
    Ответ написан более трёх лет назад
    9 комментариев
    9 комментариев
  • Как в Telegram bot сделать типа опросника?

    m0pfin
    Игорь @m0pfin Автор вопроса
    Кому-то может будет полезно, немного развил дальше получился такой код:
    (Пока не могу сохранить значение переменной в пределах скрипта, в базу пишутся пустые переменные)

    elseif ($text == "\xF0\x9F\x8E\xAC Заказать билет") {
            $reply = "Для заказа билета пришлите: 
            Пример - <code>Город: Ваш город</code>";
            
            $telegram->sendMessage([ 'chat_id' => $chat_id, 'parse_mode' => 'HTML', 'text' => $reply ]);
            
        }elseif(strstr($text, "Город")){
                
                $_SESSION['city'] = $text;
                $city = $_SESSION['city'];
                
                $reply = "$city - Сохранен! \nПример - <code>Кинотеатр: Ваш кинотеатр</code>"; 
                
                $telegram->sendMessage([ 'chat_id' => $chat_id, 'parse_mode' => 'HTML', 'text' => $reply ]);
                
                }elseif(strstr($text,"Кинотеатр")){
                
                $_SESSION['kinoteatr'] = $text;
                $kinoteatr = $_SESSION['kinoteatr'];
                
                $reply = "$kinoteatr - Сохранен! \nПример - <code>Фильм: Название фильма 20:45 (время сеанса)</code>"; 
                
                $telegram->sendMessage([ 'chat_id' => $chat_id, 'parse_mode' => 'HTML', 'text' => $reply ]);
                
                }elseif(strstr($text,"Фильм")){
                
                $_SESSION['film'] = $text;
                $film = $_SESSION['film'];
                
                $reply = "$film - Сохранен! \nПример - <code>Ряд: 7 ряд, 5 6 7 8 место</code>"; 
                
                $telegram->sendMessage([ 'chat_id' => $chat_id, 'parse_mode' => 'HTML', 'text' => $reply ]);
                }elseif(strstr($text,"Ряд")){
    
                $_SESSION['count'] = $text;
                $count = $_SESSION['count'];
                
                $reply = "$count,$film,$kinoteatr,$city - Сохранен! \nПример - <code>Сумма заказа: 690 р</code>"; 
                
                $telegram->sendMessage([ 'chat_id' => $chat_id, 'parse_mode' => 'HTML', 'text' => $reply ]);
                
                }elseif(strstr($text,"Сумма")){
                
                $_SESSION['cost'] = $text;
                $cost = $_SESSION['cost'];
                
                
                if (empty($city || $kinoteatr || $film || $count || $cost)){
                    
                    $reply = "$cost - Сохранен! \nВаш заказ сформирован! № Заказа: 2034"; 
                    $userlogin = '@'.$name;
                    mysqli_query($db, "INSERT INTO `bot_order`(`date`, `chat_id`, `username`, `city`, `kinoteatr`, `film`, `count`, `cost`) VALUES (NOW(),'$chat_id','$userlogin','$city','$kinoteatr','$film','$count','$cost')");
                     $telegram->sendMessage([ 'chat_id' => $chat_id, 'parse_mode' => 'HTML', 'text' => $reply ]);
                     $_SESSION  = array();
                     unset($_SESSION); // или $_SESSION = array() для очистки всех данных сессии
                     session_destroy();
                    }
                    else{
                         $reply = "Какое-то поле вы пропустили :( \nПожалуйста, начните сначала.\n\nДля заказа билета пришлите: \nПример - <code>Город: Ваш город</code>"; 
                         $telegram->sendMessage([ 'chat_id' => $chat_id, 'parse_mode' => 'HTML', 'text' => $reply ]);
                         $_SESSION  = array();
                         unset($_SESSION); // или $_SESSION = array() для очистки всех данных сессии
                         session_destroy();
                    }
               
              }
    Ответ написан более трёх лет назад
    3 комментария
    3 комментария
  • Как добавить javascript в php код?

    m0pfin
    Игорь @m0pfin
    <script type="text/javascript">
    //ваш код
    </script>


    ?
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как включить gii в yii2 advanced?

    m0pfin
    Игорь @m0pfin
    https://www.youtube.com/watch?v=6AQrwPsAmAI

    Очень годный канал про YII2, в этом видео рассказывает как включить Gii
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как сделать свой онлайн редактор на js?

    m0pfin
    Игорь @m0pfin
    Вот неплохой, и просто интегрируется
    https://summernote.org/
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как скопировать запись несколько раз?

    m0pfin
    Игорь @m0pfin
    Или сделайте цикл for с запросом и фсё
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
Оценили как «Нравится»
  • 1
  • 2
  • Следующие →
Самые активные сегодня
  • Drno
    • 17 ответов
    • 1 вопрос
  • sergiks
    Сергей Соколов
    • 5 ответов
    • 1 вопрос
  • Dr. Bacon
    • 6 ответов
    • 0 вопросов
  • ThunderCat
    ThunderCat
    • 6 ответов
    • 0 вопросов
  • 0xD34F
    0xD34F
    • 5 ответов
    • 0 вопросов
  • mayton2019
    • 5 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации