Вы не зашли.
Главная »
PHP » команда cron require база данных переадресация
Код:
require_once ('/home/user/config.php'); |
|
mysql_query("DELETE FROM table WHERE `id`='25'; "); |
|
header('Location: http://site.ru/'.$var); |
die(); |
вот такой код
Как прописать команду крону, чтобы он сумел прочитать конфиг, выполнить mysql запрос и перейди на другой сайт?
Как не делаю выполняет только mysql запрос и то при условии что конфиг в этом же файле.
крон - это просто командная строка. т.е. туда можно написать все что и в командную строку. в том числе и весь этот php код. а Location не сработает, т.к. это не браузер и заголовки передавать тут некому. получит удаленную страницу через file_get_contents, например.
Добавлено спустя 4 минуты 17 секунд: точнее крон, это просто утилита консольная, но комманда ему задается имеено та, которая будет выполнена в консоли
на счет file_get_contents понял
а вот весь код писать в ком строку неудобно.
Можно прописать команду чтобы сработало require_once ?
Если туплю немного не обращайте внимания, устал ужасно, не выспался...
да, на сколько я понимаю, она должна работать. путь точно корректно указан?
да. так как при запросе через браузер срабатывает
сейчас стоит команда php -f
пробовал wget, linyx --dump
WebGraf, не, при запросе через браузер работает другой php. через консоль - консольная версия, и домашняя директория у них, наверняка разная. так что путь будет разный. попробуй указывать путь к файлу настроек через dirname(__FILE__) или просто __DIR__ если php5.3
require (dirname(__FILE__).'/config.php');
прописал. Но без изменений.
файл который в кроне записан и файл конфиг в одной директории.
Код:
chdir(dirname(__FILE__)); |
include_once 'config.php'; |
так уже писал. всеравно не работает
Какие настройки серва могут блокировать данную операцию?
disable_functions. какие ошибки получаешь при запуске скрипта через крон? опиши подробнее.
disable_functions symlink,shell_exec,exec,proc_close,proc_open,popen,system,dl,passthru,escapeshellarg,escapeshellcmd,ini_restore,set_time_limit,max_execution_time,get_current_user,posix_getuid,posix_geteuid,posix_getgid,posix_mkfifo,chgrp,posix_setuid,posix_setsid,posix_setpgid,posix_kill,getmyuid,apache_child_terminate,pfsockopen,imap_list,imap_body
Apr 28 13:54:01 server1 crond[19182]: (user) CMD (linyx --dump http://site.ru/script.php > /dev/null 2>&1
так ты через http вообще открываешь?
включи логирование ошибок, посмотри есть ли ошибки при выполнении запроса.
Во-первых, в том виде, как у вас, скрипт вызывается обычным образом (как из браузера) и проблем с путями быть не должно.
Во-вторых, не работает, возможно из-за того, то нет lynx. И лучше сделать вызов так:
/path/to/php -f /path/to/script.php > /path/to/script.log
/path/to/php — путь к интерпретатору php. Например, /usr/local/bin/php
/path/to/script.php — путь к вашему скрипту, включая путь к вашей домашней директории
/path/to/script.log — аналогично, путь к файлу, в который запишется результат выполнения, в т.ч. ошибки
Это подсказали в другом месте и я нашел ошибку. Благодарю
ну правильно, обращаться к локальному скрипту через http это все равно что в собственной квартире по комнатам перемещаться лазая через окна)