Просмотр полной версии : Срочно!!!
Нужен небольшой скриптик, на php!!
Скрипт должен каждому IP выдать на страничке (крупным шрифтом) число от 1 до 21. Причем разным IP не показывать одно и тоже число. Если можно то если с одного IP заходят 2 раза или более, то выводить одно и тоже число!
<?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 */
?>
Если человек уже посещал сайт, то выдаёт его число
Если нет, то выдаёт новое число и записывает в базу
У разных людей числа не повторяются
Player#1
13.12.2009, 18:21
Мой вариант ;)
$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>";
а в случае динамического ip что будет??
Клади это число при первом посещении пользователю в куки. В будущем проверяй, есть ли такая кука пользователя и если есть, то показывай. Если нет, то выбирай число и записывай в куки.
ого, whexp, если б для меня эт так легко было я б написал))
спасиб за совет!
хотелось бы доработать этот скрипт
Я бы дописал, но не работаю с PHP :) Сервер устанавливать, настраивать... Наверняка кто-нибудь допишет :)
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot