• Как записать событие Js в бд?

    @S-a-n-d-r-0
    Как вариант:
    На стороне клиента:
    <div class=“google-ad-container”>someHTML...</div>
    <script>
    var google_ad_click = 0; //объявляете переменную, в которую будете считать клики
    $('.google-ad-container').click(function (event) {
      google_ad_click = google_ad_click + 1; //считаете клики
    });
    
    setInterval(function () {
    	var data = new FormData();
    	data.append('google_ad_click_tratata', google_ad_click);
    	$.ajax({ //отправляем все это дело на сервер
    			type: "POST",
    			url: "АДРЕСОБРАБОТЧИКАВСТАВИТЬСВОЙ.php",
    			data: data,
    			cache: false,
    			processData: false, // NEEDED, DON'T OMIT THIS
    			contentType: false, // NEEDED, DON'T OMIT THIS (requires jQuery 1.6+)
    			dataType: 'json',
    			success: function(respond){ //если ajax отправился нормально
    				google_ad_click = 0; //обнуляем счетчик кликов, чтобы начал считаться снова
    				console.log(JSON.stringify(respond)); //если вы что-то выводите на сервере, вывести это на консоль на клиенте
    			}
    			
    			,error: function(xhr, status, error) //если ajax НЕ отправился нормально
    			{
    				console.log('ajaxError xhr:', xhr); //выводим ошибки в консоль
    				console.log('ajaxError status:', status);
    				console.log('ajaxError error:', error);
    			}
    		});
    }, 30000); //проворачиваем это дело каждые пол минуты
    
    </script>


    На стороне сервера, в файле АДРЕСОБРАБОТЧИКАВСТАВИТЬСВОЙ.php
    if ($_POST['google_ad_click_tratata'])
    if (is_numeric($_POST['google_ad_click_tratata']))
    {
    	$addclicks = $_POST['google_ad_click_tratata'];
    	//А дальше - добавляем значение addclicks к нужному полю в вашей БД
    }

    Код может быть с ошибками, не проверял, но суть такая
    Ответ написан
    3 комментария
  • Одноразовая ссылка на node js?

    Stalker_RED
    @Stalker_RED
    Генерируй уникальную ссылку, записывай в БД, после использования - удаляй.
    Ответ написан
    Комментировать
  • Как в Ларавел передать объект из middleware в контроллер?

    Миддлвейры не предназначены для пропихивания чего-то в контроллер. Они обрабатывают реквест и либо перекидывают его следующему миддлвейру (и так до конца), либо возвращают ответ (который прервет исполнение).

    Если этот адский велосипед вы пишете только для того, чтобы авторизовывать пользователей и получать инстанс текущего пользователя, то в Ларе это уже из коробки реализовано.
    Ответ написан
    1 комментарий
  • Как добавить новый div при нажатии на кнопку?

    @Lord_Dantes
    Через PHP никак, это ведь серверный язык который обработается еще до показа странички. Только через JS мб
    Ответ написан
    Комментировать
  • Как увеличить время жизни Cookie?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    т.к. с Coockie я раньше не работал
    ну так может загуглить php cookie?
    Много ума не нужно, просто перезаписать куку с нужной вам датой
    Ответ написан
    Комментировать
  • Почему меняется последовательность вывода продуктов sql?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Нет, просто ни `p`.`sort_order`, ни `p`.`name` не входят в выборку. А в старых версиях MySQL при группировке любые поля, не входящие в условие группировки либо в агрегатные функции берутся из любой строки, попавшей в группу. В новых версиях такой запрос вообще выдаст ошибку.
    SELECT `p`.`product_id`, `p2s`.`price`
      FROM `product` AS `p`
      JOIN (
        SELECT `product_id`, MIN(`price`) AS `min_price`
          FROM `product_to_supplier`
          WHERE `price` > 0 AND `quantity` > 0
          GROUP BY `product_id`
      ) AS `p2s` ON `p2s`.`product_id` = `p`.`product_id`
      WHERE `p`.`status` = '1' AND `p`.`date_available` <= NOW() 
        AND `p`.`manufacturer_id` = '5011' 
      ORDER BY `p`.`sort_order` ASC, LCASE(`p`.`name`) ASC
      LIMIT 0,15
    Ответ написан
    2 комментария
  • Почему не изменяется строка javascript?

    Трудно сказать, поскольку код мягко говоря не очень. Включите вывод ошибок в php и смотрите в лог.
    Может быть не работает $('#nones').load("get.php"), посмотрите oncomplete либо втыкайте в консоль.
    Ответ написан
    2 комментария
  • Как оптимально питаться при работе головой?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    У кого какие секреты по поддержанию "боевой" формы котелка? Что едите и пьете для более эффективной интеллектуальной работы?


    По моему (возможно субъективному) опыту новые вкусы и запахи еды "прочищают мозг" так же хорошо, как и прогулки по незнакомым местам и другие перемены. И, в отличии от многих занятий, кулинарные эксперименты доступны - не нужно никуда ехать или тратить кучу денег. Причем совершенно не важно, что именно употреблять в пищу, важно постоянно пробовать новое. Если долго питаться одним и тем же, то и голова начинает хуже соображать, не важно какой там состав у продуктов. Так что мне кажется, что вот эти все подсчеты белков, углеводов и всего прочего - от лукавого, работают исключительно в первый момент, когда у человека резко изменяется рацион и на контрасте самочувствие мозга улучшается, если можно так сказать. И не забывайте, что убирая продукты из оборота очень легко провафлить пропажу определенных витаминов из употребления, что организму точно на пользу не пойдет, а при разнообразном питании такого не случится.
    Ответ написан
  • Route Parameters для нескольких контроллеров?

    @Kostik_1993
    Web Developer
    В вашем случае сам по себе Фреймворк бессилен. С этого момента начинается работа над архитектурой приложения. Для решения вашей задачи без использования каких-либо примесей в адресе единственным правильным и универсальным решением будет создание дополнительной таблицы которая будет содержать в себе префикс адреса, тип записи и ее id
    Для осуществления данной затеи смотрите полиморфные связи
    Роут у вас будет один, также и контроллер нужно создать который и будет заниматься обработкой
    Ответ написан
    Комментировать
  • Можете оценить фреймворк?

    Konata69lol
    @Konata69lol
    backend developer (php/go)
    С этим фреймворком вы наверняка провалите проект, т.к. будете вместо написания бизнес логики дописывать
    сам фреймворк, прикручивать к нему недостающие компоненты, фиксить баги и т. д.
    Ответ написан
    Комментировать
  • Как управлять миграциями в prod, если функционал выходит в разное время?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Единственное что вас спасет это:
    - атомарные изменения (миграции отдельно, код по каждой фиче отдельно)
    - последовательный деплой (сначала миграции, потом код и т.д.)
    - избавиться от процедур и функций в бд
    - ввести сервисную или даже микросервисную архитектуру, избавившись от связанности

    а лучше все выше перечисленное
    Ответ написан
    4 комментария
  • Плоха ли описанная архитектура, для laravel?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Чем это хуже подхода - когда вся логика распологается в сервисах, и в целом чем плох такой подход?
    Он ничем не хуже и не лучше. Пакеты - это одно, сервисы - другое, а Вы их зачем-то "складываете в одну корзину". Что по сути своей представляет пакет? - пакет - это некий модуль, решающий какую-то конкретную задачу, поддерживаемый и обслуживаемый конкретным веднором. В массе своей пакеты никак не привязаны к тому, где и как они будут использоваться. То есть, пакет - это некий набор общей логики, процессов и т.д. для решения какой-то задачи (или набора схожих/связанных задач), например для обработки изображений.

    Сервис или какая-то иная часть приложения - это часть именно конкретного (вашего) приложения, то есть что-то, что написано и предназначено конкретно для данного приложения, а не для универсального решения общих задач. Пакет - логическая противоположенность этому.

    Не стоит забывать, что чем более универсальным является какое-то решение (аки "швецарский нож") - тем хуже оно решает конкретную задачу. Это же полностью применимо и к тому, что описываете Вы. Если Вы будете делать некие универсальные решения и складывать их в пакеты:
    1. Потеряете выраженность решений
    2. Потеряете производительность
    3. Получите на обслуживание много приложений (пакетов) вместо одного конкретного

    Если же Вы собираетесь складывать в пакеты не "универсальные решения", а "точечные" - то это на мой взгляд худший из возможных вариантов, так как это будет всё то же "размазывание кода", только убранное в другую папку, с глаз долой, плюс к этому добавятся все прелести связанные с обслуживанием пакетов.

    "Не гадить в код" - это искусство и опыт, которые никакой "пакет" не заменит.
    Ответ написан
    1 комментарий
  • Как работает функция построения дерева?

    судя по распечатке массива, где-то ошибка: функция предполагает, что в неё передаётся хэш ( то есть массив, у которого ключи - значимы), а у вас приведён список ( ключи не несут информации ).
    Может, поэтому и непонятен результат работы функции. $arr должен быть таким:
    $arr = [685 => [
        'id' => 685,
        'title' => 'Комплектующие к Apple',
        'parent' => 0
      ],
      691 => [
        'id' => 691,
        'title' => 'Запчасти к iPad',
        'parent' => 685
      ],
      692 => [
        'id' => 692,
        'title' => 'Запчатси к iPhone',
        'parent' => 681
      ]
    ];

    Плюс в последнем элементе подозрительное значение у ключа parent ( больше подходит 685 ).
    Ответ написан
    Комментировать
  • Вернуть из степени?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    echo sprintf('%f', $var);
    echo number_format($var, 6);
    Ответ написан
    Комментировать
  • А какой шаблон проекта на Laravel у Вас?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    - метод контролера один, но используется GET переменная «json», скажем. Добавляем блок if, если переменная присутствует, то отдаем json, иначе отдаем view. Но тоже, как-то не кошерно смотрится…
    Это по тому что это должны быть разные контроллеры, один для вебморды, один для API/app.
    Ответ написан
    2 комментария