• Почему при ajax запросе на php файл ничего не приходит?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Вроде запрос уходит
    Что в пэйлоаде? Вангую что там ничего связанного с $_POST переменными нет...

    contentType:"application/json; charset=utf-8"
    Так как вы явно указываете что будете передавать строку жсон в теле запроса, не понятно что вы пытаетесь найти в $_POST.

    <?echo($_POST);?>
    Во первых отвыкайте использовать шорт теги, во вторых переменная $_POST это массив, и соответственно через ехо его выводить бессмысленно, и в третьих, как я написал выше, там ничего нет, так как данные передаются в теле запроса.
    Ответ написан
  • Почему не отправляется форма?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Что пишет конслоль?
    2) Запрос вообще выполняется? В нетворке виден запрос по субмиту на mail.php?
    3) Что показывает нетворк в пэйлоаде запроса?
    4) Что возвращает сервер на запрос?
    Ответ написан
  • Как узнать найти и извлечь PaReq, не будучи программистом?

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

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

    Сложный ответ: Для того чтобы выявить проблему используют логирование и профилирование. В лог пишутся все запросы к бд или места где предполагается длительное выполнение кода (например запросы к апи или другим сайтам). Затем анализ, потом нахождение решения и фикс.
    Профилирование же состоит из комплекса действий по нахождению узких мест. В частности код условно делится на блоки, затем выполнение каждого блока замеряется и выясняется какой блок создает задержки. Далее соответственно данный блок дробим до тех пор пока не находим конкретное место проблемы. 80% вероятности что это будет какой-то запрос, с выборкой из нескольких таблиц и структурами по типу EAV, 18% что запрос к какому-то апи/сайту и 2% что тормозит именно криво написанный код (хотя это вордпресс, тут вероятности примерно равные). Что делать зависит от того что за проблема в конкретном случае. Иногда надо что-то закешировть, иногда править запрос, добавлять индексы, возможно что-то менять в структуре. Тут уже от ситуации...
    Ответ написан
    5 комментариев
  • Как сформировать последовательность из дат?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Перевести дату в стандартный формат, далее можно использовать MONTH() YEAR() DAY() для нужной сортировки.
    Ответ написан
    Комментировать
  • В каком направлении развиваться SQL разработчику?

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

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

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

    1) Выбрать все ссылки из сайдбара
    2) пройтись циклом по выбранным элементам, сравнить входит ли в текущий урл хреф из ссылки
    3) Если входит - применить к ней стиль с соответствующими эффектами
    Ответ написан
    2 комментария
  • Для чего может понадобиться создавать массив с пустыми значениями?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Например чтобы array.length был определенной длины... Вообще если функция есть, скорее всего для чего-то она нужна, иначе бы ее не создавали...
    Ответ написан
  • Как сделать перенаправление по слову html?

    ThunderCat
    @ThunderCat Куратор тега HTML
    {PHP, MySql, HTML, JS, CSS} developer
    js + onClick + preventDefault() + window.location.href
    Ответ написан
  • Аналог sql запроса LIKE% для ElasticSearch?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    SELECT * FROM store WHERE LIKE 'сбер%'
    Это по тому что у вас и с SQL не все норм. Хинт - между WHERE и LIKE пропущена важная составляющая.

    UPD: Судя по ошибке у вас там индекс на фултекст, по этому вместо лайк должно быть что-то типа MATCH(cp_name, 'сбер', 'fuzziness=AUTO:1,5')
    Ответ написан
  • Почему сессия не уничтожается?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Давайте вместе почитаем документацию и поучимся понимать что пишут умные дяди и тети:

    session_destroy() уничтожает все данные, связанные с текущей сессией. Данная функция не удаляет какие-либо глобальные переменные, связанные с сессией и не удаляет сессионные cookie. Чтобы вновь использовать переменные сессии, следует вызвать .
    Это значит что у вас в текущем состоянии пропадает переменная $_SESSION и связанный с ним идентификатор, но кука сессии и файл сессии на сервере никуда не деваются. И при следующем обращении к серверу вы делаете session_start() и сессия вновь работает.

    Замечание: Нет необходимости вызывать session_destroy() в обычном коде. Очищайте массив $_SESSION вместо удаления данных сессии.
    Очень важное замечание, как раз связанное с вашей возмущенной репликой о том что "ну вот так же работает!111!". При большом разнообразии настроек и конфигураций серверов, сессия может вести себя по разному, что с одной стороны дает гибкость поведения если знать как и зачем вы что-то делаете, с другой стороны может вызвать проблемы, как в вашем случае, когда вы не очень понимаете зачем какие настройки и как обойти возникшие сайдэффекты. По этому самым верным решением является удаление данных из сессии.

    Чтобы полностью удалить сессию, также необходимо удалить и её идентификатор. Если для передачи идентификатора сессии используются cookie (поведение по умолчанию), то сессионные cookie также должны быть удалены. Для этого можно использовать setcookie().
    Чего вы очевидно не делаете.

    При включённой опции session.use_strict_mode, вам не нужно удалять устаревшие cookie идентификатора сессии. В этом нет необходимости, потому что модуль сессии не примет cookie идентификатора сессии, если с этим идентификатором сессии нет связанных данных, и модуль сессии установит новый cookie идентификатора сессии. Рекомендуется включать опцию session.use_strict_mode для всех сайтов.
    Рекомендуемые настройки, которые возможно вам помогут решить проблему именно вашим способом, НО вышеописанный способ является рекомендуемым.
    Ответ написан
    Комментировать
  • Как правильно сформировать такой запрос?

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

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

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

    Подскажите, пожалуйста, в чем моя ошибка?
    Использование внутренней функции mail() оправдано только в случае если это полностью контролируемый и настроенный вами сервер.

    Используйте phpmailer/swiftmailer.
    Ответ написан
    1 комментарий
  • Как сгрупировать запрос в Laravel?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Что-то типа:
    $a = Model::orderBy("id", 'desc')->limit(3);
    $b = Model::latest()->union($a)->get();
    Ответ написан
    Комментировать
  • Почему не приходит значение переменной при Ajax запросе на страницу отправки?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    С помощью JS я получаю кое какие значения. И мне их нужно отправить на страницу, чтобы сторонний парсер зашел на эту страницу и смог их прочитать.
    Во первых, сторонний парсер скорее всего не увидит ваши значения полученные через js, так как 99% парсеров читают текст страницы, но не выполняют скрипты, а значит они увидят ровно ничего. Во вторых надо разобраться с кашей в голове и в коде. Давайте смотреть:

    При обновлении страницы значение txt не приходит на страницу,
    Оно не на страницу должно приходить, а в переменную data внутри скрипта.

    отображается null и код $('p.out').text(data);
    Нулл отображается так как вы открыли страничку методом get, соответственно переменная $_POST абсолютно пустая. Далее вы скриптом запросили страничку уже методом POST, и в ответ получили ВЕСЬ ЗАПРОШЕННЫЙ ФАЙЛ, начиная с <html> и далее весь текст страницы. Ну и в конце уже правильный ответ в json, так как сейчас метод запроса POST.
    Для особо... задумчивых - в аякс колбэк в переменную data возвращается ВСЕ что вернул сервер, а не только то что вы себе нафантазировали.

    Закономерный вопрос, я бы сказал классика русской философии - что делать? Во первых, разобраться как это все работает и почему все именно так как получилось. Чисто для лучшего понимания как вообще работает связка пхп-жс-аякс (ну и все подобные взаимодействия клиент-сервер). Ну и логично что если нам нужно получить только json_encode($arr);, то выводить его надо ДО вывода всей остальной страницы, и на этом сказать скрипту строгое "стопэ, дальше не надо", при этом если метод НЕ ПОСТ, то пхп скрипт вывода срабатывать вообще не должен. Как это реализовать оставляю на вашу фантазию, сообразительность и умение пользоваться гуглом.
    Ответ написан
    5 комментариев
  • Почему не приходит ответ на запрос?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    explode(), foreach массива, trim() значений, опять explode(), получаете ваши значения.

    UPD:
    Как теперь массово выдать монеты этим пользователям через mysqli ?
    Ну так откуда нам знать? Что за таблица, что и как там храните? Вообще понятие "массово" вставить разнородные данные может подходить только к инсерту, апдейт в вашем случае делается единично каждой записи по условию совпадения поля. Внутри вашего форича после получения данных и делайте апдейт.
    Ответ написан
    Комментировать
  • Как исправить ошибку при подключении БД Access к PHP?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Вроде ODBC не предназначен для аксеса, везде рекомендуют использовать пдо. Либо ставить руками поддержку аксеса, что скорее всего в любом случае понадобится.
    https://stackoverflow.com/questions/2222684/connec...
    https://stackoverflow.com/questions/19807081/how-t...

    Так же, что нужно для доступа к аксесу как источнику (там про мс скуель, но драйверы будут одинаковые нужны и для пыха):
    https://learn.microsoft.com/ru-ru/sql/integration-...

    PS: Все еще не понимаю назачем издеваться над собой, не легче экспортировать базу во что-то живое?
    Ответ написан
    2 комментария
  • Как работает тег video?

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