Вопрос № 97956: Привет . Подскажите, как на php сделать редирект или это только задача javascript. Спасибо....Вопрос № 97957: Здравствуйте!
Есть дилетантский вопрос. Имеется на индексной странице скрипт, который должен выполняться, как бы, автоматически, т.е. сравнивает текущую дату с датой записи из БД и при совпадении запись удаляется. Вопрос такой: скрипт будет испол...
Вопрос № 97.956
Привет . Подскажите, как на php сделать редирект или это только задача javascript. Спасибо.
Отвечает: Nexus
Здравствуйте, Александр Михайлович!
header("location: index.php");
перед вызовом ф-ции header браузеру не должны отдаваться данные. поэтому если нужен редирект с задержкой и сообщением типа "что-то-там сделано",то это уже джаваскриптом или метатэгами
Ответ отправил: Nexus (статус: 9-ый класс)
Ответ отправлен: 10.08.2007, 15:58
Отвечает: Oleg S. Mezhov
Здравствуйте, Александр Михайлович!
зависит от ваших нужд. бывают редиректы внтренние(на веб-сервере), бывают внешние(на клиенте).
если нужно сделать именно на php, то я часто использую такую функцию:
Приложение:
Ответ отправил: Oleg S. Mezhov (статус: 3-ий класс)
Ответ отправлен: 10.08.2007, 15:59
Отвечает: Flynn
Здравствуйте, Александр Михайлович!
Если у тебя не выведено еще ни одного символа, то редирект можно сделать функцией header
header("Location: all_good.php");
И соответственно можно сразу закрывать сценарий, так как того что там будет выведено, пользователь все равно не увидит, так как задержки нету :)
Ответ отправил: Flynn (статус: 3-ий класс)
Ответ отправлен: 10.08.2007, 16:19
Отвечает: Gines
Здравствуйте, Александр Михайлович!
Советую всё-таки использовать javascript
<?php
echo '>Wind0ws.Location.Href="ссылка на страницу";</script>';
?>
Хотя можно и с помощью PHP:
<?php
header("Location: ссылка на страницу");
exit();
?>
Подробнее можете почитать вот тут:
http://www.sb-news.net/?n=142
Ответ отправил: Gines (статус: 3-ий класс)
Ответ отправлен: 10.08.2007, 17:38
Отвечает: Powoditch konstantin
Здравствуйте, Александр Михайлович!
Нет. С помошью php редирект можно сделать тоже, используя ф-ю header().
Пример:
header("Location: some_page.php");
Только единственное НО, эта ф-я должна быть прописана в самом начале скрипта, до вывода какого-то либо html кода.
Ответ отправил: Powoditch konstantin (статус: 4-ый класс)
Ответ отправлен: 10.08.2007, 21:52
Отвечает: Azrr
Здравствуйте, Александр Михайлович!
Смотрите приложение.
Приложение:
Ответ отправил: Azrr (статус: 2-ой класс)
Ответ отправлен: 12.08.2007, 11:33
Вопрос № 97.957
Здравствуйте!
Есть дилетантский вопрос. Имеется на индексной странице скрипт, который должен выполняться, как бы, автоматически, т.е. сравнивает текущую дату с датой записи из БД и при совпадении запись удаляется. Вопрос такой: скрипт будет исполняться только в случае, если кто-то обратится к этой странице? А если допустить, что страницу втечение месяца никто не открывал, то за это время скрипт ни разу не запуститься? Может быть, есть средства для автоматического ежедневного запуска скрипта?
И еще вопрос, вернее, просьба о помощи. Помогите с примером скрипта, который преобразует старую дату с увеличением на 7 дней, например, 2007-07-29 + 7 дней, чтобы не получилось 2007-07-36, а вышло 2007-08-05.
Отправлен: 10.08.2007, 15:55
Вопрос задал: VicBar (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Nexus
Здравствуйте, VicBar!
1) Это тебе нужен cron. Сейчас практически все хостеры предоставляют доступ к нему. Чаще всего скрипт добавляется в cron через панель управления хостингом - там должен быть соответсвующий пункт, где задаются все параметры. Но насколько я понимаю, для тебя по сути не критичен запуск именно с определенным интервалом. Ты можешь сделать скрипт, который будет инклудится во все скрипты твоего сайта. Как-только кто-то обратиться к любой странице твоего сайта - временные записи из БД удалятся. Если на сайт месяц никто
не заходит - запросы к базе тоже лишний раз не делаются. И наличие доступа к крону опять же не критично в данном случае
Ответ отправил: Nexus (статус: 9-ый класс)
Ответ отправлен: 10.08.2007, 16:07 Оценка за ответ: 4
Отвечает: Oleg S. Mezhov
Здравствуйте, VicBar!
Запускать скрипт по времени поможет cron, часто хостинг компании предоставляют доступ на внесение 1-2 записей.
Скрипт для увеличения даты:
два пути. либо прописывать сколько дней в каждом месяце.. в зависимости от этого менять месяц на днях с 28 до 31. либо перевести дату в UNIXTIME, добавить к ней количество секунд равное 7 дням и вернуть обратно дату, делается так:
Приложение:
Ответ отправил: Oleg S. Mezhov (статус: 3-ий класс)
Ответ отправлен: 10.08.2007, 16:20 Оценка за ответ: 4
Отвечает: Сорочан Александр Александрович
Здравствуйте, VicBar!
За это отвечает ОС:
есть специальные сервисы которые запускают скрипты в заданое время.
для Linux: Cron
для Windows: Cronw http://cronw.sourceforge.net/
Отвечает: Powoditch konstantin
Здравствуйте, VicBar!
1. Да. Скрипт будет исполнятся только после того как кто нибудь зайдет на страничку которая содержит его. В случае если Вы хотите чтобы он запускался ежедневно, то я бы посоветовал Вам вставить в индексную/главную страничку вызов этого скрипта.
2. Могу предложить следующий вариант:
$days = 7*24*60*60;// 7 дней в секундах
$currDate = int gmmktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]]);// указываете Вашу дату
$currDate += $days;// прибавляем 7 дней
$result = date("'h-i-s j-m-y", $currDate);// преобразуем обратно, теперь в переменной $result находится дата +7 дней
Ответ отправил: Powoditch konstantin (статус: 4-ый класс)
Ответ отправлен: 10.08.2007, 21:42 Оценка за ответ: 4