Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2009, 15:05   #1
Naposaram
Пользователь
 
Регистрация: 22.11.2008
Сообщений: 52
Вопрос случайный переход

вот хочу сделать такую вещь: есть ссылка ведущая на другую пхп страницу, пользователи нажимают ее и каждый третий(или любой другой переход) по другой ссылке. со своими скромными познаниями написал вот так:

Код:
<?php
$f=fopen("stat.dat","a+");
flock($f,LOCK_EX);
& #36;count=fread($f,100);
@$count++;
ftruncate($f,0);
{
if ($f==3) 
header("location: http://xxx.xx");
$f=0;
fwrite($f,count);
else                      //говорит вот здесь ошибка
fwrite($f,$count);
}
fflush($f);
flock($f,LOCK_UN);
fclose($f);
?>
естественно не работае ткто нибудь подскажите как реализовать!
оформляйте ваш код! //модератор

Последний раз редактировалось SkyM@n; 31.01.2009 в 21:47.
Naposaram вне форума Ответить с цитированием
Старый 31.01.2009, 18:53   #2
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

если я правильно понял - нужен случайный переход на одну из ссылок

ну к примеру можно сделать так:
PHP код:
<?
$sites
=array(
'http://www.site1.com',
'http://www.site2.com',
'http://www.site3.com',
'http://www.site4.com',
'http://www.site5.com'
);

mt_srand(time());
header ("Location: ".$sites[mt_rand(0count($sites)-1)]."\n\n");
exit();
?>
свободен...
wall66 вне форума Ответить с цитированием
Старый 01.02.2009, 10:49   #3
Naposaram
Пользователь
 
Регистрация: 22.11.2008
Сообщений: 52
По умолчанию

Цитата:
Сообщение от wall66 Посмотреть сообщение
если я правильно понял - нужен случайный переход на одну из ссылок

ну к примеру можно сделать так:
PHP код:
<?
$sites
=array(
'http://www.site1.com',
'http://www.site2.com',
'http://www.site3.com',
'http://www.site4.com',
'http://www.site5.com'
);

mt_srand(time());
header ("Location: ".$sites[mt_rand(0count($sites)-1)]."\n\n");
exit();
?>
А как это работает? Третий переход по ссылке или переходишь сразу оп одиму юрл из списка?
Naposaram вне форума Ответить с цитированием
Старый 01.02.2009, 11:01   #4
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

Цитата:
Сообщение от Naposaram Посмотреть сообщение
А как это работает? Третий переход по ссылке или переходишь сразу оп одиму юрл из списка?
каждому входящему выкидывается случайное число от 1 до 5, потом происходит переход на сайт под этим номером
свободен...
wall66 вне форума Ответить с цитированием
Старый 01.02.2009, 11:06   #5
Naposaram
Пользователь
 
Регистрация: 22.11.2008
Сообщений: 52
По умолчанию

Цитата:
Сообщение от wall66 Посмотреть сообщение
каждому входящему выкидывается случайное число от 1 до 5, потом происходит переход на сайт под этим номером
А ну это случайно, а вот так чтобы только третий переход по этой ссылке был случайным, вот как это сделать?
Naposaram вне форума Ответить с цитированием
Старый 01.02.2009, 11:15   #6
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,544
По умолчанию

Цитата:
вот как это сделать?
Для этого для каждого пользователя надо хранить счётчик его кликов, как только счётчик == 3, очищаем счётчик и делаем случайный переход. Счётчик проще всего хранить в куки пользователя.
Arigato вне форума Ответить с цитированием
Старый 01.02.2009, 11:21   #7
Naposaram
Пользователь
 
Регистрация: 22.11.2008
Сообщений: 52
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Для этого для каждого пользователя надо хранить счётчик его кликов, как только счётчик == 3, очищаем счётчик и делаем случайный переход.
ну на скоько мне хватило моих знаний в php я вроде так и сделал, открыл файл счетчика сравнил $f==3 если да то header("location: http://xxx.xx"); присваиваем $f=0 и записываем, а если нет то просто увеличиваем значение на 1. Может у меня синтаксис не правильный или еще что...

Цитата:
Сообщение от Arigato Посмотреть сообщение
Счётчик проще всего хранить в куки пользователя.
ну эт я не знаю как
Naposaram вне форума Ответить с цитированием
Старый 01.02.2009, 11:25   #8
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,544
По умолчанию

В куки будет считаться для каждого пользователя, а в файле - для всех. Выбирайте тот способ, который Вам нужен.
Цитата:
ну эт я не знаю как
setcookie (имя_параметра, значение_параметра, time() + время_жизни_параметра_в_сек); - установить куки в браузере пользователя.
$_COOKIE[] - массив всех установленных параметров куки в браузере пользователя, из него можно читать значения.
Arigato вне форума Ответить с цитированием
Старый 01.02.2009, 11:29   #9
Naposaram
Пользователь
 
Регистрация: 22.11.2008
Сообщений: 52
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
В куки будет считаться для каждого пользователя, а в файле - для всех. Выбирайте тот способ, который Вам нужен.
а ну тогда мне надо из файла, для все. просто любой третий переход, любого пользователя
Naposaram вне форума Ответить с цитированием
Старый 01.02.2009, 14:23   #10
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

не всегда нужно глупо следовать изначальному плану:
здесь легче именно генерировать случайное число от 1 до 3 и поставить условие - скажем если x==3 то перекидывать куда надо, во всех других случаях - продолжать работу

получится что треть всех пользователей будет перенаправлена

способ же со счетчиком потребует гораздо больше ресурсов и будет менее стабилен и отказоустойчив, но с точно таким же эффектом (треть пользователей перенаправлена)

выбор за вами
свободен...
wall66 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
случайный вызов процедуры yulia Общие вопросы Delphi 8 20.10.2008 18:40
Переход Gorychev PHP 6 26.05.2008 01:16
Случайный текст Reaction Общие вопросы Delphi 2 09.04.2008 15:01
Случайный выбор с папки Marsik Помощь студентам 2 15.12.2007 19:04
случайный выбор имен SeRhy Помощь студентам 4 26.11.2007 15:00