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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Перенаправление в curl/crontab

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Помогите неучу сделать перенаправление.
igosja
Отправлено: 08 Ноября, 2013 - 16:53:45
Post Id



Гость


Покинул форум
Сообщений всего: 77
Дата рег-ции: Март 2013  
Откуда: https://vhol.org


Помог: 3 раз(а)




Пытаюсь освоится с 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.
 
 Top
caballero
Отправлено: 08 Ноября, 2013 - 16:59:21
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Подскажите, как перенаправиться на файл 2.php

где пренаправится? В отсутствие браузера понятие "перенаправится" не имеет смысла.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Мелкий Супермодератор
Отправлено: 08 Ноября, 2013 - 17:01:19
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




curl - низкоуровневая библиотека. Берёт запрос, отсылает, отдаёт результат.
CURLOPT_FOLLOWLOCATION - следует по Location, в случае наличия. refresh не при делах, его вы должны обрабатывать уже сами.
JS - тем более к курлу отношения не имеет.


-----
PostgreSQL DBA
 
 Top
igosja
Отправлено: 08 Ноября, 2013 - 17:04:15
Post Id



Гость


Покинул форум
Сообщений всего: 77
Дата рег-ции: Март 2013  
Откуда: https://vhol.org


Помог: 3 раз(а)




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. Или такая система не верна и она работать не будет?

(Отредактировано автором: 08 Ноября, 2013 - 17:05:21)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Операционная система и системные вызовы »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB