Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Может у кого нибудь есть файле с кодом регистрации на PHP (для образца)
 
 автор: Dinya_1   (05.11.2008 в 19:44)   письмо автору
 
 

Здравствуйте!
Не могу никак «организовать» Функцию регистрации пользователя с помощью PHP, просмотрел целую кучу через поиск на softime.ru, ничего не получается. Может у кого нибудь найдется несколько файлов с кодом (для примера):

1. Главная страница, с просмотром как для гостей так для зарегистри-х Польз-й, с формой регистрации новых…
2. 2-й файл должен открываться только зарегистрированным….( к примеру по ссылке на главной странице: добавить комментарий).
3. Если польз. Зарегистрирован, писать Здравствуйте «Имя», + ссылка на страницу личного кабинета пользователя + кнопочка на удаление с этого компа, если же не зарегистрирован Здравствуйте Гость…

Если покороче - нужен образец полноценного процесса работы сайта с пользователем….

  Ответить  
 
 автор: Max_No_Dead_Vasin   (06.11.2008 в 00:02)   письмо автору
 
   для: Dinya_1   (05.11.2008 в 19:44)
 

вот что-то в этом роде... времени "чистить" - нет-с... мож на выходных.
собрано между прочим на примерах с сайта, и подсказок форумчан:)
0) табличка юзверей
CREATE TABLE `users` (
  `id_user` int(11) NOT NULL auto_increment,
  `name` varchar(20) default NULL,
  `password` varchar(20) default NULL,
  `mailer` varchar(40) NOT NULL default '',
  `putdate` datetime NOT NULL default '0000-00-00 00:00:00',
  `status` enum('user','moder','admin') default 'user',
  PRIMARY KEY  (`id_user`)

) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=14256 ;

1) index.php
<?php
session_start
();
include_once(
"config.php");
?>


2) config.php
коннект с базой

if (isset($_SESSION['user'])){$user_names=$_SESSION['user']."!&nbsp;&nbsp;<a href=\"action.php?action=log_off\">Выйти</a>";}
else  $user_names='Гость!&nbsp;&nbsp;<a href="action.php?action=new_log">Зарегистрироваться</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="action.php?action=log_on">Войти</a>';

3) action.php

<?
// Страница регситрации нового пользователя
# Соединямся с БД

include_once('config.php');

