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

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

    еще раз внимательно и по буквам читаем дебаг:
    [default] => Array ( [session_name] => 123 )
    смотрим что сначала писали вообще $key = $_SESSION['name'] (явно факап по невнимательности), а затем тянем $_SESSION['session_name'], хотя дебаг как бы намекает что все ложит в дефолтный массив $_SESSION['default'], шоб не путать с ручным добавлением если таковое случится.
    Ответ написан
    5 комментариев
  • Как объединить запрос?

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

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

    $edit_row = $stmt_edit->fetch(PDO::FETCH_ASSOC);
    print_r($edit_row); // здесь скорее всего будет false, не нашлось соответствующих записей в бд.
    extract($edit_row);



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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    $try = 10;
    $content = "";
    while($try>1){
    if(empty($content) ){
       $content = curl_exec($ch);
    }
    else break;
    $try--;
    }
    Ответ написан
    Комментировать
  • Как перейти на action контроллера?

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

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

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Ваш вопрос конечно весьма запутан и туманен, что вы хотите можно лишь угадывать.
    Если вы хотите при добавлении записи обратно получить все записи включая только что добавленную, и вывести их блоками - нажмите 1 :)
    Если вы хотите получать на текущей страничке(без перезагрузки) еще один хтмл блок, в который выведется последняя добавленная в бд запись нажмите 2 :)
    Ответ написан
    2 комментария
  • [Maps] Отправка SQL через JS/PHP?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Есть БД вида time -> array[];
    Шта??????????? Может данные такого вида?
    рисовать массив array[] путем обращения к БД
    Куда рисуем???????????
    В качестве БД рассматривается PostgreSQL (или MySQL?)
    так бд есть или еще только рассматривается???
    Подскажите, как это можно оформить, чисто на JS - читал небезопасно
    Если имеется в виду JS на странице пользователя - не столько небезопасно, сколько нереально, обмен данными с бд осуществляется на серверной части, между серверным скриптом и бд.

    UPD: Смотрите работу с ajax, отправляйте запрос скрипту на сервере, получайте json массива из бд.
    Ответ написан
  • Как оптимизировать сервер под тяжелые скрипты с небольшим количеством пользователей?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    А есть возможность переписать серверные скрипты на, допустим, С, или чем то компилируемом, питоне например, или это не входит в проект? Это серьезно ускорило бы работу системы.
    Диски - если есть возможность и еще не сделали - поставить ssd, это реальный прирост даст при работе с файлами.
    Если есть работа со значениями key->value ставьте редис или мемкеш и оптимизируйте под них скрипты.
    Остальное без конкретных деталей сложно сказать, бо скрипты с такими расчетами сложно невидя оптимизировать.
    Ответ написан
    5 комментариев
  • Как вывести нужные значения?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    А разрешите спросить, зачем вам статик? Может я чего то недопонимаю? Не проще сделать нестатический метод и нормально создавать экземпляр и юзать $this?
    Ответ написан
    Комментировать
  • Как хранить массив пользовательских данных? Сессии или куки?

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

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Ничего не мешает поменять метод на post. В коде изменится только $_GET на $_POST переменные.
    Перед заливкой в базу обычно неплохо проверять данные на "качество", загружать данные в базу прямо из пост/гет - плохая практика.
    Подумайте о том как будут именоваться файлы, как их структурировано хранить и привязать к определенной записи.
    Как избежать дублей и как удалять их при удалении записи.
    Удачи )
    Ответ написан
    Комментировать
  • Почему не загружаются файлы на сервер (PHP)?

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

    UPD: папку укажи с абсолютным путем от document_root.
    Ответ написан
  • Как сделать проверку на корректность введённых в форму данных конфигурации - имя базы данных и пароля?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    А чем ваш костыль плох, ну кроме того что он зачем то все объекты обходит? Может я чего не понимаю?
    Грохнул папку - создал заново, сильно шустрее чем рекурсивно все обходить по 1 объекту, если в кеше у вас 10 000 объектов, то это может затянуться на некоторое время, а так - чик, и по самые гланды.
    Ответ написан
  • Как улучшить качество фото при ресайзе PHP?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    как у вас все работает? city.php инклудится в index?

    ini_set('session.gc_maxlifetime', 3600*24*30);
        ini_set('session.cookie_lifetime', 3600*24*30);
        session_start();

    Сначала настраиваем сессию, потом вызываем.

    session_destroy(); убираете, зачем она там вообще? Если вы делаете инклуд, то вы сначала стартуете сессию, потом ее грохаете. Какой смысл, если unset($_SESSION['locality']); должно все что надо сделать.

    Если перед session_start() будет что - либо выводиться(хтмл или ошибка) сессия стартовать не будет. То же касается и session_destroy();

    Обычно если есть какие-либо ошибки их можно отследить в ерорлоге или включить вывод ошибок через настройку php.ini и понять какие проблемы возникли при создании сессии. В частности есть вариант что переполнен диск и сессии просто не создаются на диске.

    Если это все у вас отдельные страницы(то есть есть еще страницы кроме index.php) во всех в начале должно быть session_start();, иначе сессии работать не будут. Эта директива создает связь куки в браузере и сессионной записи на сервере, без нее механизм сессий работать не будет, т.е. сессию нужно каждый раз "перестартовать".
    Ответ написан
    2 комментария