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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    у вас там много конечно что не по уму, я так перечислю, а вы уже смотрите что делать (в идеале все исправить, конечно же).
    1) mysql_query: Данный модуль устарел, начиная с версии PHP 5.5.0, и удалён в PHP 7.0.0. Используйте нормальный PDO или mysqli драйвер бд.

    2) Используйте подготовленные выражения в запросах, а не дырявое решето вместо них...

    3) Используйте нормальный стиль форматирования и именования переменных, читайте PSR для ознакомления с принятым форматированием кода. Все эти $XP, $exp_in, $Lvls... Кровь из глаз...

    4) Сначала получайте все данные, затем выводите разметку, вставляя заранее вычисленные значения. Не делайте кашу из вычислений, запросов и вывода разметки.

    5) echo не требует скобок, хотя они и не влияют на его работу.

    6) Если что-то работает не так, как вы ожидаете - 99% где то в переменных не то, что вы думаете. По этому var_dump() ваш лучший друг на ближайшие 2-3 года.

    var_dump([$exp_in, $XP]);
    if($exp_in <= $XP){ 
    var_dump(1);
    ...
    var_dump(2);
    ...

    Тем более работа с БД выполняется успешно
    Как вы это проверяете?
    Ответ написан
    5 комментариев
  • Как правильно сделать запрос ajax на javascript?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    На сколько правильное решение сформировалось в голове,
    Достаточно стандартное решение

    и как правильно отправить запрос ajax именно на ванильном js?
    XMLHttpRequest или fetch, по сути разницы нет, единственно надо учесть что данные через фетч по умолчанию попадут в php://input, а не в $_POST, либо нужно формировать запрос с формДата в качестве отсылаемой структуры данных.

    получается можно и без бекенда решить задачу?
    Нет. Не понятно откуда такой вывод...
    Ответ написан
    4 комментария
  • Как написать функцию на php которая будет выводить js и html?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Скорее всего вам нужно что-то типа:
    function my_plugin_activate() {
      ob_start(); //если нужно в возвращаемом значении иметь строку
      include /path/to/html; //путь куда сохраните ваш "мой js + html"
      return ob_get_clean(); // если надо просто вставлять код, то 1 и 3 строки функции не нужны
    }
    Ответ написан
    1 комментарий
  • Как в PHP в классе свойствам назначать значения по умолчанию объекты.?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Почему статика? В общем случае статические классы плохой тон, так как повышают неконсистентность системы и непредсказуемость поведения.
    2) Да, можно задать анонимный класс, но делать это в конструкторе.
    <?php
    class Curs{
      public $currencies;
        function __construct($curencyArray){
          $this->currencies =  new class($curencyArray){
            function __construct($arr){
              foreach($arr as $crn){
                $this->{strtolower($crn['code_cur'])} = (object)$crn;
              }
        	}
    	  };
       }
    };
    $currencies = [
        ['name_cur'=>'Рублей','short_cur'=>'₽','code_cur'=>'RUB','ratio_cur'=>1,'default_cur'=>1,'display_cur'=>1,],
        ['name_cur'=>'Dollar','short_cur'=>'$','code_cur'=>'USD','ratio_cur'=>1,'default_cur'=>1,'display_cur'=>1,],
        ['name_cur'=>'Euro','short_cur'=>'€','code_cur'=>'EUR','ratio_cur'=>1,'default_cur'=>1,'display_cur'=>1,],
        ['name_cur'=>'Pound','short_cur'=>'£','code_cur'=>'GBP','ratio_cur'=>1,'default_cur'=>1,'display_cur'=>1,],
        ['name_cur'=>'円','short_cur'=>'¥','code_cur'=>'JPY','ratio_cur'=>1,'default_cur'=>1,'display_cur'=>1,],
        ['name_cur'=>'元','short_cur'=>'Ұ','code_cur'=>'CNY','ratio_cur'=>1,'default_cur'=>1,'display_cur'=>1,],
      ];
    
    $curs = new Curs($currencies);
    var_dump($curs->currencies->usd);
    /*
    object(stdClass)#4 (6) {
      ["name_cur"]=>
      string(6) "Dollar"
      ["short_cur"]=>
      string(1) "$"
      ["code_cur"]=>
      string(3) "USD"
      ["ratio_cur"]=>
      int(1)
      ["default_cur"]=>
      int(1)
      ["display_cur"]=>
      int(1)
    }
    */

    или в любой другой конфигурации...
    Ответ написан
    Комментировать
  • Как вывести строки mysql в масив php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Смотреть логи, или выводить все что происходит в коде:
    ini_set('error_reporting',E_ALL); // выводим все ошибки и варнинги
    ini_set('display_errors', 1);
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); // все ошибки соединениея и бд выводим
    $mysqli = new mysqli("localhost", "root", "", "testtest");
    $sth = $mysqli->prepare("SELECT * FROM test_eisenck WHERE id=?");// бинд не поддерживает ничего кроме "?"
    ...
    $arResult = $sth->fetch(); // читаем про фетч, а PDO::FETCH_ASSOC вообще от другого драйвера
    Ответ написан
    Комментировать
  • В чем ошибка Fatal error: Uncaught Error: Call to a member function prepare() on null in?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    $link=mysqli_connect("localhost", "root", "", "temp");
    ...
    $sql = $pdo(?????)->prepare

    Зачем приведен класс PdoConnect не ясно, так как он в коде вообще не участвует...
    Ответ написан
    Комментировать
  • Как сохранять файл при отправке формы (в случае если форма не валидна)?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Самым логичным вариантом кажется валидация полей аяксом, и если все ок - засубмитить форму яваскриптом.
    Как вариант, все отправлять аяксом, и в случае успеха просто редирект на нужный роут, но в таком случае придется заморачиваться с файлами - ждать пока загрузятся, удалять если форма не валидна... Или гибридный вариант - отослать поля без файлов, если все ок - дослать аяксом файлы, потом редирект, имхо самый толковый вариант, как по логике, так и по ресурсам.
    Ответ написан
    Комментировать
  • Как преобразовать аудио-файл в нормальный mp3 на PHP?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    https://github.com/PHP-FFMpeg/PHP-FFMpeg , библиотеку и сам ffmpeg надо устанавливать на сервер. Если у вас шаред хостинг, скорее всего облом.
    Ответ написан
    3 комментария
  • Как обработать запрос?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Хинт: var_dump($_POST);
    Хинт 2: ... name="areato" ... name="id" ... => $_POST['goclient'] (?????)
    Ответ написан
    Комментировать
  • Как генерировать красивый PDF с помощью PHP?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    TL;DR: Если нужно точное совпадение с хтмл шаблоном - только хеадлесс хром, остальное достаточно сильно отличается от оригинала, в силу ряда проблем.

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

    Естественно оба со своими нюансами. В первом случае минус в том что пдф по сути будет набором картинок скринов, со всеми вытекающими, типа разных размеров экрана и невозможности выделить например текст в готовом пдф.
    Во втором - надо ставить хедлес хром на сервер и соответственно из бэка отдавать ему сгенеренный хтмл, что несет свои трудности и приколы, зато на 99,9% совпадает с тем что вы отправляете на печать из хрома, и отладка и подгонка хтмл под формат в разы проще и удобнее. Кроме того, использование стилей и медиа запросов для печати открывает невероятную гибкость в плане работы с готовыми шаблонами (автонумерация, поля, колонтитулы етц). А, и забыл киллер фичу - оно выполняет жс, то есть если есть графики или какие-то элементы, выводимые через жс - то только хром, других вариантов просто нет.

    Что касается других библиотек (mpdf, FPDF, wkhtmltopdf) - все они сильно "плавают" в отличие от хрома, многие вещи в них просто невозможны, кроме того у некоторых есть хронические проблемы со шрифтами и кодировками... Возможно за последние 3 года с тех пор как я их пробовал что-то изменилось, но думаю часть проблем все равно осталась.
    Ответ написан
    4 комментария
  • Как преобразовать json string в php array с ключом - значением?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Уберите всю эту хрень вывода под спойлер

    2)
    Если я делаю json_decode до закрытия curl оно выводит все элементы, если после то только последний
    какие элементы? Код давайте, явно вы там какой-то треш намутили.

    3)
    но выводит по сути не совсем то что мне нужно
    Как выводите так и получаете

    4)
    Как вывести это в нормальном варианте и в особенности убрать string()
    Зависит от того что вы хотите получить.

    5)
    Мне нужно сделать json_decode, но что бы оно вывело его двумя array с key => value
    Вы его и получили, то что вы его выводите через var_dump, не понимая что и зачем вы делаете, сути не меняет.

    6)
    я про то что у меня в 1 массиве есть подмассив например и я не могу просто фильтровать скажем по запятой
    array_walk_recursive()
    Ответ написан
  • Почему не передаётся значение в php из ajax запроса?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Так как вы не передаете заголовок с контент типом, пхп не понимает что это пост, и ловить надо поток инпута.
    var_dump(json_decode(file_get_contents('php://input', true)));
    Ответ написан
  • Почему не происходит отправка сообщений?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Всё работает,
    Очевидно нет

    в консоли ошибок нет,
    тоже вранье6249ec31e700f878953982.jpeg

    network показывает, что php успешно отправляет запросы,
    Да нифига подобного6249ec6c30b3a813115213.jpeg

    Перестань маяться херней, займись исправлением ошибок и проверкой работы по шагам - ошибки скрипта, ошибки запросов сети, ошибки пхп...
    Ответ написан
  • Почему не происходит отправка данных?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    слишком много ошибок и левого кода в жс, кроме того на бэкенде масса фигни и код тоже хреновый.
    зачем делать стриптагс, если уже сделал урленкоде? Все возможные теги уже поломаны. да и еще дохрена всего...
    И отладка... учитесь проверять работу кода, console.log(), var_dump() как базовые инструменты, проверяйте консоль браузера и нетворк, что уходит, что возвращается...

    Указывать путь до исполняемого скрипта надо от корня сайта - не ../auth.php, а /scripts/auth.php, если файл лежит в папке scripts, которая в корневой директории.

    Короче:
    $(function() {
      $("#phrase").on('blur', function() {
        $.post("../auth.php", $(".form-horizontal").serialize(), function(data){alert (data);}
        );
      });
    )}
    Ответ написан
    Комментировать
  • Как передать данные в модальное окно fancybox?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    хотя эта переменная то на странице index.php то есть.
    Хотя на странице box.php ее то нет. И страница box.php знать не знает что происходило в index.php.

    Теперь задача со звездочкой: надо подумать, как из одной странички передаются данные в другую, если страничка грузится по урл...
    Ответ написан
  • Как исправить ошибку с PHP My Admin?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    И так же есть дб phpMyAdmin.
    Это не дб, а инструмент для работы с бд mySql

    Но когда я добавляю новые данные(строку). и когда я хочу сделать отступ(\n). phpMyAdmin добавляет "\" к \n. - получается - "\\n"
    Кошмарное описание непонятно чего. Во первых \n - это новая строка, а не отступ, во вторых, если вы это делаете через интерфейс phpMyAdmin, достаточно просто в этом месте нажать шифт+энтер.

    Как можно пофиксить этот баг?
    Никак, это не баг, а фича

    что бы было как я ввожу не разбираюсь как можно переустановить phpMyAdmin в Fastpanel.
    Кошмар, можно как-то оформлять поток мыслей в понятные фразы? И почитайте про знаки препинания, как их правильно использовать.
    Ответ написан
    Комментировать
  • Как указать абсолютный путь к подключаемомому файлу?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    DOCUMENT_ROOT, __DIR__

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

    Абсолютный путь по тому и абсолютный, что должен идти от корня раздела, то есть в вашем случае во первых слэши в другую сторону (так как винда), во вторых C:\Users\User1\ и далее до нужной папки.
    Ответ написан
  • Как вывести все значение массива а не только одно?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    так, во первых не надо выводить через ечо хтмл.
    Во вторых - у вас в цикле есть все необходимые ключи, вы видимо тупите, по этому на пальцах объясняю, надеюсь поможет...
    <?php
    ...
    foreach ($data['results'] as $repo){ 
    ?> //закрыли пхп, дальше выводим хтмл 
    <dt>
       <span>
             <?=join(', ', $repo['topic']);?> //сделали пхп вывод где надо, и дальше выводим хтмл... 
       </span> 
       <div class="acc-icon-wrap parallax-wrap">
          <div class="acc-button-icon parallax-element">
              <i class="fa fa-angle-down"></i>
           </div>
       </div>
    </dt>
    <dd class="accordion-content">
       <h3>Question</h3>
    <dd><?=$repo['question']?></dd>
    <h3>Answer</h3>
    <dd><?=$repo['ansver']?></dd>
    <?php } ?>
    Ответ написан
    5 комментариев
  • Как в PHP выдернуть рандомно уникальные строки из текстового файла?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    $arr = file('semantic.txt');
    if(count($arr < 150)) {return false;}
    shuffle($arr);
    $res = array_slice($arr, 0, 150);
    foreach($res as $str){
      echo $str;
    }
    Ответ написан
    3 комментария
  • Как правильно предоставлять доступы и проверять при редактировании?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    RBAC
    Ответ написан
    Комментировать