Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |

13.12.2009, 17:01
|
|
Познающий
Регистрация: 29.01.2009
Сообщений: 81
Провел на форуме: 255434
Репутация:
12
|
|
Срочно!!!
Нужен небольшой скриптик, на php!!
Скрипт должен каждому IP выдать на страничке (крупным шрифтом) число от 1 до 21. Причем разным IP не показывать одно и тоже число. Если можно то если с одного IP заходят 2 раза или более, то выводить одно и тоже число!
|
|
|

13.12.2009, 18:14
|
|
Постоянный
Регистрация: 02.03.2008
Сообщений: 893
Провел на форуме: 5365841
Репутация:
712
|
|
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 */
?>
- Если человек уже посещал сайт, то выдаёт его число
- Если нет, то выдаёт новое число и записывает в базу
- У разных людей числа не повторяются
|
|
|

13.12.2009, 18:21
|
|
Познающий
Регистрация: 11.11.2008
Сообщений: 77
Провел на форуме: 1144288
Репутация:
99
|
|
Мой вариант
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>";
|
|
|

13.12.2009, 20:21
|
|
Познающий
Регистрация: 29.01.2009
Сообщений: 81
Провел на форуме: 255434
Репутация:
12
|
|
а в случае динамического ip что будет??
|
|
|

13.12.2009, 20:28
|
|
Познающий
Регистрация: 30.11.2009
Сообщений: 97
Провел на форуме: 333264
Репутация:
80
|
|
Клади это число при первом посещении пользователю в куки. В будущем проверяй, есть ли такая кука пользователя и если есть, то показывай. Если нет, то выбирай число и записывай в куки.
|
|
|

13.12.2009, 21:27
|
|
Познающий
Регистрация: 29.01.2009
Сообщений: 81
Провел на форуме: 255434
Репутация:
12
|
|
ого, whexp, если б для меня эт так легко было я б написал))
спасиб за совет!
хотелось бы доработать этот скрипт
|
|
|

13.12.2009, 21:33
|
|
Познающий
Регистрация: 30.11.2009
Сообщений: 97
Провел на форуме: 333264
Репутация:
80
|
|
Я бы дописал, но не работаю с PHP  Сервер устанавливать, настраивать... Наверняка кто-нибудь допишет 
|
|
|

13.12.2009, 22:14
|
|
Познающий
Регистрация: 29.01.2009
Сообщений: 81
Провел на форуме: 255434
Репутация:
12
|
|
ну ниче)
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|