Ответы пользователя по тегу PHP
  • Как сделать чтоб при отправке номера телефона страница не перезагружалась?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    $('#btn_submit').click(function(e) {
       e.preventDefault();
        // собираем данные с формы
    Ответ написан
    1 комментарий
  • Почему тормозит код записи в MySQL после разбивки его на функции?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Вот к примеру была функция check_category - вообще ничего не записывала:
    $sql = "SELECT category_id,name FROM {$prefixTables}category_description WHERE name='".iconv('UTF-8', 'UTF-8', trim($str['category']))."'";

    $res = $pdo->query($sql);

    while($row = $res->fetch())
    {
    $category_id = $row['category_id'];
    }

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Зависит от формата даты. пример массива не помешает. так же как и вариант "такое хочу получить".
    2) Если данные получены из бд, правильным ответом будет добавить сортировку в запрос.
    Ответ написан
    21 комментарий
  • Как посмотреть логи php при fetch post запросе?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    0) 500 статус говорит о том, что отладка выключена, а ошибки есть. Можно включить отладку, или смотреть лог ошибок пхп.
    1) пхп код полное... недоразумение. Видно что это не "родной" ваш язык, но все же, хоть как-то бы посмотрели...
    2) Инъекции прям в первой строчке
    3) эти or die(mysqli_error()); ... прям ностальгия по началу нулевых...
    4) Что будет если резалт пустой?
    5) на клиенте, если присмотреться, ожидается какой-то более сложный ответ, нежели просто жсон закодированный массив данных из бд...
    Ответ написан
    6 комментариев
  • Какие ограничения в PHP существуют?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    какая у тебя ошибка выдается, если отвалилось соединение с БД? а если не хватает ОЗУ? где эта ошибка выводится? В логах PHP? На самой странице, где выполняется код? У меня такие ошибки никогда не выводились. Я догадывался о них интуитивно. Как раз таки пробуя менять лимиты.
    Все ошибки логируются, если специально не выключать логи. По этому чтобы знать что за ограничение у вас сработало, не надо тыкать пальцем в небо и молиться Линусу Торвальдсу, надо просто посмотреть что конкретно произошло и решать конкретную проблему.

    Но такие ошибки не выводятся. Я подумал, может, дело в настройках apache / nginx. Но ты сказал PHP.
    Хостер может запретить изменение настроек сервера через ini_set, так что это ни о чем не говорит. В логах в любом случае ошибка отразится.
    Ответ написан
  • Как вывести элементы за пределами цикла?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    $arSelect = array(); // создали массив
    while($region = $dbItems->fetch()) {
    /*в $arSelect лежит список регионов*/
        $arSelect = array(  //еще раз создали НОВЫЙ массив???
            $region["ID"] => $region["NAME"] 
        ); // каждую итерацию здесь будет новый массив с 1 элементом
    // логично что в конце выполнения тут будет только значение последней итерации
    }
    Надеюсь вы знаете как добавить элемент в массив?
    Ответ написан
    Комментировать
  • Как установить кодировку при выгрузке данных в CSV?

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

    Ну или на сервере конвертируйте в 1251 нужный текст...
    Ответ написан
    Комментировать
  • Почему неправильно изменяется текст php?

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

    Но сейчас он показывает
    Ничего он не показывает.
    Ответ написан
    Комментировать
  • Как лучше организовать замену текста в строке?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Решение "в лоб":
    1) В соответствующие позиции перед и после нужного слова добавляем символы, например |
    2) Делаем так со всеми словами, естественно вставки производим с конца текста к началу, дабы не сбить позиции.
    3) Заменяем все простым реплэйсом, добавляя в паттерны замены нужные символы.

    Как я и писал в комментариях, 90% что вы решаете стандартно банальную задачу через пятую точку, и есть способ проще и эффективнее.
    Ответ написан
    2 комментария
  • Как отсеять сгенерированные email?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    2yiwuei3827ryifg2i28ftiwegfi@yandex.ru или такие vladimir_saveliev_98@mail.ru, natalia_blohina_93@list.ru
    А с чего вдруг их не принимать? Они валидны и соответствуют RFC. Какой смысл их удалять? Или точнее, какой смысл удалять работающие емайлы? Вам не пофиг как выглядит емайл, если он рабочий? Или есть какой-то особый смысл в красивых емайлах?
    Ответ написан
    4 комментария
  • Как сделать чтобы при неправильном вводе пароля была ошибка?

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

    $password = md5($password."ghjsfkld2345");
    забыть как страшный сон, читаем про password_hash(), делаем как надо.

    $result = $mysql->query("SELECT * FROM `users` WHERE `login` = '$fullname' AND `pass` = '$password'");
    Читаем про подготовленные выражения, автору видео ставим дизлайк и больше всякое г не смотрим.

    setcookie('user', $user['fullname'], time() + 3600 * 24 * 90, "/");
    работать с куками вместо сессии - отдельный вид некомпетентности, точнее - открытое вредительство.

    $mysql->close();
    Абсолютно лишняя строка, драйвер сам закрывает соединение по завершении скрипта, делать это вручную нужно лишь в исключительных случаях, еще один пинок в карму...
    Ответ написан
    7 комментариев
  • Как в php сделать так чтобы по ссылке xml открывался php файл?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    в этом подключенном файле есть массив
    function getTheCars($array) {
    Тут нет массива, тут есть функция, которая принимает некий аргумент. Во первых - это только объявление функции, сама функция нигде не вызывается. Во вторых - нужно туда передать $array, который тоже должен откуда-то взяться. Странно искать что-то, что возьмется ниоткуда... Ну и $car - внутренняя переменная функции, и вне этой функции просто не видна.
    Ответ написан
    Комментировать
  • Как сделать так, чтобы при добавлении в ссылку язык роуты не поломались?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Фреймворк - старейший зенд
    https://framework.zend.com/manual/2.1/en/modules/z...

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

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

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

    Более того, если вы реально доросли до того что стандартный механизм сессий вас чем-то не устраивает, то скорее всего вы уже пользуетесь каким-то фреймворком, а в современных фв практически везде используется обертка и интерфейс для обращения к сессии, так что сменить способ хранения сессионных данных на бд/редис/мемкеш/чета свое дело 15 минут.

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

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    для того чтобы удалить конкретный комментарий, нужно передавать его id, ну и тогда запрос будет:
    DELETE FROM `comments` 
    WHERE `user_id` = :user_id 
    and `id` = :comment_id

    Кроме того, в куках держать айди пользователя нельзя (я спокойно могу напихать в свои куки любой айди и рулить всеми доступами рандомного пользователя). Для этого есть сессии. Так же, для удаления комментариев лучше использовать специальное поле, отвечающее за статус комментария, меняя его на (условно) "удален".

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

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

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