Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Перенаправление в curl/crontab
Форумы портала PHP.SU » » Операционная система и системные вызовы » Перенаправление в curl/crontab

Страниц (1): [1]
 

1. igosja - 08 Ноября, 2013 - 16:53:45 - перейти к сообщению
Пытаюсь освоится с curl и прошу помощи.

Есть папка на сайте http://site/test/

В этой папке 3 файла: test.php, 1.php, 2.php + таблица mysql
`test` (
`test_id` int(11) NOT NULL AUTO_INCREMENT,
`test` text NOT NULL,
PRIMARY KEY (`test_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

Запуская файл test.php в crontab, я пытаюсь выполнить 1.php и перенаправиться на 2.php, но выполняется только файл 1.php.

Листинг файлов:
1.php
PHP:
скопировать код в буфер обмена
  1. include '../database.php';
  2. $test_update_sql = mysql_query ("       INSERT INTO `test` (`test`)
  3.                                         VALUES ('insert');");
  4. $href = 'http://site/test/2.php';
  5. header("refresh: 2; url=$href");

2.php
PHP:
скопировать код в буфер обмена
  1. include '../database.php';
  2. $test_update_sql = mysql_query ("       INSERT INTO `test` (`test`)
  3.                                         VALUES ('delete');");

test.php
PHP:
скопировать код в буфер обмена
  1. $ch = curl_init();
  2. curl_setopt ($ch, CURLOPT_URL, "http://site/test/1.php");
  3. curl_setopt ($ch, CURLOPT_USERAGENT , "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7");
  4. curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);  //Переходим по редиректам
  5. curl_exec ($ch);


У меня в таблице только записи "insert".
Подскажите, как перенаправиться на файл 2.php?
Усть вариант сделать то же через JS,
PHP:
скопировать код в буфер обмена
  1. print   '<script type="text/javascript">
  2. function doit()
  3. {
  4.         window.location.href="'.$href.'";
  5. }
  6. setTimeout(doit, 2000);
  7. </script>';

но он тоже не работает в cron/curl.
2. caballero - 08 Ноября, 2013 - 16:59:21 - перейти к сообщению
Цитата:
Подскажите, как перенаправиться на файл 2.php

где пренаправится? В отсутствие браузера понятие "перенаправится" не имеет смысла.
3. Мелкий - 08 Ноября, 2013 - 17:01:19 - перейти к сообщению
curl - низкоуровневая библиотека. Берёт запрос, отсылает, отдаёт результат.
CURLOPT_FOLLOWLOCATION - следует по Location, в случае наличия. refresh не при делах, его вы должны обрабатывать уже сами.
JS - тем более к курлу отношения не имеет.
4. igosja - 08 Ноября, 2013 - 17:04:15 - перейти к сообщению
caballero пишет:
где пренаправится? В отсутствие браузера понятие "перенаправится" не имеет смысла.
В файле 1.php я даю строки
PHP:
скопировать код в буфер обмена
  1. $href = 'http://site/test/2.php';
  2. header("refresh: 2; url=$href");

а в test.php имитирую браузер строками
PHP:
скопировать код в буфер обмена
  1. curl_setopt ($ch, CURLOPT_USERAGENT , "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7");
  2. curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);

Это я откопал по справочникам curl. Или такая система не верна и она работать не будет?

 

Powered by ExBB FM 1.0 RC1