Автор Тема: проверка начала сценария  (Прочитано 2957 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Erikson

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 7
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.eriksona.net
проверка начала сценария
« : 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

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 400
  • +1/-0
  • 0
    • Просмотр профиля
проверка начала сценария
« Ответ #1 : 26 Февраля 2007, 03:52:04 »
1. Вариант с куками (писать ДО html)
if (empty($_COOKIE[\'flag\']) && !headers_sent()) {
  mail(...);
  setcookie(\'flag\', 1, time() + 3600, \'/\');
}

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

Кстати, можешь отправлять по емейл не только время, но и IP адрес, браузер посетителя, страницу, которую он просматривает, реферрер.

Оффлайн Vizz

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
проверка начала сценария
« Ответ #2 : 26 Февраля 2007, 10:09:46 »
Мануал: isset() will return FALSE if testing a variable that has been set to NULL

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

эдит: еще не проснулся, ляпнул что то нето. Заводишь переменную в сессии(если нету), а потом сверяешь, если переменная нулевая  - шлёш мыло и ставишь переменной скажем 1, если не нулевая, то на нет и суда нет. Если, конечно делать как ты начал делать.
« Последнее редактирование: 26 Февраля 2007, 10:21:47 от Vizz »

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28