ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Форма входа и регистрации
  #1  
Старый 21.08.2009, 13:11
Аватар для selevit
selevit
Banned
Регистрация: 19.08.2009
Сообщений: 104
Провел на форуме:
247293

Репутация: 23
Отправить сообщение для selevit с помощью ICQ
По умолчанию Форма входа и регистрации

Всем доброго времени суток, на мой сайт нужен php скрипт формы входа и регистрации пользователей - поделитесь, плиз у кого есть.
 
Ответить с цитированием

  #2  
Старый 21.08.2009, 13:14
Аватар для Rebz
Rebz
Super Moderator
Регистрация: 08.11.2004
Сообщений: 3,395
Провел на форуме:
13166814

Репутация: 3876


По умолчанию

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

Второе: скачивай CMS-ки и изучай их форму авторизации.
 
Ответить с цитированием

  #3  
Старый 21.08.2009, 13:17
Аватар для selevit
selevit
Banned
Регистрация: 19.08.2009
Сообщений: 104
Провел на форуме:
247293

Репутация: 23
Отправить сообщение для selevit с помощью ICQ
По умолчанию

я искал, но ничего путного так и не нашел)
 
Ответить с цитированием

  #4  
Старый 21.08.2009, 13:47
Аватар для acdel
acdel
Участник форума
Регистрация: 07.01.2008
Сообщений: 187
Провел на форуме:
2809557

Репутация: 126
Отправить сообщение для acdel с помощью ICQ
По умолчанию

вот тут смотри, заюзал поиск по твоему вопросу нашлось туева туча кодов авторизаций php.ru/forum
 
Ответить с цитированием

  #5  
Старый 21.08.2009, 13:57
Аватар для mailbrush
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме:
6075534

Репутация: 2731


Отправить сообщение для mailbrush с помощью ICQ
По умолчанию

На файлах
PHP код:
 <?php
 
/*
 (C) Mr.M.I.T.
 http://mit-home.nov.ru
 */
 
session_start();
 
$do=$_GET['do'];
 
$error=false;
 
$_SESSION['user']=!$_SESSION['user']?array('group'=>"guest"):$_SESSION['user']; // если не существует сессия user то создаем её и ставим по умолчанию
 
function get_serial($name,$dir='') { // фун-я для получения из файла серилизованного массива, $name - имя файла без расширения $dir путь к папке с файлом
     
$res=array();
     
$fp=@file_get_contents(($dir?"$dir/{$name}.php":"{$name}.php"));
     if (
$fp) {
         
$fp=str_replace("<?die();?>","",$fp);
         
$res=unserialize($fp);
     }
  return 
$res;
 }
 function 
