Статьи,обзоры,справочники по PHP

       

ERROR in function check()


");

// Блокируем доступ к файлу flock($f,2);

// Читаем время обновления уже из файла $t=fgets($f,100);

// "Генеральная" проверка времени if ( $t + 5*60 < time() ) {

// Если условие выполнилось, то закончились очередные 5 минут // и нужно запустить скрипт my_cron_script(). Еще дополнительно // сбросим буфер с текстом, накопившемся за время выполнения // программы. flush(); my_cron_script();

// Пишем время модификации файла обратно в него. Атрибуты файла // (filemtime), которыми мы пользовались в начале этой фунции // обновляются сами собой (это делает ОС).

// Переместить указатель записи на начало файла: ftell($f,0);

// Записать время и пару пробелов, чтобы затереть старое число fputs($f,time()." ");

}

// Закрываем файл, выходим из функции. Блокировка снимиться автоматически. fclose($f);

}

}

?>

Вариант 2: без CRON, без Command, метод почты из файла.

Это значит, что вы по прежнему не имете доступа ни к крону, ни к способу 'command' и не понимаете сокетов с POP3. Тогда можно попытаться получать почту методом чтения ее из файла. Так читать можно только свою почту. Своя - это та, от чьего пользователя работает ПХП. Файл с почтой лежит в /var/spool/mail/имя_пользователя

(или /var/mail). Настраиваем регулярный запуск проверки (описан в варианте 1) и для снятия почты открываем файл, читаем письма, делим их (там писем можнет быть от 0 и более) по слову "From" с пробелом. Попутно думаем, а кто еще будет иметь доступ к этому файлу почты.

Вариант 3: используем CRON

Крон - это средство вызвать ваш скрипт в нужное время. В вариантах 1 и 2 мы описали функцию для проверки почты. Здесь настроим ее регулярный запуск. Если у вас есть телнет на сервере, поищите каталог с кроном: /etc/cron, /var/spool/cron, /var/spool/cron/crontabs/, /usr/local/etc/cron и т.д... Попробуйте создать там файл с именем своего логина. К примеру для рута - файл "root". Такой файл там уже точно будет. Если получиться, то вы можете обойтись без админа. Создайте файл mail.php по образцу, описанному в первой главе. Там должна быть строка #!/usr/bin/php, но весь внутренний текст придется выкинуть. Там надо разметить функцию для проверки почты методом POP3 или из файла. Теперь вернемся к крону. Для автозапуска каждые 5 минут вашей программы mail.php нужно написать вот так: */5 * * * * /путь/к/файлу/mail.php

Админу сервера, если вы самостоятельно не можете настроить крон, достаточно назвать время запуска и путь к файлу. После прописывния строки в файле крона его нужно перезапутить. Либо это сделает админ, либо вы (нажав Ctrl+Alt+Del на сервере), либо опять вы, но удаленно - завесив сервер кривой прогой на ПХП :-)

Вариант 4: используем COMMAND - запуск по приходу письма

Этот способ описан в первой главе. В файле mail.php выкидывайте содержимое и читайте пришедшее письмо, как простой файл. И делайте все, что нужно.





Содержание раздела