Forum Webscript.Ru

Программирование => PHP => Тема начата: Erikson от 26 Февраля 2007, 01:59:47

Название: проверка начала сценария
Отправлено: Erikson от 26 Февраля 2007, 01:59:47
Сразу прошу не плеваться, я начинающий... Ну так вот.
Захотел сделать отправку письма себе на ящик при посещении кем-либо моего сайта. Отправку сделал быстро, ничего сложного, но при прогулке по сайту генерируются страницы и письма постоянно отправляются. Т.е. отправляется не одно письмо, а пачка (по одному за каждый клик). Мне достаточно одного. Начитался всяких книг про проверочные сценарии и ничего не понял. Прошу популярнее объяснить, конечно если я не отниму сильно много времени.

Лист ниже. Если я убираю ремарки с session_start и session_register он у меня не гуляет по ссылкам в сайте, т.е. не работают ссылки типа get.

//session_start();
//session_register(\'visit_count\');
?>





include(\'head.php\');        // Открытие шапки сайта
include (\'fotoviewer.php\');
include(\'footer.php\');      // Нижний колонтитул

if (!IsSet($visit_count)) {
   $address = "admin@site.ru";
   $subject = "Посещение!";
   $sendday = date(\'j.m.Y\');
   $sendtime = date(\'H:i:s\');
   $body = "Довожу до вашего сведения, что $sendday в $sendtime было зарегистрировано посещение.";
   mail($address, $subject, $body, "From: http://www.site.com");
}

?>

Название: проверка начала сценария
Отправлено: andymc от 26 Февраля 2007, 03:52:04
1. Вариант с куками (писать ДО html)
if (empty($_COOKIE[\'flag\']) && !headers_sent()) {
  mail(...);
  setcookie(\'flag\', 1, time() + 3600, \'/\');
}

2. Вариант с сохраненем IP адресов в файл вместе с датой. Код писать не буду ( только за небесплатно...)
3. Можно все визиты писать в файл, а потом каждый час пачкой отправлять по почте

Кстати, можешь отправлять по емейл не только время, но и IP адрес, браузер посетителя, страницу, которую он просматривает, реферрер.
Название: проверка начала сценария
Отправлено: Vizz от 26 Февраля 2007, 10:09:46
Мануал: isset() will return FALSE if testing a variable that has been set to NULL

может после отправки письма присвоить visit_count какое то значение? :)

эдит: еще не проснулся, ляпнул что то нето. Заводишь переменную в сессии(если нету), а потом сверяешь, если переменная нулевая  - шлёш мыло и ставишь переменной скажем 1, если не нулевая, то на нет и суда нет. Если, конечно делать как ты начал делать.