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

    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?
    Как и все выучившие основы - пиши соц. сеть.

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

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Чет вообще пошли вопросы уровня третьеклассников...
    $faucet_arr['status'] = 'ok';
    echo json_encode($faucet_arr);
    Ответ написан
    Комментировать