set_serial($arr,$name,$dir='') { // фун-я для серилизации массива и записи в файл, $arr - массив, $name - название файла без расширения $dir путь к папке с файлом 
     
$arr="<?die();?>".serialize($arr);
     
$fp=fopen(($dir?"$dir/{$name}.php":"{$name}.php"),"w");
         
fputs($fp,$arr);
         
fclose($fp);
 }
 switch(
$do) {
   case
"out"// если do=out то выходим
     
unset($_SESSION['user']);
     
session_destroy();
     if (!
headers_sent()) {
           
setcookie("save",'',time()+999999,'/');
     }
     
header("Location:".($_SERVER['HTTP_REFERER']?$_SERVER['HTTP_REFERER']:$_SERVER['PHP_SELF']));
   break;
   case
"register"// если do=register, выводим регистрацию
     
$login=$_POST['login'];
     
$pass1=$_POST['pass1'];
     
$pass2=$_POST['pass2'];
     if (isset(
$login) && isset($pass1) && isset($pass2)) {
       if (!empty(
$login) && !empty($pass1) && !empty($pass2)) {
           
$users=get_serial('users');
           
$reallogin=$login;
           
$login=md5(strtolower($login));
           if (!
$users[$login]) {
               if (
strlen($pass1)>=4) {
                   
$pass1=md5($pass1);
                   
$pass2=md5($pass2);
                   if (
$pass1==$pass2) {
                       
$users[$login]=array();
                       
$users[$login]['login']=htmlspecialchars($reallogin);
                       
$users[$login]['pass']=$pass1;
                         
set_serial($users,'users');
                         
$error="Вы успешно зарегистрированны";
                         
header("Refresh:3;url=".$_SERVER['PHP_SELF']);
                   }else {
                       
$error="Ошибка: Пароли не совпадают";
                   }
               }else {
                   
$error="Ошибка: Минимальная длина пароля 4 символа";
               }
           } else {
               
$error="Ошибка: Такой пользователь уже существует";
           }
       }else {
         
$error="Ошибка: Обязательные поля нужно заполнить";
       }
     }
     print 
"
       "
.($error?"<div align=center width=60% style='border:1px solid red'>$error</div><br>":"")."
       <form method=POST>
       <table width=30% align=center border=1>
       <tr>
       <td>Login</td><td><input type='text' name='login'></td>
       <tr>
       <td>Pass 1</td><td><input type='password' name='pass1'></td>
       <tr>
       <td>Pass 2</td><td><input type='password' name='pass2'></td>
       <tr>
       <td colspan=2 align=center><input type=submit value='Регистрация'></td>
       </table>
       </form>
       "
;
   break;
   default: 
// по умолчанию, если do не существует или не равна register и out, выводим авторизацию
   
if ($_SESSION['user']['group']=='guest') {
   
$_COOKIE['save']=$_COOKIE['save']?unserialize($_COOKIE['save']):"";
   
$login=!$_COOKIE['save']['login'] || isset($_POST['login'])?$_POST['login']:$_COOKIE['save']['login'];
   
$pass=!$_COOKIE['save']['pass'] || isset($_POST['pass'])?$_POST['pass']:$_COOKIE['save']['pass'];
   if (isset(
$login) && isset($pass)) {
       if (!empty(
$login) && !empty($pass)) {
           if (!
$_COOKIE['save']['pass'] || isset($_POST['pass'])) $pass=md5($pass);
           
$users=get_serial('users');
           
$login=md5(strtolower($login));
           if (
$users[$login]) {
               if (
$users[$login]['pass']==$pass) {
                   
$_SESSION['user']['group']='user';
                   
$_SESSION['user']['login']=$users[$login]['login'];
                   if (!
headers_sent() && $_POST['save']) {
                       
$cook=array();
                       
$cook['pass']=$pass;
                       
$cook['login']=$users[$login]['login'];
                       
setcookie("save",serialize($cook),time()+999999,'/');
                   }
               }else {
                 
$error="Ошибка: Неверный Пароль";
               }
           }else {
             
$error="Ошибка: Такого Пользователя не существует";
           }
       }else {
         
$error="Ошибка: Обязательные поля нужно заполнить";
     }
     }
   }
   if (
$_SESSION['user']['group']=='guest') {
   print 
"
   "
.($error?"<div align=center width=60% style='border:1px solid red'>$error</div><br>":"")."
   <form method=POST>
   <table width=30% align=center border=1>
   <tr>
   <td>Login</td><td><input type='text' name='login'></td>
   <tr>
   <td>Pass</td><td><input type='password' name='pass'></td>
   <tr>
   <td>Запомнить?</td><td><input type='checkbox' name='save' value='1'></td>
   <tr>
   <td colspan=2><a href='?do=register'>Регистрация</a></td>
   <tr>
   <td colspan=2 align=center><input type=submit value='Войти'></td>
   </table>
   </form>
   "
;
   }else {
   print 
"
   <table width=30% align=center border=1>
   <tr>
   <td>Вы вошли как</td><td>
{$_SESSION['user']['login']} <a href='?do=out'>Выйти</a></td>
   </table>
   "
;
   }
 }
 
?>
На БД:
PHP код:
 <?php
 
/*
  (c) Mr.M.I.T.
   http://mit-home.nov.ru
 */
 ############################
 # Set Defaults
 ############################
 
set_magic_quotes_runtime(0);
 
session_start();
 
$do=$_GET['do'];
 
$error=false;
 
$_SESSION['user']=!$_SESSION['user']?array('group'=>"guest"):$_SESSION['user'];
 
$GLOBALS['cnf']=get_serial('db_cnf');
 
############################
 # Support Functions
 ############################
 
function get_serial($name,$dir='') {
     
$res=array();
     
$fp=@file_get_contents(($dir?"$dir/{$name}.php":"{$name}.php"));
     if (
$fp) {
         
$fp=str_replace("<?die();?>","",$fp);
         
$res=unserialize($fp);
     }
  return 
$res;
 }
 function 
set_serial($arr,$name,$dir='') {
     
$arr="<?die();?>".serialize($arr);
     
$fp=fopen(($dir?"$dir/{$name}.php":"{$name}.php"),"w");
         
fputs($fp,$arr);
         
fclose($fp);
 }
 function 
givepost($keys,$msql=false) {
     
$arr=array();
     if (
$_POST) {
         
$keys=explode(',',$keys);
         for(
$i=0,$c=count($keys);$i<$c;$i++) {
               
$arr[$keys[$i]]=$msql?mysql_real_escape_string($_POST[$keys[$i]]):$_POST[$keys[$i]];
         }
     }
   return 
$arr;
 }
 function 
emptypost($keys) {
     if (
$_POST) {
         
$keys=explode(',',$keys);
         for(
$i=0,$c=count($keys);$i<$c;$i++) {
               if (empty(
$_POST[$keys[$i]])) {
                   return 
true;
               }
         }
         return 
false;
     }
   return 
true;
 }
  
 function 
db_connect() {
     if (!
$GLOBALS['db_connid']) {
         
$GLOBALS['db_connid']= mysql_connect($GLOBALS['cnf']['db_host'],$GLOBALS['cnf']['db_user'],$GLOBALS['cnf']['db_pass']) or die(mysql_error());
         
mysql_query('SET NAMES '.$GLOBALS['cnf']['db_encoding']);
         
mysql_select_db($GLOBALS['cnf']['db_name'],$GLOBALS['db_connid']);
         
$GLOBALS['cnf']['db_pref']=mysql_real_escape_string($GLOBALS['cnf']['db_pref']);
     }
     return  
$GLOBALS['db_connid'];
 }
  
 
################################
 # Install
 ################################
 
if (empty($GLOBALS['cnf'])) {
   if (isset(
$_POST['done'])) {
     if (!
emptypost("db_name,db_host,db_user,db_encoding,db_pref")) {
         
$GLOBALS['cnf']=givepost("db_name,db_pass,db_host,db_user,db_encoding,db_pref");
         if (
db_connect()) {
             
set_serial($GLOBALS['cnf'],'db_cnf');
             
mysql_query("
               CREATE TABLE `
{$GLOBALS['cnf']['db_pref']}_auth` (
                 `id_user` int(11) NOT NULL auto_increment,
                 `login` varchar(300) NOT NULL,
                 `pass` varchar(32) NOT NULL,
                 PRIMARY KEY  (`id_user`),
                 KEY `login` (`login`)
               ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1
             "
) or die(mysql_error());
             
$error='Установка...';
             
header("Refresh: 2");
         }
     }else {
         
$error="Ошибка: Обязательные поля нужно заполнить";
     }
   }
     print 
"
       "
.($error?"<div align=center width=60% style='border:1px solid red'>$error</div><br>":"")."
       <form method=POST>
       <table width=30% align=center border=1>
       <tr>
       <td colspan=2 align=center>Установка...</td>
       <tr>
       <td>db_name</td><td><input type='text' name='db_name'></td>
       <tr>
       <td>db_pass</td><td><input type='text' name='db_pass'></td>
       <tr>
       <td>db_user</td><td><input type='text' name='db_user'></td>
       <tr>
       <td>db_host</td><td><input type='text' name='db_host'></td>
       <tr>
       <td>db_prefix</td><td><input type='text' name='db_pref' value='pref'></td>
       <tr>
       <td>db_encoding</td><td><input type='text' name='db_encoding' value='cp1251'></td>
       <tr>
       <td colspan=2 align=center><input type=submit name='done' value='Установить'></td>
       </table>
       </form>
       "
;
       die();
 }
  
 
##############################
 # Auth/Out/Register
 ##############################
  
  
 
$db=db_connect();
 switch(
$do) {
   case
"out":
     unset(
$_SESSION['user']);
     
session_destroy();
     if (!
headers_sent()) {
           
setcookie("save",'',time()+99999,'/');
     }
     
header("Location:".($_SERVER['HTTP_REFERER']?$_SERVER['HTTP_REFERER']:$_SERVER['PHP_SELF']));
   break;
   case
"register":
     
$login=$_POST['login'];
     
$pass1=$_POST['pass1'];
     
$pass2=$_POST['pass2'];
     if (isset(
$login) && isset($pass1) && isset($pass2)) {
       if (!empty(
$login) && !empty($pass1) && !empty($pass2)) {
           
$login=mysql_real_escape_string(htmlspecialchars($login));
           
$sql=mysql_query("SELECT * FROM {$GLOBALS['cnf']['db_pref']}_auth WHERE LOWER(login)='".strtolower($login)."'");
           if (!
mysql_num_rows($sql)) {
               if (
strlen($pass1)>=4) {
                   
$pass1=md5($pass1);
                   
$pass2=md5($pass2);
                   if (
$pass1==$pass2) {
                       if(
mysql_query("INSERT INTO {$GLOBALS['cnf']['db_pref']}_auth VALUES(NULL,'$login','$pass1')")) {
                         
$error="Вы успешно зарегистрированны";
                         
header("Refresh:3;url=".$_SERVER['PHP_SELF']);
                     }else{
                           
$error="Системная ошибка, не могу занести информацию в БД";
                     }
                   }else {
                       
$error="Ошибка: Пароли не совпадают";
                   }
               }else {
                   
$error="Ошибка: Минимальная длина пароля 4 символа";
               }
           } else {
               
$error="Ошибка: Такой пользователь уже существует";
           }
       }else {
         
$error="Ошибка: Обязательные поля нужно заполнить";
       }
     }
     print 
"
       "
.($error?"<div align=center width=60% style='border:1px solid red'>$error</div><br>":"")."
       <form method=POST>
       <table width=30% align=center border=1>
       <tr>
       <td>Login</td><td><input type='text' name='login'></td>
       <tr>
       <td>Pass 1</td><td><input type='password' name='pass1'></td>
       <tr>
       <td>Pass 2</td><td><input type='password' name='pass2'></td>
       <tr>
       <td colspan=2 align=center><input type=submit value='Регистрация'></td>
       </table>
       </form>
       "
;
   break;
   default:
   if (
$_SESSION['user']['group']=='guest') {
   
$_COOKIE['save']=$_COOKIE['save']?unserialize($_COOKIE['save']):"";
   
$login=!$_COOKIE['save']['login'] || isset($_POST['login'])?$_POST['login']:$_COOKIE['save']['login'];
   
$pass=!$_COOKIE['save']['pass'] || isset($_POST['pass'])?$_POST['pass']:$_COOKIE['save']['pass'];
   if (isset(
$login) && isset($pass)) {
       if (!empty(
$login) && !empty($pass)) {
           if (!
$_COOKIE['save']['pass'] || isset($_POST['pass'])) $pass=md5($pass);
           
$login=mysql_real_escape_string(htmlspecialchars($login));
           
$sql=mysql_query("SELECT * FROM {$GLOBALS['cnf']['db_pref']}_auth WHERE LOWER(login)='".strtolower($login)."'");
           if (
mysql_num_rows($sql)) {
               
$row=mysql_fetch_assoc($sql);
               if (
$row['pass']==$pass) {
                   
$_SESSION['user']['group']='user';
                   
$_SESSION['user']['login']=$row['login'];
                   if (!
headers_sent() && $_POST['save']) {
                       
$cook=array();
                       
$cook['pass']=$pass;
                       
$cook['login']=$row['login'];
                       
setcookie("save",serialize($cook),time()+99999,'/');
                   }
               }else {
                 
$error="Ошибка: Неверный Пароль";
               }
           }else {
             
$error="Ошибка: Такого Пользователя не существует";
           }
       }else {
         
$error="Ошибка: Обязательные поля нужно заполнить";
     }
     }
   }
   if (
$_SESSION['user']['group']=='guest') {
   print 
"
   "
.($error?"<div align=center width=60% style='border:1px solid red'>$error</div><br>":"")."
   <form method=POST>
   <table width=30% align=center border=1>
   <tr>
   <td>Login</td><td><input type='text' name='login'></td>
   <tr>
   <td>Pass</td><td><input type='password' name='pass'></td>
   <tr>
   <td>Запомнить?</td><td><input type='checkbox' name='save' value='1'></td>
   <tr>
   <td colspan=2><a href='?do=register'>Регистрация</a></td>
   <tr>
   <td colspan=2 align=center><input type=submit value='Войти'></td>
   </table>
   </form>
   "
;
   }else {
   print 
"
   <table width=30% align=center border=1>
   <tr>
   <td>Вы вошли как</td><td>
{$_SESSION['user']['login']} <a href='?do=out'>Выйти</a></td>
   </table>
   "
;
   }
 }
 
?>
(c) http://www.php.ru/forum/viewtopic.php?t=14334
 
Ответить с цитированием

  #6  
Старый 21.08.2009, 15:06
Аватар для selevit
selevit
Banned
Регистрация: 19.08.2009
Сообщений: 104
Провел на форуме:
247293

Репутация: 23
Отправить сообщение для selevit с помощью ICQ
По умолчанию

спасибо большое!!!
 
Ответить с цитированием

  #7  
Старый 21.08.2009, 15:19
Аватар для selevit
selevit
Banned
Регистрация: 19.08.2009
Сообщений: 104
Провел на форуме:
247293

Репутация: 23
Отправить сообщение для selevit с помощью ICQ
По умолчанию

можно еще вопрос - как сделать подтверждение регистрации по e-mail?
 
Ответить с цитированием

  #8  
Старый 22.08.2009, 04:59
Аватар для -=Zhenek=-
-=Zhenek=-
Участник форума
Регистрация: 31.12.2007
Сообщений: 279
Провел на форуме:
1725509

Репутация: 114
Отправить сообщение для -=Zhenek=- с помощью ICQ
По умолчанию

Сделай в базе еще одну калонку.
При регистрации генерируй код и заноси его туда.
На почту высылай ссылку например : site.ru/index.php?do=actemail&code=уникальный код

При переходе по ссылке удаляй из столбца код. и пиши,что активировано.


А при заходе в аккаунт проверяй если в поле кода не пусто,то говори что мыло не активированно.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регеры ICQ UIN'ов by saiNT sai_NT ICQ 477 13.06.2010 17:48
Смена куки без регистрации и входа на форум Sulf aka Joker Форумы 1 12.07.2006 17:32
Интересный способ регистрации доменов Landor Чужие Статьи 5 24.04.2006 17:03



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