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

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

    В целом все немного сложнее, там на сервер обычно отсылается время последнего обновленного сообщения, в ответ присылают все новые записи, которые добавляются в конец окна чата.
    Ответ написан
    Комментировать
  • Как обезопасить пароли при регистрации/авторизации?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Отличный подход - заранее знать что твои данные в дырявых руках )
    Если код сольют, разницы никакой не будет, точнее password_hash() даже понадежнее будет.
    Если код не сольют, а допустим только бд вытащат, hash_hmac выглядит надежнее, но по сути не сильно далеко от первого варианта.

    На практике во первых задрачивать в псевдобезопасность абсолютно никакого смысла не имеет, ибо password_hash() достаточно надежен, и если уж очень хочется "понадежнее" - cost побольше и вперед, а во вторых плодить кастомные решения в обход специализированных функций это фуфуфу, кака, моветон и гемор всем кто будет это поддерживать.
    Ответ написан
    2 комментария
  • Как получить название категории материала?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Типа такого что-то...
    SELECT * 
    FROM bel_master bm
    LEFT JOIN bel_category bc
    ON bc.id = bm.category_id
    WHERE some statement
    ORDER BY some_field
    LIMIT 50
    Ответ написан
    Комментировать
  • Есть код в PHP с img src но когда я открываю его в браузере то пишет img src(unknown)?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Есть такой простой код, но, он не работает, почему то.
    Все работает, просто вы не умеете работать с данными (надеюсь пока что)

    Что делать

    Во первых научиться пользоваться var_dump(), убедиться что в $_SESSION['user']['avatar'] ничего нет, или лежит что-то неадекватное, проверить запись в бд и убедиться что там это поле пустое, ну или так же содержит что-то неадекватное.

    уже взрываюсь мой первый сайт и столько гемора
    Ну, у меня для вас плохие новости... Либо сдаваться, это не ваше, думайте над другим направлением в карьере. Либо приготовьтесь к тому что учиться будете практически всю жизнь. Конечно большую часть освоите за первые несколько лет, но новое будете узнавать постоянно. Со временем и опытом гемора станет сильно меньше, но окончательно он не пропадет никогда.
    Ответ написан
  • Как передать значение переменной из одного файла в другой php?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    get_headers(), желательно использовать HEAD-запрос, а не GET, в доке есть пример как это делать.
    Ответ написан
    Комментировать
  • Iframe как альтернатива ajax и отправка POST запросов?

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

    С точки зрения практичности и безопасности данный способ оправдывает себя?
    С точки зрения практичности - нет, так как это полная шляпа, мы такое писали в 2005, когда аякс как явление еще не существовал, а уже в 2012 появился нормальный XMLHttpRequest здорового человека, на который все быстренько переползли.

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

    Задавшись вопросом безопасности отправки запросов через ajax
    Если возникают вопросы безопасности при отправке данных через пост - значит вы что-то не то передаете...
    Ответ написан
    Комментировать
  • Отправка копии емейл пользователю?

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

    Можно переписать функцию sendEmail(), добавив в конец необязательный параметр емэйл, котрый по умолчанию пустой, и если он пустой - брать из константы, в противном случае использовать его значение как емэйл отправки.
    Ответ написан
    2 комментария
  • Загрузка страниц сайта PHP?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Есть сайт PHP 7.4
    Разбить на блоки проверки с замером таймингов, посмотреть какой кусок тормозит, далее уже можно сделать выводы о производительности, кэше, бд и что вообще происходит хотя бы понимать. А так - тыканье пальцем в лужу ответов не даст.
    Ответ написан
  • Как правильно указать время в PHP?

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

    Так как с датами "в голове" иногда сложно сопоставлять, для себя делайте умственную проверку:
    if($now_date_unix (пусть будет 27 число) > $otp1end_unix (пусть будет 17 число)) {
       // тут надо подумать и написать правильный вариант )
    }...
    Ответ написан
    Комментировать
  • Resource: что из себя представляю потоки в php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Официальная дока же вполне нормально объясняет. Если коротко - это общий интерфейс к последовательному набору данных, который позволяет читать, писать и искать в этих данных (как в файле). И все это в едином стиле. Интерфейс такой, типа. Грубо говоря нечто вроде юниксовского подхода "все на свете это файл".

    Мне не понятно, где тогда хранится весь ответ клиента, если не в памяти ?
    В памяти конечно, но так как это оболочка над данными, то реализация скрыта, условно вы можете считать это файлом, который может активно меняться.
    Ответ написан
  • Многоязычный сайт php twig - как лучше реализовать?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Локализация (хорошая) всегда держится на кастомных наборах переводов, обычно это или таблица в бд, либо файлик с массивом, который правят по ходу наполнения сайта. Как конкретно реализовывать зависит от многих параметров, в том числе и от наличия готовых решений для используемого фреймворка. Ну или свое что-то пишут. Но смысл всегда примерно один - итоговый массив с ключами типа
    $translate = ['welcome'=>['ru'=>"Приветики",'jp'=>"Komichiwa"]...];
    Как достать значения по ключу думаю не надо разжевывать?..
    Ответ написан
    2 комментария
  • Как из preg_match получить ссылку на фото?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    $pattern1 = '#<img.*src="([^\s]+)".*>';
    Ответ написан
    Комментировать
  • Как сделать замену между тегами?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    $t = '<p>qwe asd zxc.cvb dddfg. dfgdfg dfgdfg.ddg ertert. dfgdfg</p>';
    
    function repl($matches){
        return $matches[1].preg_replace('#(\.)+([^\s\.])+#', '$1 $2', $matches[2]).$matches[3];
    }
    
    $result = preg_replace_callback('#(<p>)([^<]+)(<)#', 'repl', $t);
    var_dump($result);
    Ответ написан
  • Почему функция confirm($txt) возвращает старый(прошлый) текст файла?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    ...
    var confirm = confirm(txt);// здесь получаем тру или фалс, ок...
    ...
    data: "confirm=" + encodeURIComponent(confirm) //здесь его енкодим и отправляем на сервер зачем-то...
    ...
    return filter_var(file_get_contents('text.txt'), FILTER_VALIDATE_BOOLEAN);//читаем файл, получаем из него значение...

    При выполнении функции вы выводите в браузер яваскрипт, и тут же запрашиваете содержимое файла. Так как вывод в браузер и выполнение функции жс в браузере происходят с серьезной задержкой, естественно вы получите "старое" значение, причем новое скорее всего будет содержать какой-то бред по типу 'true'/'false' строкой, судя по коду.
    Ответ написан
    Комментировать
  • Как реализовать в MySQL топики форума, которые участвуют сразу в нескольких разделах?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Мне почему-то кажется, что 'поиск Fulltext' должен подойти для такой задачи,
    Вам кажется. Кроме того что фуллтекст вообще не для этого, он еще и работать будет относительно медленно, так как вариативность значений будет низкая. Про "удобство" работы со строкой вместо нормального индекса вообще молчу.

    Нужно, чтобы можно было быстро находить все темы (топики) для одного заданного раздела (искать тему, которая относится сразу к двум и более разделам не нужно).
    м2м, это надежно и быстро, достаточно знать индекс раздела.

    Как такое реализовать максимально просто?
    Совет: Не гонитесь за кажущейся простотой, вы хапнете гораздо больше гемора от неправильной архитектуры, нежели от еще 15 минут, потраченных на создание таблицы справочника, пивот таблицы и написания 2 джоинов в запросе. Важнее сделать правильно, а не проще.
    Ответ написан
    3 комментария
  • Как сделать, чтобы неподходящие под условие не забивали лимит?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    $string = '';
    while($row = mysql_fetch_assoc($request)) {
      if (file_exists('/www/ПУТЬ/'.$row['id'].'_100.jpg')) 
      {
         $string .= 'BODY';
      }
      else 
      {
         $string = '';
         break;
      }
    }
    echo $string;


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

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Фотошоп + экшн в 4 кнопки. Слить всю папку локально и натравить на нее экшн в батч режиме. Средствами серверного ПО имхо это малореально.
    Ответ написан
    9 комментариев