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

    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 - при субмите формы отлавливать событие яваскриптом и отправлять данные аяксом на сервер в виде сериализованных данных. По результату ответа от сервера менять состояние кнопки яваскриптом на "готово", или как там у вас, и кнопку дизэйблить.
    Ответ написан
    Комментировать
  • Почему не отрабатывает php-скрипт по обращению из крона?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    На будущее: PHP при вызове из крона(и из консоли вообще) использует настройки, отличные от пхп настроенного "наружу" через Апач.
    По этому:
    1) Все пути должны быть абсолютные, как к скрипту, так и внутри него
    2) Такие глобальные переменные как $_SERVER, $_GET, $_POST и прочие скорее всего будут пустыми.
    3) Для отладки норм будет ">> somepath/log.txt 2>&1", но если скрипт не выполнится ничего естественно туда не запишется(не забываем что и здесь нужно указать полный абсолютный путь).
    4) Ничего не мешает использовать вполне вменяемое мвц и объекты, достаточно сделать настроечный файл с инициализацией глобальных переменных "вручную" и, в некоторых случаях, подправить автозагрузку. Для такого у меня используется отдельный clibootstrap и cliController, в который можно только из консоли )
    Ответ написан
    Комментировать
  • Как делать INSERT по кнопке?

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

    Хинт: инпут вида
    <input type='text' name='username[]' value='somename'>
    вставленный многократно, на стороне сервера будет интерпретирован как массив, который можно перебрать и получить весь список из ваших 100 строк. Если форма методом post, то соответственно на сервере будет $_POST['username'][0] = 'somename';
    Ответ написан
  • Как обратиться к объекту класса?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    в общем случае никак, нужно передать объект(читай ссылку) $data1 в метод класса 2.
    типа такого:
    $data1  = new Class1();
    $data2 = new Class2()
    $data2->funct1($data1);
    Ответ написан
    Комментировать
  • Какой php-фреймворк посоветуете изучить новичку?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) CI, Laravel - низкий порог, простая архитектура, однако располагает к "небрежному" и "неклассическому" коду.
    Yii, Symphony, Zend - сложнее, хорошо структурированы, достаточно "чистый" код, более строгий подход к коду и архитектуре.

    Нужно быстро стартануть и устроиться - учите 1(лучше ларавель, свежее и популярнее), хотите роста и сложных задач вкупе с привычкой к качеству кода выше среднего - выбирайте из 2.
    Ответ написан
    Комментировать
  • Как решить проблему "Notice: Trying to get property of non-object"?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Больше похоже на ошибку в вашей нумерации, при пустом/ошибочном запросе $query будет не объектом.
    На всякий случай проверьте
    ...
    var_dump($this->db);
    $query = $this->db->query($sql);
    var_dump($query);
    ...
    Ответ написан
    1 комментарий
  • PHP mail с вложеним файла. Почему не приходят файлы 30-40 мегабайт? А только мелкие вложения?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Ждем таких же вопросов про стринг и инт.
    Ответ написан
    3 комментария