вызов системной функции, есть предложения? - PullRequest
0 голосов
/ 22 февраля 2012

У меня есть сайт, на котором пользователям необходимо войти в систему, и аутентификация основана на переменных SESSION и БД.

Для упрощения позвольте мне описать это так: у меня есть простые пользователи, которые принадлежатгруппы, и у меня есть менеджеры групп.Все они имеют подписку.Когда менеджер группы решает обновить сервис, это делается сразу для всех его пользователей.Мне нужно обновить все подписки, и мне нужно будет платить за каждую подписку отдельно.

Итак.Что мне нужно сделать, так это перейти к БД и начать идти по очереди:

1. charge
2. receive status from cc company.
3. update the DB entry accordingly.
4. repeat for next simple user

Дело в том, что когда менеджер группы обновляет службу, мне нужно запустить пакетный процесс,Это может занять некоторое время, но если менеджер группы по какой-либо причине закрывает браузер (нажимает кнопку «Стоп», отключается питание, другие причины прекращаются), действие не будет выполнено.А пользователи останутся без лечения.

Я думал, что для этого нужно запустить команду оболочки с PHP-скриптом.Я бы отправил параметры в скрипт типа system ("php batch.php? ID = $ group_id? Process = all") , что, в свою очередь, вероятно, выполнит работу.

Myпроблема в том, что я привык аутентифицировать своих пользователей и данные на сайте, как сказано, по параметрам SESSION и т. д. Но в этом случае (вызов системной команды) я не могу по-настоящему проверить, кто на самом деле запустил этот скрипт.Это может быть пользователь, это может быть сценарий, который я намеревался.

Я хотел бы запретить пользователям доступ к этому сценарию, и я хочу, чтобы этот сценарий был завершен после его запуска.

Как я могу это сделать?Любые другие предложения?

Спасибо!

1 Ответ

2 голосов
/ 22 февраля 2012
  1. Передать значения в качестве параметров argv (php batch.php $group_id all)
  2. Проверьте, существуют ли они в $_SERVER['argv']

Для записи $_SERVER['argv'] - это $_GET для командной строки. Веб-страницы не могут устанавливать значения argv, поэтому вы в безопасности.

Лучше, конечно, просто не помещать этот файл в ваш веб-каталог.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...