Автор Тема: Всплываюшее окно один раз в сутки.  (Прочитано 7120 раз)

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

Оффлайн quest

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 25
  • +0/-0
  • 0
    • Просмотр профиля
    • http://wmz.ee
Всплываюшее окно один раз в сутки.
« : 26 Февраля 2006, 13:17:36 »
Вот захотел сделать такое чудо..
Но совершенно беспонятия как, единственное место где могут помочь- это здесь..
Вобщем, что нужно:
Нужно, чтобы новое окошко открывалась одному ИП один раз в сутки. А вообще идеально было бы, сделать такую фитчу, чтобы не каждому открывалось один раз в сутки, а через какое то определенное кол-во людей.
Всем кто поможет огрооомное человеческое спасибо.. :rolleyes:

Оффлайн for_i_0

  • $15 per hour
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 555
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.php.net/manual/en
Всплываюшее окно один раз в сутки.
« Ответ #1 : 26 Февраля 2006, 21:28:48 »
[off]Безработный[/off]

Оффлайн quest

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 25
  • +0/-0
  • 0
    • Просмотр профиля
    • http://wmz.ee
Всплываюшее окно один раз в сутки.
« Ответ #2 : 26 Февраля 2006, 22:33:52 »
а на каком другом языке можно так сделать?

Оффлайн andymc

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 400
  • +1/-0
  • 0
    • Просмотр профиля
Всплываюшее окно один раз в сутки.
« Ответ #3 : 26 Февраля 2006, 22:47:44 »
Забавно.
Человек-то дейтсвительно не знает, как сделать такую простую вещь. И вроде как помочь-то не трудно, а просто... неинтересно мне это.
Вот буквально за пару секунд я в голове набросал решение и... неинтересно.
Да! Чувак, давай-ка ты сам реши эту задачку. Тебе же будет полезнее. Вот честно. Представь логичекси, что надо сделать, как, и попробуй. Это ведь действительно не сложно. Надо только знать пару простых функций и мыслить логически.

Оффлайн quest

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 25
  • +0/-0
  • 0
    • Просмотр профиля
    • http://wmz.ee
Всплываюшее окно один раз в сутки.
« Ответ #4 : 26 Февраля 2006, 23:01:08 »
andymc
Помоги пожалуйста.
Ведь еслиб я был бы великим программёром, я даже не написал бы сюда. Глупо говорить подумай, я думал- результат 0. Вообще такое чудо многим пригодится. Набросай решение в письменном виде пожалуйста )

Оффлайн for_i_0

  • $15 per hour
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 555
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.php.net/manual/en
Всплываюшее окно один раз в сутки.
« Ответ #5 : 26 Февраля 2006, 23:15:05 »
quest
Java Script + Cookie
[off]Безработный[/off]

Оффлайн andymc

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 400
  • +1/-0
  • 0
    • Просмотр профиля
Всплываюшее окно один раз в сутки.
« Ответ #6 : 27 Февраля 2006, 00:51:44 »
Полчаса сидел, написал вот это.
function makeForOne(){
	
// в этой функции нужно написать, что делать
	
echo 
"Это будет выполняться только 1 раз в день для 1 юзера";
};
// эта функция делает основные операции
function check($ip){
	

	
$truncateAfter0=false// очищать ли список ip в 0 часов каждый день
	
$file=\'saver.txt\'; // файл для сохранения IP
	
if (!file_exists($file)) {
	
	
$fo=fopen($file,\'w+\');
	
} else {
	
	
$fo=fopen($file,\'a+\');
	
};
	

	
$now=time();
	
$array=file($file);
	
if (sizeof($array)>0){
$truncTime=trim($array[0])+86400;
	
	
if (date("G",$now)==\'0\'&&$truncateAfter0&&$truncTime<$now){
	
	
	
// время, когда надо снова очищать файл
	
	
	

	
	
	

	
	
	
$fo=fopen($file,\'w+\');
	
	
	
fwrite($fo,"$now\\n");
	
	
};
	
	
	
	
	

	
	
foreach ($array as $key=>$value){
	
	
	
if (trim($value)!="") {
	
	
	
	
$array2=explode("|",trim($value));
	
	
	
	
// если время для IP истекло, т.е. прошло 86400 секунд
	
	
	
	
if ($array2[1]==trim($ip)&&$array2[0]<$now) {
	
	
	
	
	

	
	
	
	
	
makeForOne();
	
	
	
	
	
break;
	
	
	
	
};
	
	
	
	
// или если IP вообще ещё не сохранён
	
	
	
	
if ($array2[1]!=trim($ip)) {
	
	
	
	
	

	
	
	
	
	
makeForOne();
	
	
	
	
	

	
	
	
	
	
$expired=$now+86400;
	
	
	
	
	
fwrite($fo,"\\n$expired|$ip");
	
	
	
	
	
break;
	
	
	
	
};
	
	
	

	
	
	
};
	
	
};
	
} else {
	
	
makeForOne();
	

	
	
$expired=$now+86400;
	
	
fwrite($fo,"\\n$expired|$ip");
	
};
	
fclose($fo);
};
// узнаём IP текущего пользователя b проверяем
$ip=$_SERVER[\'REMOTE_ADDR\'];
check($ip);

В функции  makeForOne надо написать, что делать (открыть окно).
!Код не оптимален. Прошу сильно не ругать. Надеюсь, кто-нибудь возьмётся и улучшит его.

Оффлайн quest

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 25
  • +0/-0
  • 0
    • Просмотр профиля
    • http://wmz.ee
Всплываюшее окно один раз в сутки.
« Ответ #7 : 27 Февраля 2006, 15:25:42 »
Просто огромное человеческое спасибо..
Это мне и нужно было..
Ещё раз спасибо.

Оффлайн fuza

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 51
  • +0/-0
  • 0
    • Просмотр профиля
    • http://komptex.narod.ru
Всплываюшее окно один раз в сутки.
« Ответ #8 : 28 Февраля 2006, 20:01:19 »
да на яве с куками было бы проше реализовать, и не нада php заставлять думать ;)

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Всплываюшее окно один раз в сутки.
« Ответ #9 : 01 Марта 2006, 14:29:52 »
псих!!:)
Вот тебе более которкий вариант.

if(!$_COOKIE["vas"]){
setcookie("vas",mktime(),time()+3600*24);
echo \
'<script language="javascript">windows.open("xxx-porno.html","porno","height=100,width=100");</script>\';
}
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн andymc

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 400
  • +1/-0
  • 0
    • Просмотр профиля
Всплываюшее окно один раз в сутки.
« Ответ #10 : 01 Марта 2006, 21:11:33 »
1. Задача была - "одному IP в сутки". Решение: сохранять и проверять IP. "Дважды два."
COOKIE каждого конкретного польователя никак не отвечают условиям задачи. Другое дело если бы задча была "одному пользователю с уникальной кукой в сутки".
2. COOKIE не поможет, если попытаться решить задачу №2 - "открывать окно через n пользователей".
3. И вообще cookie это не надёжно, если речь идёт о серъёзных вещах.

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Всплываюшее окно один раз в сутки.
« Ответ #11 : 02 Марта 2006, 00:49:10 »
сессии, хранить на стороне сервера.
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн for_i_0

  • $15 per hour
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 555
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.php.net/manual/en
Всплываюшее окно один раз в сутки.
« Ответ #12 : 02 Марта 2006, 06:48:41 »
Цитировать
andymc:
3. И вообще cookie это не надёжно, если речь идёт о серъёзных вещах.


IP тем более.
[off]Безработный[/off]

 

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