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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    if (!preg_match('/^[a-z0-9\-]+$/', $title)){

    *цифры *дефис

    PS: По уму заглавные буквы тоже вроде должны входить?
    PPS: https://regex101.com
    Ответ написан
    2 комментария
  • Фреймворк, макро-Фреймворк для разработки портала?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    делать на основе макро-фреймворка или же потратить пару месяцев и изучить Фреймворк какой-нибудь?

    При наличии понимания базовых вещей ООП и понимании основного механизма MVC пару месяцев на фреймворк это много. Как тут уже написали - есть тот же ларавель, он не гениально построен, учит немного неклассическому подходу к коду и моделям, но для новичка с задачей быстро войти в тему и написать что-то свое -вполне гуд. Когда почувствуете что выросли из него - перейдете на что-то посрьезней, Йу /Симфони/Зенд.

    В любом случае - писать свои костыли не есть гуд, задач интересных и сложных на большом проекте и так обычно много, нужно максимально использовать готовую кодовую базу, которую разрабатывали вполне толковые прогеры в течение достаточно длительного времени.
    Ответ написан
    3 комментария
  • Как отловить ошибку Ajax + php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Почему-то обращение на proces.php выдает ошибку 500.

    обычно так происходит при выключенном выводе ошибок, при фатал еррор. Смотрите логи или ini_set('display_errors', 1); вставьте перед кодом.
    Ответ написан
  • Как обратиться к функции через $this в цикле?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    SELECT * FROM `users` ORDER BY `users`.`id` DESC LIMIT 2,1
    Ответ написан
    Комментировать
  • Запуск скрипта на php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    6 комментариев
  • Как сделать регулярку под ссылку вк?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    /https:\/\/vk\.com\/wall[0-9]+_[0-9]+/

    PS: Поздравляю с сотым вопросом! )
    Ответ написан
    Комментировать
  • (tab) Как задать site.ru/#sec1 уникальный URL типа: site.ru/about?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Если есть роутинг и вы можете управлять выводом программно(то есть понимаете как работает роутинг/контроллеры), то нет проблем во вьюшке сделать вывод яваскрипта со скроллом до нужного якоря, по условию наличия ключевого слова в роуте/параметре.
    что то типа такого:
    //в контроллере/экшене
    if(!empty($this->param[0])){
        $this->view->scrollTo = $this->param[0];
    }
    
    // во вьюшке
    <script>
    $(document).ready(function () {
    <?
    if(!empty($this->scrollTo)){?>
    location.hash = "#<?=$this->srollTo?>";
    <? } ?>
    })
    </script>
    Ответ написан
    Комментировать
  • Каков предел одновременных соединений в Apache + PHP?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Комментировать
  • Как получить корректный тип данных из MYSQL в Laravel?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    На SO есть какое-то решение, но выглядит как что-то нестандартное, имхо проще в классе дб добавить при возврате из селекта проверку на тип, и возвращать уже в готовом виде, что то типа:
    if($row = $sql->fetch(PDO::FETCH_ASSOC) !== false){
           foreach($row as $k=>$v) {
                if(is_numeric($v)) $row[$k] = intval($v);
            }
    }


    Это тоже костыль, но хотя бы не придется в каждом запросе все оборачивать в проверки.
    Ответ написан
  • Почему скрипт выполняется несколько раз вместо одного?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Это
    <button class="center-block" id="but" onclick="game()">Крутить</button>
    и это
    but.addEventListener('click', function func() {
    что за фигня? Зачем по клику создавать на этом же элементе листенер клика?
    Ответ написан
  • Данные из таблицы в массив php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    прочитать про формы?
    Ответ написан
    Комментировать
  • Ajax + Роутинг?

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

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

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    при инициализации соединения выполнить запрос "SET time_zone = '+2:00';" (или другой соответствующий часовой пояс), в пхп соответственно тоже настроить таймзону, чтобы не было расхождения, настройки ОС трогать нет необходимости.
    Ответ написан
  • Как правильно реализовать эту задачу?

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

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

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    вариант 1:
    Каждый из блоков заключить в тег <form></form>, внутри создать соответствующие скрытые поля. При субмите будете получать весь набор данных, согласно которым уже можно что-то в базу писать. У вас же судя по всему одна форма на весь список. По этому в обработчик попадают все данные, но та как поля дублируются по имени - учитываются последние полученные данные, то есть самые нижние поля. Что и происходит у вас, последний набор меняет состояние.
    Вариант 2: принцип как у варианта 1, только через яваскрипт отлавливать нажатую кнопку и от этого уже делать субмит нужных полей, например используя аякс. Вариант более сложный для новичка, и в целом не слишком популярный.
    Вариант 3: смесь 1 и 2 - при субмите формы отлавливать событие яваскриптом и отправлять данные аяксом на сервер в виде сериализованных данных. По результату ответа от сервера менять состояние кнопки яваскриптом на "готово", или как там у вас, и кнопку дизэйблить.
    Ответ написан
    Комментировать