Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

усмирить Rand! (php)

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> усмирить Rand! (php)
Имя
Сообщение << Старые топики   Новые топики >>
усмирить Rand! (php) - 2009-05-18 15:46:07.463333   
Liza_k

Сообщений: 3
Оценки: 0
Присоединился: 2008-11-22 21:32:30.276666
Помогите пожалуйста усмерить функцию ранд в php
Короче делаю тест где должно быть 4 варианта ответа и один ответ.
Я разбила странички с вопросами и вариантами ответа по разным страничкам и после каждого ответа человека редиректит на index.php где висит такой код

<?
$b = rand(1,4);
header("Location:./$b.php");
?>

но как мне сделать так, чтобы странички (тобишь вопросы не повторялись)?
Post #: 1
RE: усмирить Rand! (php) - 2009-05-18 15:51:11.913333   
Agent Smith

Сообщений: 976
Оценки: 0
Присоединился: 2007-04-10 21:56:49.593333
вообще юзай лучше mt_rand, вероятность повтора в ней на много меньше
а конкретно, записывай посещенные страницы в кукис или лучше (на мой взгляд) в сессию.
$otkritie = array("1","2"….);//вытягивается с сессии или с кукис

do {$b = mt_rand(1,4); }
While (!in_array($b,$otkritie);

$otkritie[]=$b;
//прописываеш масив в сессию или в кукис
и
header("Location:./$b.php");
Post #: 2
RE: усмирить Rand! (php) - 2009-05-18 15:52:23.953333   
Pashkela

Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
если для одного человека уникально - то session_start()

http://ru2.php.net/function.session-start

Но вам еще рановато, хотя почитайте

Post #: 3
RE: усмирить Rand! (php) - 2009-05-18 16:01:29.070000   
Liza_k

Сообщений: 3
Оценки: 0
Присоединился: 2008-11-22 21:32:30.276666
Спасибо за session_start() =)
Но к сожалению это не поможет с тем, что ранд всеравно кидается одними и теми же тестами(значениями)
Post #: 4
RE: усмирить Rand! (php) - 2009-05-19 12:06:10.560000   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
1. Заводишь массив с индексами 1..N, значения которого – номера вопросов которые ещё не выпадали
2. Берёшь случайное число n в диапазоне 1..N
3. Выдаёшь юзверю n-ный элемент массива. Не забыв при этом удалить этот элемент из массива и перенумеровать элементы так, чтобы они нумеровались числами 1..N-1. Каким образом передавать изменённый массив уже объяснили, хоть об этом, как я понимаю и не спрашивалось ;)
Post #: 5
Страниц:  [1]
Все форумы >> [Веб-программинг] >> усмирить Rand! (php)







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.