Нужен небольшой скриптик, на php!! Скрипт должен каждому IP выдать на страничке (крупным шрифтом) число от 1 до 21. Причем разным IP не показывать одно и тоже число. Если можно то если с одного IP заходят 2 раза или более, то выводить одно и тоже число!
PHP: <?php //------------------// $base = 'base.txt'; //------------------// $bd = file_get_contents($base); if(preg_match('#'.$_SERVER['REMOTE_ADDR'].':(.*?)\n#i',$bd,$number)) { echo '<strong>Ваше число:<h1>'.$number[1].'</h1></strong>'; exit; } else { $number = rand(1,21); while($result == null) { if(preg_match('#:'.$number.'\n#i',$bd)) { $number = rand(1,21); } else { $result = $number; } } echo '<strong>Ваше число:<h1>'.$result.'</h1></strong>'; $fh = fopen($base, 'a+'); $success - fwrite($fh, $_SERVER['REMOTE_ADDR'].':'.$result."\r\n"); fclose($fh); } /* geforse.name */ ?> Если человек уже посещал сайт, то выдаёт его число Если нет, то выдаёт новое число и записывает в базу У разных людей числа не повторяются
Мой вариант PHP: $ip = $_SERVER['REMOTE_ADDR']; //Проверяем есть ли IP в логах function check($ip) { $fp = fopen("log.txt", "r"); while(!feof($fp)) { $ip_log = fgets($fp); $str = explode(" ", $ip_log); if($str[0]==$ip) { $number = $str[1]; break; }; }; fclose($fp); return $number; }; //Добавляем IP в лог function add($ip) { $rnd = mt_rand(1,21); $fp = fopen ("log.txt", "a"); fwrite($fp, $ip." ".$rnd."\n"); fclose($fp); return $rnd; }; if($result = check($ip)) { $number=$result; }else{ $number = add($ip); }; echo "<h1>".$number."</h1>";
Клади это число при первом посещении пользователю в куки. В будущем проверяй, есть ли такая кука пользователя и если есть, то показывай. Если нет, то выбирай число и записывай в куки.
ого, whexp, если б для меня эт так легко было я б написал)) спасиб за совет! хотелось бы доработать этот скрипт