Есть два скрипта в двух файлах mail.php и bd.php Оба файла находятся в одной папке, с одними правами (600), оба настроены в кроне одинаково, на срабатывание каждую минуту. Почему mail.php срабатывает, а bd.php - нет? Если к обоим обратиться через строку в браузере, то работают оба. Гуглил, безуспешно. Толком даже не знаю, что искать. Читал, что вроде как нужно какие-то права chmod поменять, но не знаю как это сделать на моем хостинге (beget.ru). Просто я только начинаю работать с CRON. p.s. Если это важно, то mail.php создан для теста и просто отправляет на почту письмо с текстом "ТЕСТ", а bd.php обращается в базу данных и удаляет аккаунты, которые не подтверждены по почте. Очевидно, дело в коде, потому вот код файла db.php: Код (PHP): <?php include_once "../includes/settings.php"; //Open a new connection to the MySQL server $mysqli = new mysqli(HOST, USER, PASS, DB); //Output any connection error /*if ($mysqli->connect_error) die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);*/ $results = $mysqli->query("SELECT confirm_date FROM users WHERE confirmed = 1 && payed = 0"); while($row = $results->fetch_array()) { $happyday = $row["confirm_date"]; $curday = date('Y-m-d H:i:s'); $d1 = strtotime($happyday); $d2 = strtotime($curday); $diff = $d2-$d1; if ($diff >= 21600) mysqli_query($CONNECT, "UPDATE users SET banned = '2' WHERE confirm_date = '$happyday'"); } // Frees the memory associated with a result $results->free(); // close connection $mysqli->close(); ?> PHP, JavaScript, SQL и другой код пишите внутри тегов Код ( (Unknown Language)): [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
Для консольной версии PHP текущей директорией является другая папка. Оформи свои инклуды через __DIR__ чтобы наверняка. Или вот из документации пример лекарства: Код (PHP): chdir( dirname ( __FILE__ ) ); Добавлено спустя 1 минуту 5 секунд:А вообще, на будущее, "не запукается" это не диагноз. У тебя должны быть логи в которых сохранилось сообщение об ошибке. Добавлено спустя 5 минут 53 секунды: viewtopic.php?t=54114#p432307
Честно, я искренне был бы рад, если бы в мои логи писались ошибки работы с MySql или cron. Я настроил в .hraccess вывод всех, как я понимаю, ошибок, но ошибки cron'a и соединения с MySql туда не сыпятся, только php. Слегка гуглил в эту область, там просят настроить файл, доступа к которому на моем хостинге нет. А вот за это спасибо! Заработало.
эм... какой еще htaccess, когда мы говорим о консольном скрипте?! друг, изучи тему логов, это действительно важно. гугль в помощь!
Я тебе не друг, приятель. Мне нужно не о логах читать, а о том, что такое "консольный скрипт" и при чем он тут, если я работаю с виртуальным хостингом, а не с сервером.
Друг, поверь, тебе лучше почитать что такое логи) Дык, ты походу вообще не вкуриваешь что ты делаешь. Что такое крон? Добейся что бы скрипт у тебя локально работал, потом переноси на сервер. Запусти его не через крон, отработал? Если да тогда настраивай крон задачу для него.
Я тебе не друг, товарищ. Дак я как бы намекнул, что мне РАНО читать про логи, нужно в базе разбираться) И "локально" скрипт работает.
ну так читай! сейчас ты похож на собаку, которая кусает кормящую руку. "я тебе не друг" — это ты в кино про крутых подсмотрел? поверь, никто на тебя не нападает. тебе дают подсказки, а пользоваться ими или нет это твоё дело. Добавлено спустя 21 минуту 55 секунд: объясняю: php может работать "для веба" (CGI, mod_php, php-fpm) или "для командной строки" (CLI, консоль). этим занимаются разные исполняемые файлы и настройки у них разные. некоторые переменные и функции могут быть доступны в Веб, но недоступны в Консоли. и, как ты уже убедился, текущая директория у них разная, что влияет на подключение файлов. крон обращается к консольному варианту php. пример правильного запроса в гугль: "php cli текущая директория" официальная документация: http://php.net/cli (читать примеры и комментарии! в них самый жир)
Влад, дружище, ты что, не признал нас? Мы ж все тут все с Иркутска. Можно сказать ближайшие соседи. А ты с нами так сурово...