За последние 24 часа нас посетили 17722 программиста и 1712 роботов. Сейчас ищут 1805 программистов ...

Cron, пароль и браузер

Тема в разделе "Прочие вопросы по PHP", создана пользователем JSoutherner, 1 сен 2016.

  1. JSoutherner

    JSoutherner Новичок

    С нами с:
    1 сен 2016
    Сообщения:
    2
    Симпатии:
    0
    Подскажите, пожалуйста, есть ли решение такой задачи -
    php скрипт, вызывается cron-ом, а если пользователь вызывает из браузера, то запрашивает пароль.
    В гугле ничего не нашел, честно говоря не знаю, как грамотно сформулировать запрос
    Если есть, то, подскажите, что почитать. Просто нужна наводка.
    Возможно пароль через .htpassword подойдет, но не уверен не наткнется ли на него крон.
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.858
    Симпатии:
    748
    Адрес:
    Татарстан
    при запуске через крон запускай с каким то ключем, например .... script.php?key=mvkdfmvlkdfmvlkdfmvldfmv
    в самом скрипте проверку- на то был ли передан ключ и равен ли он тому что задумывался, если да работаем, иначе запрос пароля - авторизация
     
  3. JSoutherner

    JSoutherner Новичок

    С нами с:
    1 сен 2016
    Сообщения:
    2
    Симпатии:
    0
    Спасибо большое, попробую этот вариант
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а еще ты можешь кроном делать веб-запросы а-ля браузер и вводить пароль.
     
  5. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    cron запускает скрипты "в консоли".
    Код (Text):
    1. */5**** php /var/www/myscript.php
    Консольный PHP вообще имеет свои отличия. Например, он работает без веб-сервера, а значит никакие .htaccess не играют роли. Есть разница в суперглобальных переменных и в том, какая папка считается "текущей". При запуске из cron текущая папка это домашняя папка пользователя, под которым этот скрипт выполняется, а никакого DocumentRoot нет в принципе.

    Определение каким образом запущен скрипт:
    PHP:
    1. if (php_sapi_name() === 'cli') {
    2.   // скрипт запущен из консоли/cron
    3.   . . .
    4. }
    В некоторых случаях удобно имитировать обращение "как из браузера": из крона открываем веб-страничку с нужным адресом через http. Таким образом php будет работать в обычном веб-окружении.
    Код (Text):
    1. */5**** wget -O /dev/null -o /dev/null http://example.com/myscript.php
    При таком запуске ты можешь проверять REMOTE_ADDR и сравнивать с адресом сервера чтобы принять решение по поводу допуска.