У меня есть скрипт PHP, который регистрируется на веб-сайте с завитом. Когда я запускаю скрипт в браузере, скрипт регистрируется в порядке. Когда я запускаю его через cronjob, он не входит в систему, поскольку файлы cookie не хранятся там, где я ожидал.Где хранить куки при запуске curl through cronjob?
Как хранить куки?
Это подходящая часть сценария. До этого URL-адрес определен ($ url) и данные для входа ($ post_string).
class curl {
function __construct($use = 1) {
$this->ch = curl_init();
if($use = 1) {
curl_setopt ($this->ch, CURLOPT_POST, 1);
curl_setopt ($this->ch, CURLOPT_COOKIEJAR, $_SERVER['DOCUMENT_ROOT'].'/verwaltung/cookie.txt');
curl_setopt ($this->ch, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT'].'/verwaltung/cookie.txt');
curl_setopt ($this->ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($this->ch, CURLOPT_RETURNTRANSFER, 1);
} else {
return 'There is the possibility, that this script wont work';
}
}
function first_connect($loginform,$logindata) {
curl_setopt($this->ch, CURLOPT_URL, $loginform);
curl_setopt ($this->ch, CURLOPT_POSTFIELDS, $logindata);
}
function store() {
$store = curl_exec ($this->ch);
}
function execute($page) {
curl_setopt($this->ch, CURLOPT_URL, $page);
$this->content = curl_exec ($this->ch);
}
function close() {
curl_close ($this->ch);
}
function __toString() {
return $this->content;
}
}
$getit = new curl();
$getit->first_connect($url, $post_string);
$getit->store();
$getit->execute($url);
$getit->close();
Вопрос отредактирован, чтобы отразить комментарии Wrikken-х и Colin Морелли ниже. Спасибо вам обоим!
Что такое класс, который '$ getit' является экземпляром? Имеет ли он метод '__toString()'. Если да, то что возвращает '__toString()'? Etc и т. Д. Здесь отсутствуют некоторые ключевые компоненты. –
Имея ограниченную информацию: вы, вероятно, получите другую страницу (проверьте '$ getit'). Вопрос в том, почему ... – Wrikken
@ColinMorelli Я добавил еще код. Помогает ли? – 2013-03-06 19:55:45