Я хочу отслеживать и сохранять в своей локальной БД любое событие, когда пользователи моего сайта переходят по ссылкам. идентификатор пользователя сохраняется в информации о сеансе.
Ссылки структурированы следующим образом: example.com/go.php?d=1234
, где 1234
является примером для конкретной ссылки. Пользователь хочет go to.
Прямо сейчас на go.php
я использую _GET, а затем перенаправляю пользователя на реальную ссылку (путем поиска в другой таблице БД, чтобы найти соответствующую ссылку для значения d
, например 1234
.
Я хочу, чтобы отслеживание происходило одновременно, только на стороне сервера, чтобы избежать замедления или подрыва процесса перенаправления пользователя.
Поэтому моя идея состоит в том, чтобы go.php
вызывал другой сценарий php на моем локальном хосте - track.php
. А внутри track.php
сделать INSERT с данными пользователя в другую таблицу БД, поэтому, если что-то не получится с диссертацией, пользователь не будет затронут.
Как я могу передать данные например, идентификатор пользователя и идентификатор ссылки, по которым был выполнен щелчок (и другая информация, которую я собираюсь собрать, например, пользовательский агент, разрешение, страница реферера и т. д. c), в соответствии с этими требованиями?
я не могу se session
поскольку сеанс хранится на компьютере пользователя, и я не хочу, чтобы пользователь взаимодействовал с этим сценарием, и даже если сеанс хранится на сервере, может быть несколько пользователей, которые будут одновременно нажимать на ссылки и Я думаю, что перезаписать информацию о сеансе.
Я не хочу передавать информацию через URL и использовать _GET
для ее извлечения, так как я не хочу использовать HTTP-запрос , нет смысла использовать один (скорость и безопасность), если все должно происходить на моем локальном хосте.
Я не хочу использовать включение, поскольку, как я уже сказал, если что-либо в коде track.php
завершится ошибкой, если оно включено в go.php
, это может привести к фатальной ошибке и подорвать процесс перенаправления.
РЕДАКТИРОВАТЬ:
Возможно ли, например, вызвать track.php
, так же, как запускаются задания cron?
Например, если можно установить задание cron, например:
php /home/user/backend/track.php user_id=1 link_id=1234 user_agent="mozilla 1.7/85"
и передать параметры таким образом, поэтому, возможно, в скрипте я могу сделать что-то вроде:
some-php-function(php /home/user/backend/track.php user_id=1 link_id=1234 user_agent="mozilla 1.7/85")
Так что может быть что-то вроде:
shell_exec(php /home/user/backend/track.php user_id=$u_id link_id=$l_id user_agent="$agent");