регистрация по ссылке

Paranoiac

Новичок
регистрация по ссылке

Допустим человек заходит на сайт по ссылке другого человека ----.ru/clic.php?I=1564 (1564 уникальный номер человека)

{действия}, после чего его перекидывает на главную страницу ------.ru


нужно чтобы после <b>регистрации</b> нового человека -----.ru/reg.php , человеку с номером (1564) записалось в базу что по его ссылке зарегилось стока то и имелась возможность посмотреть кто регистрировался....


подскажите пожалуста алгоритм как это реализовать, какие переменные надо отслеживать и как защититься от накрутки, если уникальный номер присваеваеться после регистрации?????????????? Повторюсь исходный код не нужен нужен алгоритм действий, че то с утра не могу догнать :confused:
 

Paranoiac

Новичок
Ладно перефразирую начнем не спеша что долщен содержать файл clic.php???
 

Paranoiac

Новичок
Автор оригинала: Фанат
а где волшебное слово?
пожалуста!

и удали пожалуста! все что не потеме а то получился топик для флуда

-~{}~ 27.04.06 12:19:

Хм придеться самому доганять...

Дайте рецензию по скрипту плиз!!!!!!!!!!


clic.php

<?

if (!isset($_GET['Id'])) $_GET['Id']='';
if (!is_numeric($_GET['Id']) || $_GET['Id']<1) $_GET['Id']='';

$ip=''; $rf='';

if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND $_SERVER['HTTP_X_FORWARDED_FOR']!="")
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
if(isset($_SERVER['REMOTE_ADDR']) AND $_SERVER['REMOTE_ADDR']!="")

$ip=$_SERVER['REMOTE_ADDR'];
}

if(isset($_SERVER['HTTP_REFERER']) AND $_SERVER['HTTP_REFERER']!="")

$rf=$_SERVER['HTTP_REFERER'];



if(isset($_COOKIE['******']) AND $_COOKIE['********']!="")
{
sleep(1);
Header ("Location: xxx");
exit();
}

if($ip=='' || $_GET['Id']=='' || $rf=='')
{
sleep(1);
Header ("Location: xxx");
exit();
}



$dbcnx=mysql_connect($host,$user,$pass);
if(!$dbcnx)
{
print mysql_error();
exit();
}

if(!mysql_select_db(****))
{
print mysql_error();
exit();
}


@$sql="проверка если пользователь в базе на которого ссылаються";
$result=mysql_query($sql) or die ("Invalid query:" . mysql_error());

if(!mysql_num_rows($result))
{
mysql_close($dbcnx);
sleep(1);
Header ("Location: xxx");
exit();
}

@$sql="проверяем по этому IP уже есть запись в таблице или проверяем по времени прошло ли 5 мин с того как нажимали по ссылке на этого пользователя";

$result=mysql_query($sql) or die ("Invalid query:" . mysql_error());

if(mysql_num_rows($result)!=0)
{
mysql_close($dbcnx);
sleep(1);
Header ("Location: xxx");
exit();
}

если все ок записываем

$result=mysql_query("insert into ****(*******)
values('пользователь на которого ссылаються";
', 'с какого IP пришли', 'дату','0 - (после регистрации id пользователя который ссылаеться запишем сюда) ')") or die("Invalid query:" . mysql_error());

mysql_close($dbcnx);


function make_seed()
{ list($usec, $sec) = explode (' ', microtime());
return (float) $sec + ((float) $usec * 100000); }

mt_srand(make_seed());
$nonce=mt_rand(1, 10000000);
$nonce=md5($nonce);

sleep(1);
@setcookie("****", $nonce, time()+3600*24*30);
Header ("Location: *****");
exit();
?>

И остался вопрос как на странице регистрации после регистрации пользователь который ссылаеться получает id
как выяснить на кого он ссылался сравнивать IP?????

'0 - (после регистрации id пользователя который ссылаеться запишем сюда)
 
Сверху