switch (
$_GET['action']) {
  case 
'new_log':
if(isset(
$_POST['submit']))
{
    
$err = array();
    
# проверям логин
    
if(!preg_match("/^[a-zA-Z0-9_]+$/",$_POST['name']))
    {
        
$err[] = "Логин может состоять только из букв английского алфавита и цифр";
    }

    if(
strlen($_POST['name']) < or strlen($_POST['name']) > 30)
    {
        
$err[] = "Логин должен быть не меньше 3-х символов и не больше 30";
    }

    if (!
preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i",$_POST['email']))
    {
        
$err[] = "Проверьте e-mail!";
    }


    if(!
preg_match("/^[a-zA-Z0-9]+$/",$_POST['password']))
    {
        
$err[] = "Пароль может состоять только из букв английского алфавита и цифр";
    }

    if(
strlen($_POST['password']) < or strlen($_POST['password']) > 20)
    {
        
$err[] = "Внимание! Пароль должен быть не меньше 5 символов и не больше 20";
    }
    
# проверяем, не сущестует ли пользователя с таким именем
    
$query mysql_query("SELECT COUNT(id_user) FROM users WHERE name='".mysql_escape_string($_POST['name'])."'");
    echo 
mysql_error();
    if(
mysql_result($query0) > 0)
    {
        
$err[] = "Пользователь с таким логином уже существует в базе данных";
    }

    
# Если нет ошибок, то добавляем в БД нового пользователя
    
if(count($err) == 0)
    {
        
# Убераем лишние пробелы
        
$login trim($_POST['name']);

        
# Убераем лишние пробелы и делаем двойное шифрование
        
$password trim($_POST['password']);
        
$email=trim($_POST['email']);
        
mysql_query("INSERT INTO users SET name='".$login."', password='".$password."', mailer='".$email."', putdate='".date('Y-m-j G:i:s')."'");
        
header("Location: /index.php"); exit();
    }
    else
    {

        
//print "<b>При регистрации произошли следующие ошибки:</b><br>";
        
foreach($err AS $error)
        {
           
$ssss=$error."<br>";
        }
    }
}
  else {
    
?>

<div align="center"><table border=0>
        <TR>
            <TD bgColor=#eaedf4 BACKGROUND="images/blue_bg2.gif" class=tn>
                 <b><center>Регистрация</center></b></div>
                 </Td>
             </TR>
<tr><td align=center width="300px" >
<div align="center">
<table class=tn  border=2 bgColor=#eaedf4 >
<TR ><TD align=center >
<form id="post" class="container" method="post" action="reger.php">
Логин <input name="name" type="text"><br>
Пароль <input name="password" type="password"><br> e-mail <input name="email" type="text"><br>
<input name="submiter" type="submit" value="Зарегистрироваться">
</form>

</TD></TR>
<tr><td align=center width="300px"><a href="/index.php">На главную </a></td></tr>
    </table></div>
</td></tr>
</table></div>
    <?
    
echo @$name;
    }

    break;
  case 
'log_on':
    if(isset(
$_GET['submit'])){
       
$query "SELECT password FROM users WHERE name='".$_GET['name']."'";
    
$nme mysql_query($query);
    if(!
$nme)
    {
      echo 
mysql_error();
      echo 
"Ошибка выполнения запроса";
      exit();
    }
    
// Если запрос вернул результат - производим дальнейшую обработку
    
if(mysql_num_rows($nme) > 0)
    {
       
// Получаем пароль
       
$password mysql_result($nme0);
       
// Сравниваем пароль из базы данных и введённый посетителем
       
if ($_GET['password'] == $password)
       {
         
// Идентификация прошла успешно - осуществляем
         // "вход" посетителя. Для того, чтобы в течении текущей
         // сесси посетитель не вводил своё имя пароль повторно -
         // передаём их через сессию
         
if(session_start())
         {
           
$_SESSION['user'] = $_GET['name'];
           
$_SESSION['password'] = $_GET['password'];
           
$query "SELECT id_user FROM users WHERE name='".$_GET['name']."'";
           
$N_user mysql_query($query);
           
$_SESSION['N_user']=mysql_result($N_user0);
           
// Осуществляем автоматический переход на
           // страницу index.php чтобы убедится, что
           // посетитель "вошёл"
           
echo "<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'></HEAD><body>";
         }
       }
       else
       {
         echo 
"Ошибка идентификации: неправильный пароль";
         exit();
       }
    }
    
// Если в результате запроса не получено ни одной
    // строки - посетитель с таким именем не зарегистрирован
    
else
    {
      echo 
"<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'></HEAD><body>";
      echo 
"Ошибка идентификации: посетитель не зарегистрирован";
      exit();
    }
        }
    else    {
    
?>
<div align="center"><table border=0>
        <TR>
            <TD bgColor=#eaedf4 BACKGROUND="images/blue_bg2.gif" class=tn>
                 <b><center>Вход</center></b></div>
                 </Td>
             </TR>
<tr><td align=center width="300px" >
<div align="center">
<table class=tn  border=2 bgColor=#eaedf4 >
<TR ><TD align=center >
<form id="post" class="container" method="get" action="action.php"><br />
Логин <input name="name" type="text"><br> <br />
Пароль <input name="password" type="password"><br /><br />
<input name="action" type="hidden" value="log_on">
<input name="submit" type="submit" value="Войти">
</form>

</TD></TR>
<tr><td align=center width="300px"><a href="/index.php">На главную </a></td></tr>
    </table></div>
</td></tr>
</table></div>
    <?  }
    break;
  case 
'log_off':
session_start();
$_SESSION = array();
if (isset(
$_COOKIE[session_name()])) {
    
setcookie(session_name(), ''time()-42000'/');
}
session_destroy();
header("Location:".'./index.php');
    break;
default:
@
$ip = ($_SERVER['HTTP_X_FORWARDED_FOR'] == "" $_SERVER['REMOTE_ADDR'] : $_SERVER['HTTP_X_FORWARDED_FOR']);
echo 
"<center><h2>ну че-то совсем не то:)<br>".$ip."</h2>
<a href=\"../index.php\">Здесь интереснее</a></center>
"
;

}
  print @
$ssss."<br>";
?>


4) после <body> инклудится шапочка header.php

<?
echo <<<HERE
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0" >
    <tr height="47"  valign="top" background="image/top_bg01.gif" width=100% colspan=5>
        <td height="47"  valign="top" background="image/top_bg01.gif">
              <table width="100%" border="0" cellspacing="0" cellpadding="0">
                  <tr><td align="left" valign="top"><img src="image/logo.gif" width="277" height="47"></td>
                    <td align="right" valign="bottom" >
                        <table border="0" cellpadding="0" cellspacing="0" class="text">
                            <tr align="center" class="text" >

                                  <td width="94">
HERE;
echo 
"Приветствую,&nbsp;"$user_names;
echo <<<HERE
                                        </td>

                                <td width="100" class=rglink></td>
                             </tr>
                          </table>
                    </td>
                </tr>
            </table>
        </td>
    </tr>
HERE;
?>


----
Regards, Max Vasin.

  Ответить  
 
 автор: Dinya_1   (06.11.2008 в 18:56)   письмо автору
 
   для: Max_No_Dead_Vasin   (06.11.2008 в 00:02)
 

default NULL - это тоже что NULL ?
А тогда NOT NULL default - это что, и вообще слова default нет при создании таблици

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования