Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Скрипт - регистрация по приглашению

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
etoYA
Отправлено: 05 Ноября, 2011 - 04:25:20
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


Помог: 21 раз(а)




Собственно как организовать регистрацию по приглашению?

К примеру: в форму пригласить "логин" и для него автоматически генерируется уникальный код? Как это вообще организовать?
 
 Top
DeepVarvar Супермодератор
Отправлено: 05 Ноября, 2011 - 05:02:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Просто генерить уникальный инвайт (или несколько) для уже зареганного.
Зареганный дает инвайт кому-то.
А этот кто-то регаясь пишет инвайт в соответствующее поле.
Если инвайт совпал - регаем.
А у того кто давал инвайт, помечаем его использованным.
 
 Top
etoYA
Отправлено: 05 Ноября, 2011 - 05:11:06
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


Помог: 21 раз(а)




Ну мне немного проще, я просто пока еще не умею генерировать случайные данные, собственно в этом и была суть вопроса....
(Добавление)
Мб функция rand?
(Добавление)
но тогда не могу понять как сделать xx-xxxx-xxxx
 
 Top
LIME
Отправлено: 05 Ноября, 2011 - 05:15:17
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




http://php.su/functions/?f=md5
(Добавление)
md5(time()) для уникальности
 
 Top
etoYA
Отправлено: 05 Ноября, 2011 - 05:18:42
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


Помог: 21 раз(а)




Хм, точно, но попробую подругому..
 
 Top
DeepVarvar Супермодератор
Отправлено: 05 Ноября, 2011 - 05:50:21
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




sha1 ???
 
 Top
etoYA
Отправлено: 05 Ноября, 2011 - 05:50:47
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


Помог: 21 раз(а)




В общем буду делать так:

Создам таблицу и в нее буду добавлять Ник и инвайт, при регистрации(ну это я к примеру говорил, на самом деле активации) сверять ник на который был выдан инвайт с инвайт.

Вот что-то накавырял

PHP:
скопировать код в буфер обмена
  1. <?
  2. function generateVouch ($lenght) {
  3.         $str = 'qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890';
  4.         $int = strlen($str);
  5.         for ($i = 0; $i < $lenght; $i++) {
  6.                 $x1 .= substr($str, rand(1, $int) - 1, 1);
  7.                 $x2 .= substr($str, rand(1, $int) - 1, 1);
  8.                 $x3 .= substr($str, rand(1, $int) - 1, 1);
  9.                 $x4 .= substr($str, rand(1, $int) - 1, 1);
  10.                 $vouch = "$x1-$x2-$x3-$x4";
  11.         }
  12.         return $vouch;
  13. }
  14. echo generateVouch(4);
  15. ?>



Так делать вообще нормально, или лучше как сказал LIME с помщью мд5?

Выводит xxxx-xxxx-xxxx-xxxx как и было задумано

(Отредактировано автором: 05 Ноября, 2011 - 05:52:04)

 
 Top
DeepVarvar Супермодератор
Отправлено: 05 Ноября, 2011 - 05:54:48
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Так могут повторится. Лучше забивать даже не по time, т.к. это секундный промежуток и два юзера за одну секунду могут получить одинаковый хеш.
Самое действенное:

Совпадений не будет даже на сотых долях секунды.
 
 Top
etoYA
Отправлено: 05 Ноября, 2011 - 06:00:13
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


Помог: 21 раз(а)




Впринципе совпадения не играют роли, так как сверять буду по нику и по инвайту, поэтому мне кажется мой вариант сойдет.... Да и то что повторится это уж большая редкость будет, ведь 16 символов.... причем с разным регистром.

(Отредактировано автором: 05 Ноября, 2011 - 06:01:23)

 
 Top
LIME
Отправлено: 05 Ноября, 2011 - 06:18:08
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




etoYA встроенные ф-ции просто гораздо быстрее да и читаемость кода повышается
зачем городить свою фцию если можно одной строчкой сделать
md5($login.microtime()) как вариант против совпадений
 
 Top
etoYA
Отправлено: 05 Ноября, 2011 - 06:46:42
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


Помог: 21 раз(а)




Возможно вы и правы....
 
 Top
vixa
Отправлено: 06 Ноября, 2011 - 00:52:29
Post Id



Новичок


Покинул форум
Сообщений всего: 55
Дата рег-ции: Авг. 2011  
Откуда: Украина


Помог: 0 раз(а)




Создай таблицу в которую будут вносится коды приглашения после напиши html код
CODE (html):
скопировать код в буфер обмена
  1. <form action="reg.php" method="post">Введите код приглашения: <input type="text" name="regcode" /><p><input type="submit" name="ok" value="Ввести" /></p></form>


сделай проверку чтото в роде такого
PHP:
скопировать код в буфер обмена
  1. $kode = $_POST['kode'];
  2. $res = mysql_query("select * from regcode where codeid = '$kode'");
  3. if(mysql_num_rows($res) > 0) {
  4. тогда открывается форма регистрации
  5. и код приглашения должен быть удален из базы чтобы им не воспользовались вновь
  6. }

Пробуй сам експерементируй в общем я показал тебе простейший пример чтобы все красиво и без перезагрузки было выучи aJax


-----
Vixa
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB