Ответы пользователя по тегу PHP
  • Почему при условии if текст в echo выводится сразу?

    @JohnDidact
    Нуб во всём
    if (isset($_POST['number']) and $_POST['number'] < 5){
        echo "Введенное число меньше 5";
    }
    Ответ написан
    Комментировать
  • Как отключить данный тип ошибок?

    @JohnDidact
    Нуб во всём
    В самом начале файла… или, лучше, в самом начале подключаемого файла, типа ядра, задать параметры вывода ошибок:
    error_reporting(E_ALL & ~E_NOTICE);
    Я хоть и не трупрограммист, да и вообще не программист, а обычный быдлокодер необразованный, но всегда отображаю все ошибки, от предупреждений, до фатальных ошибок, что и Вам советую, тем более, в стадии разработки.

    А чтобы этих ошибок не было, не используйте неинициализированные переменные. Если есть вероятность того, что переменная будет устанавливаться в условии, но использоваться вне его, то заранее задайте значение "по умолчанию".
    Ответ написан
    2 комментария
  • Как получить все возможные уникальные строки из определённых символов?

    @JohnDidact Автор вопроса
    Нуб во всём
    В общем, сделал так:
    function shit(string $str){                      // Принимаю строку.
     $len = mb_strlen($str);                         // Длина строки,
     $num = 2 ** $len - 1;                           // количество возможных строк,
     $listStr = array();                             // список всех возможных строк.
     do{
      $value = '';                                   // Значение новой строки по умолчанию,
      $bin = decbin($num);                           // бинарное представление десятичного числа,
      for($i = 1; isset($bin[-$i]); $i++){           // прохожу по кадому символу в $bin:
       $bin[-$i] and $value = $str[-$i] . $value;    // если итерируемый символ - истина, то записываю в новую строку символ из сходной строки с ключём, равным активной итерации.
      }
      $listStr[] = $value;
     } while($num--);
     return $listStr;
    }


    Если у кого есть решение быстрее и менее ресурсоёмко, то обязательно напишите мне.
    Ответ написан
    Комментировать
  • Можно ли обрезать пробелы внутри запроса GET?

    @JohnDidact
    Нуб во всём
    Удалять по заголовку??? Делай это по первичному ключу. Как правило, это id. Но тут уже как у разраба голова крутится…

    Касаемо вопроса. trim удаляет пробельные символы в конце и в начале строки. Если тебе нужно удалить все пробелы в строке, то можешь использовать функции замены, типа str_replace() / strtr() или же регулярное выражение preg_replace()
    Ответ написан
    Комментировать
  • Почему ломается кодировка при измение размера текста?

    @JohnDidact
    Нуб во всём
    Смею предположить, что текст передаётся методом GET в глобальную переменную _GET. У браузеров есть ограничения. Ещё нужно помнить, что кириллица кодируется, и, раз хз во сколько, символов становится больше. Ну а потом эта вся строка обрезается браузером, серверу передаётся закодированная, но обрезанная строка и сервер не может её правильно раскодировать… вот и результат.

    Хотя, на самом деле, это лишь мои догадки)) И стоило бы это проверить. Я лишь выдвинул теорию. Прошу какашками в меня не кидаться, особенно касается это офанатевшего пиэчпишника.
    Ответ написан
    Комментировать
  • Как спарсить пост со страницы вк?

    @JohnDidact
    Нуб во всём
    А не легче ли для этого использовать API ВК???

    https://vk.com/dev/wall.getById
    Ответ написан
    Комментировать
  • Как удаленно обновлять программу на php?

    @JohnDidact
    Нуб во всём
    Вот мой быдлометод…
    Заливать обновы на удалённый комп.
    Написать прогу на PHP, которая будет кроном каждый день/час/минуту/секунду/тик/… проверять, есть ли обновления. Если есть, то эта самая прога, отдельная от основной, сначала скачивает полностью обновления в новую папку... Потом менять название папки на основную, предварительно переименовав старую в какой-нибудь типа бэкап... ну и всё.

    Но это не точно… я бы так сделал, но другим не советую. Есть для этих целей более профессиональное готовое решение.
    Ответ написан
    Комментировать
  • Передача List\Массив из Unity в php через www можно?

    @JohnDidact
    Нуб во всём
    Я не знаю Unity3d и не представляю, как это всё работает, но PHP понимает данные в формате JSON. Самое, думаю, нормальное. Но это если сервер будет обращаться к Unity3d

    Можно параметры через GET/POST отправлять серверу.

    А если всё работает на одном компе, то можно PHP запустить через CLI…консоль, и передать туда массив сериализованный, или тот же JSON в base64, но эт уж, наверное, слишком)
    Ответ написан
    6 комментариев
  • Как вывести изображение с определённым названием, но неизвестным расширением (jpg/png)?

    @JohnDidact
    Нуб во всём
    Ну по сути, cover_user.jpg - это и есть название. А users/dirname/cover_user.jpg - это относительный путь к файлу. Как сказал офанатевший, храни изображение в едином типе или без .расширение, просто mime в заголовке соответствующий отдавай.
    Ответ написан
    Комментировать
  • Как сделать решение линейных уравнений с одной неизвестной на php?

    @JohnDidact
    Нуб во всём
    Я когда подобным занимался, юзал учебник по алгебре и изучал формулы, потом эти формулы переносил в PHP (не тупо копипастом) и всё работало. Только вот потом я понял, что мне это не нужно)) В сложных уравнениях было много регулярок и циклов, много пользователей напрягли бы сервер, думаю. Тем более, подобных серверов куча, не думаю, что это было бы востребованным.

    Но дело твоё, юзай регулярки и формулы
    Ответ написан
    Комментировать
  • Как сделать аутентификацию на php?

    @JohnDidact
    Нуб во всём
    login.php

    <?php
    include __DIR__.'/config.php';
    
    if(!AUTH) {
      //мы еще не авторизованы
      if(!empty($_POST['login']) && !empty($_POST['password']) && isset($users[$_POST['login']])) {
          //передали данные для входа и логин существует
          if($users[$_POST['login']]['password'] == getPassword($_POST['password'])) {
              //пароль совпадает
              $_SESSION['user'] = $_POST['login'];
    
              if(isset($_POST['remember'])) {
                //стоит галка "запомнить меня"
                setcookie('login', $_POST['login'], time() + 3600 * 24 * 365, '/');
                setcookie('password', getPassword($users[$_POST['login']]['password']), time() + 3600 * 24 * 365, '/');
              }
    
          }
      }
      if(!isset($_SESSION['user']) || $_SESSION['user'] != $_POST['login']) {
        //авторизация не прошла, сохраним ошибку
        $_SESSION['message'] = 'Неверный логин или пароль';
      }
    } else {
        if(isset($_GET['logout'])) { //выход из системы
            unset($_SESSION['user']);
            setcookie('login', '', time() - 3600 * 24 * 365, '/');
            setcookie('password', '', time() - 3600 * 24 * 365, '/');
        }
    }
    
    header('Location: index.php'); //переходим на главную страницу


    Тот "метод", что описан в статье, думаю, использовать крайне глупо…
    Если у тебя возникают такие вопросы, то тебе не на Q&A ресурсы нужно, а не обучающие. Могу посоветовать книгу Котерова и Костарёва, прочти от начала до конца и вопрос таких возникать не будет. Ещё, в добавок, рекомендую посмотреть видео-уроки "Специалист PHP" все уровни. Очень доступно и интересно подаётся материал, на мой взгляд. Я, конечно, не спец в этом, так как лентяй (поэтому до конца не дочитал и видео-уроки не досмотрел), но основы понял. Тебе же советую не останавливаться, а пройти все курсы.
    Ответ написан
  • Ошибка: Call to a member function on null?

    @JohnDidact
    Нуб во всём
    По мне так, тут чёрным по белому написано, в чём проблема))

    Ещё, на сколько я знаю, аргументы должны запятой отделяться…

    Для меня это достаточно запутанно: непонятные переменные, вызов метода, передача в его аргумент функции, которая принимает свои аргументы определённого класса и числа (но по умолчанию null). Я бы отделил всё это, но не важно.

    Важно то, что запятой между Player $player и int $data = null нет.
    Ответ написан
    Комментировать
  • Регулярка не правильно работает?

    @JohnDidact
    Нуб во всём
    Всё правильно выводит, не считая "ения". preg_match() в matches пишет под ключ n совпадение с номером n. А под ключём 0 вся строка, что подходит под шаблон. У меня тоже бывали проблемы с кириллицей, даже u не помогал. Разбираться я с этим не стал, времени не было, поэтому решал задачу так: составлял строку из русского алфавита во двух регистрах и вместо '[a-zA-Zа-яА-Я]' писал '[a-zA-Z'. $abc .']', где $abc - строка из русского алфавита в двух регистрах. Разделители и модификаторы расставишь сам)

    Если ты хочешь найти более двух совпадений, тогда используй preg_match_all()
    Ответ написан
  • Есть ли альтернатива?

    @JohnDidact
    Нуб во всём
    На счёт PHP - он вообще в браузере ничего не открывает. На счёт HTML… есть target. Можешь прочесть.
    Ответ написан
    Комментировать
  • Как передать в качестве аргумента функции объект класса внутри его приватного метода?

    @JohnDidact
    Нуб во всём
    Мало чего понял... Но, если нужно использовать, так сказать себя в себе, объект класса в методе этого объекта, то $this, думаю, самое то, если я правильно понял.
    Ответ написан
    1 комментарий
  • Как вывест максимально значение массива при помощи while?

    @JohnDidact
    Нуб во всём
    Если именно используя while, то можно:
    Если массив исходный не нужен, то с помощью array_shift()
    Если нужен массив исходный или вариант с array_shift() не нравится, то работать с указателями.
    Если 100% известно, что массив всегда будет содержать только индексы от нуля без пропусков, то получать доступ к данным индекса с помощью переменной-счётчика (но лично я бы так не делал…я - параноик).

    Ранее, до цикла, создать переменную $num со значением 0. Затем, в цикле, проверять, больше ли значение значения $num. Если больше, то записывать это значение в $num. Если нужно и ключ знать, то и ключ записать куда-нибудь.

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

    Я бы и кодов понаписывал, да со Смарта неудобненько.

    З. Ы. Может есть варианты и получше, подождём, что предложат.
    Ответ написан
    Комментировать
  • Как вставить foreach внутри переменной содержащей html тэги?

    @JohnDidact
    Нуб во всём
    $text = '';
    foreach(get_field('otdelnaya_plata') as $item){
     $text .= '<span class="promo-in__repeatertxt">'. $item['usluga'] .'</span>'. PHP_EOL;
    }
    $quest_add = '<div class="quest-add"><h3 class="quest-legend__title">Возможно продолжение торжества за отдельную плату:</h3>'. $text .'</div>';


    Пробелы для себя сам расставишь.
    Ответ написан