Задать вопрос
Ответы пользователя по тегу PHP
  • Сайт не может обработать ошибка 500 php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    500 ошибка - это общее сообщение при любой фатал ошибке при отключенном выводе ошибок.
    В начале файла
    ini_set('error_reporting',E_ALL);
    ini_set('display_errors', 1);

    или смотрим ерорлог пхп.
    Ответ написан
    2 комментария
  • Как добавить список товаров из массива циклом foreach в БД?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    $lessname = $xml->xpath('V8Exch:Data/v8:CatalogObject.Номенклатура/v8:Description');  //получаем массив с товарами. 
    //Теперь над ним можно проводить операцию итерирования(перебор значений)
    foreach($lessname as $name){
        $user = R::dispense('productsfrom1c'); // создаем НЕ таблицу, а запись в таблице 
                                               //(на самом деле создаем объект на базе таблицы)
        $user->lessname = $name[0];  // НЕ добавляем в колонку lessname список товаров, а задаем значение 
                                      //будущей записи, одной(!) строки таблицы
        R::store($user); //Сохраняем, 
    } //конец цикла.
    Ответ написан
  • Как получить список из массива без дублей?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Не могу разобраться, как получить список категорий из массива без дублей.

    Получать нужно из базы нормальный список, без дублей. В вашем случае это будет запрос с дистинкт, как написал roswell, однако:
    1) Запросы с дистинкт будут перебирать всю таблицу, что плохо и медленно
    2) Если у вас категории пишутся в таблицу ньюс, значит у вас лажа со структурой бд. Категории должны лежать отдельной справочной таблицей, выборка из которой будет во первых в разы быстрее, а во вторых будет удовлетворять третьей нормальной форме (3NF).
    3) Текущая структура не позволяет задать более 1 категории на новость.

    Есть еще куча проблем с таким хранением, но это уже другой вопрос.
    Ответ написан
    5 комментариев
  • Почему не работает отправка почты из PHPMailer используя smtp.yandex-а?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    $mail->SMTPDebug = 3; и смотреть что происходит, все что тут понаписали - тыканье пальцем в небо. Почему никто не сказал что надо разбираться в чем проблема, вместо выдвижения странных необоснованных предположений - загадка.
    Ответ написан
    2 комментария
  • Проблема connection timeout mysql php при полностью доступном сервере?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Ошибку и номер указывайте.
    https://confluence.atlassian.com/stashkb/connectio...
    так попробуйте
    Ответ написан
  • Как обработать теги в тексте на php коде?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Во первых задания запрещены правилами. Не по тому что жалко ответить, а такова политика ресурса, дать подсказку и показать путь решения, чтобы человек сделал сам и разобрался как работает, ну и ответ был полезен не только автору вопроса, а давал способ решения похожих задач.

    Во вторых вам нужен preg_replace(), а не preg_match_all(). Вот тут можно попробовать подобрать паттерн для вашего выражения.

    И в третьих - Ирохи Исики, так как в России и русскоязычных сообществах используется транскрипция Поливанова.
    Ответ написан
    1 комментарий
  • Как оптимизировать циклы?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    HTML (Form) ->
    в пхп получаем массив, из него ->
    foreach массив as ID
    {
    PHP (Curl) - из номера предмета запросом к API получаем ID ->
    PHP (Curl) - у предмета(ID) запросом к API меняем значения
    }.
    Ответ написан
    1 комментарий
  • PHP обрезает строку, хотя strlen выдаёт правильную длину, как это исправить?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    https://www.php.net/manual/ru/function.strlen.php
    Замечание:
    Функция strlen() возвратит количество байт, а не число символов в строке.
    ...
    mb_strlen() - Получает длину строки
    Ответ написан
    Комментировать
  • Как получить значение INPUT с помощью PHP?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Напрямую получить с помощью пхп не получится, и на самом деле вариантов 2:
    1) Получить "отрендереную" страницу с помощью какого-то консольного браузера типа пупитир, хедлесс хром или селениум и уже из него достать нужное значение.
    2) Посмотреть что делает скрипт (а обычно скрипт тупо прописывает какое-то заранее сгенерированное значение) и вытащить это значение из скрипта, а не из инпута.
    Ответ написан
    4 комментария
  • Чем отличается пользователь с динамическим ip от пользователя с другим ip?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    У меня цель блокировать пользователей, которые нарушили правила сайта.

    1) Заблокировать на 100% можно только зарегистрированного пользователя. Это конечно не дает гарантии от повторной регистрации, но сильно отбивает желание куролесить, если после каждого чиха придется заводить новый акк.
    2) Если регистрации нет и пользование ресурсом открыто для любого, то нужно определиться:
    а) Либо вы боретесь с "хацкерами", знающими что такое инкогнито, впн, прокси, тор и вот это все, и тогда все это мышиная возня, не имеющая никакого эффекта. Вводите обязательную регистрацию или смиритесь.
    б) Либо вы знаете что в основном это домохозяйки и дедушки с примерным пониманием где находятся какие кнопки на клавиатуре, и тогда достаточно бана по айпи и куке.
    Ответ написан
    Комментировать
  • Как передать данные?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    $_POST = json_encode($_POST); - смысл этой строки объясните?
    Ответ написан
  • Собеседование php программиста, какие технологии, кроме php/sql/фреймворка нужны?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Во первых - пхп уже подразумевает веб, и значит как-то общаться с фронтендом нужно уметь, тем более js в базовых вещах ничего сложного не несет. И уж тем более JQ.

    Во вторых - 90% вакансий пхп подразумевают "нам нужен фуллстек, но основной код на пыхе, ангулара не будет".

    Ну и в третьих по сути вопроса:
    сомневаюсь, что на вакансию джуна будет человек, знающий jquery,ajax запросы, да еще и связав их между собой и php.
    Не сомневайтесь, там делов на 5 минут посмотреть как это делается и понять как работает, дальше все обычно просто. А используется все это практически в каждом проекте. Короче жс худо-бедно но надо знать.
    Ответ написан
    Комментировать
  • Почему PHP-функция str_replace не видит букву ё, а mb_convert_encoding превращает её в "?"?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    mb_str_replace()

    У вас там 2 разных "ё" - пример
    Ответ написан
  • Как сделать вывод последнего сообщения между двумя юзерами?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    сообщение - это три значения: id, from_id (отправитель), to_id (получатель), msg (сообщение).
    Точно три??? А то я плохо считаю на пальцах... А еще неплохо было бы дату сообщения как то хранить, и собсно по ней сортировать...

    Мы получим дупликаты. Как поступить?
    Дубликаты чего?

    Как поступить?
    Зависит от того что вам нужно, в приведенных запросах вы получаете всю выборку, так как лимит на количество записей у вас не обозначен. Последний запрос с ограничением в одну запись я думаю подойдет, но я бы все же рекомендовал добавить дату (чисто по логике- хотелось бы знать кто и что когда кому отправлял) и уже по дате делал ордер.
    Ответ написан
    Комментировать
  • Почему перестал работать file_get_contents?

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

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Параметр который я хочу передавать это ключ, который у каждого пользователя свой.
    Если у каждого пользователя он свой, то зачем вам его куда-то писать на фронте? Проверяйте это на сервере.

    Я бы хотела передавать этот ключ когда пользователь заполняет форму авторизации, что бы прописать, что если логин: Петя, то передаем ключ 123, если логин Вася передают ключ 443.
    Очень интересно как вы будете знать что это Петя, если пользователь еще не авторизирован?

    конечно ключ буду передавать через скрытое поле.
    Даа, это конечно же самый безопасный метод передачи ключей, прям по заветам Сноудена...
    Ответ написан
  • Как протестировать производительность функций начинающему php-разработчику?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Как абсолютно верно заметил Роман Юрьевич Ипатьев, проблема не в вызове аргументов, а в абсолютно нелогичном подходе к архитектуре, которая тут просто швах...

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

    Файл RouteController.php обрабатывает URL
    уже плохо, контроллер не должен знать что-то про урл и прочие переменные извне. Для этого есть роутер и реквест.

    и делает вывод о типе контроллера (гость, авторизованный пользователь или администратор).
    Как тип контроллера соотносится с ролью пользователя?

    Создаёт объект этого контроллера и отправляет в него аргументами (str)имя контроллера и (str) полученный URL.
    У вас же уже вызван контроллер, RouteController.php, либо он не контроллер, либо зачем тогда снова контроллер создавать? И зачем ему урл?

    Эти аргументы попадают в родительский контроллер файла Controller.php и оттуда далее используются в условном ветвлении и передаются в соответствующие функции, где дальше из этих функций опять передаются в нужные функции.
    Сложнааа, слоожжнаа (с) Карина. Очень запутанно и очень странно работает ваша творческая мысль.

    На самом деле все проще и сложнее одновременно. Понимаю что на основе разрозненных "слышал звон" вы попытались создать что-то свое, в надежде создать лучшее светлое будущее для всех, но, короче, ничего не получилось.

    Про то как оно примерно должно работать рассказывать наверное не стоит, чтобы не смутить ваш творческий поиск готовыми решениями. Если будет интересно - Дмитрий скинул вам замечательный курс от Елисеева, прям рекомендую.
    Ответ написан
  • Как удалить тег и содержимое с помощью preg_replace?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Xpath, simpleXml.
    Ответ написан
    Комментировать
  • Почему fetch() возвращает bool?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    У вас все смешалось, соединение, стэйтмент, резалт...
    ....
    if (!$stmt->execute()) 
          {
              echo "Не удалось выполнить запрос: (" . $stmt->errno . ") " . $stmt->error;
          }
    $result = $stmt->get_result();
    $row = $result->fetch_assoc();
    var_dump($row);
    Ответ написан
    Комментировать