Передача переменных на себя

Статус
В этой теме нельзя размещать новые ответы.
Использую для аналогичных целей (пхп серипт на денвере + запуск через батник) nncron под винду.

Для удобства можно сделать копию денвера и прописать путь к нему в переменной окружения PATH, тогда запускаться оно будет со своим конфигом.

Плюсы
- можно выставить любой период. (планировщик винды этого не позволяет)
- можно запустить от любого юзера
- не нужен браузер
- окно доса не светится на экране
из минусов
- отработавший процесс еще может долго висет в списке процессов пока отватился. не знаю почему. Я храню результаты работы и ставлю флаг, что процесс занят, так что это не сильно мешает
- интерфейс собственно управления задачами
 
есть nncron под винду, полная версия для уч СССр бесплатна и имеет гуевый интерфейс
а по заголовку -- 'script.php?par='.base64(serialize($array))
а еще если уж взялся за "refresh" - так храни все в сессиях, у тебя же скрипт будет запускаться браузером, и проблем с передачей не будет
PS вместо рефреша можно header: Location использовать
Почти решил свою проблему.
index.php POSTом закидывает данные в process.php, в котором проверяется if($_POST) и из исходных данных в базу вносится список запросов, дальше идет парсинг первого запроса. По его окончании (парсинга) статус меняется на выполненный. Страницу обновляю
HTML:
<meta http-equiv="refresh" content="30;url=/process.php">
Остался еще один вопрос, как сделать проверку, чтобы после выполнения последнего запроса скрипт сам редиректил на страницу с результатами. Пробовал делать так:
PHP:
$current_num_query = // текущий запрос
тут парсинг идет
$numz = num_query($db); // общее количество запросов
if ($numz=$current_num_query) {  // условие прекращения парсинга
	$url = 'http://'.$_SERVER[HTTP_HOST].'/result.php';
        Header("Location: $url");	
        }
Не получается, страница продолжает рефрешиться, и выдает ошибку
Код:
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\scut\www\process.php:3) in Z:\home\scut\www\process.php on line 118
3я строка - начало php скрипта. 118я - собственно сам header.
В идеале - чтоб не было никакого рефреша, а проверка условия и переход на одну или другую страницу. Но HEADER почему то не пашет, а как по другому сделать - :nezn:. Помогите советом.
З.Ы. с сессиями еще не разобрался, руки не доходят.
 
думаю скорее всего, вам необходимо делать проверка не на "последний запрос", а то что запросов больше нет, таким образов вы избежите отправки каких либо данных до вызова
PHP:
Header("Location: $url");

ПС: у вас вместо сравнения идет операция присвоения
PHP:
if ($numz == $current_num_query)
 
  • Нравится
Реакции: fri
думаю скорее всего, вам необходимо делать проверка не на "последний запрос", а то что запросов больше нет, таким образов вы избежите отправки каких либо данных до вызова
PHP:
Header("Location: $url");
ПС: у вас вместо сравнения идет операция присвоения
PHP:
if ($numz == $current_num_query)
Да, спутал просто. Но все равно проблема не в этом, а как сделать чтоб header сработал?
Кажется понял, пойду снова тестить)) Спасибо
 
Использую
PHP:
header("Location: ".$_SERVER['HTTP_REFERER']);
, что бы вернутся назад. Возникла необходимость при возвращение назад передать переменную. Как передать пост переменную через header, не используя гет ?
 
Используй сессии.

PHP:
header("Location: ".$_SERVER['HTTP_REFERER']);
так никогда не делай, ибо небезопасно.
 
1) не известно, есть ли после этих строк выход из скрипта. А то люди часто забывают, делать exit после редиректа, а это необходимо.
2) Пользователя можно средиректнуть куда угодно, т.к. переменная не проверяется.
3) Т.к. переменная не проверяется и выдается в хидер, можно запросто засунуть туда любой свой заголовок.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху