brussens
Мега-мастер
				Дата регистрации:
11.10.2011 22:50:07
Сообщений: 438
Что косается класса, то регистрация и авторизация в одном классе, отвечает за вход функция public function insertDataAuth().
Вот код
registration.php
<?php 
class registration { 
public $log; 
public $pass; 
public $repeatpass; 
public function __construct($log, $pass, $repeatpass) { 
$this->log = $log; 
$this->pass = $pass; 
$this->repeatpass = $repeatpass; 
} 
public function checkDataLoginRegAuth() { 
if (isset($this->log)) { 
if ($this->log == '') { 
unset($this->log); 
} 
} 
} 
public function checkDataPassLog() { 
$log = $_POST['login']; 
 if (isset($_POST['password'])) { $pass=md5($_POST['password']); if ($pass =='') { unset($pass);} } 
    //заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную 
if (empty($log) or empty($pass)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт 
    { 
    exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!"
; 
    } 
} 
public function checkDataPassReg() { 
if (isset($this->pass)) { 
if ($this->repeatpass == $this->pass) { 
if (($this->pass == '') || ($this->repeatpass == '')) { 
exit ("Введите данные заново"
; 
} 
} 
else { 
exit ("Пароли не совпадают!"
; 
} 
} 
if  ((empty($this->log)) || (empty($this->pass))) { 
exit ("Обязательные поля должны быть заполнены!"
;
} 
} 
public function insertDataReg() { 
$name = $_POST['name']; 
$insert = mysql_query ("INSERT INTO users (login, name, password) VALUES('$this->log', '$name', '$this->pass')"
; 
if ($insert == 'TRUE') 
    { 
    echo "Вы успешно зарегистрированы!"; 
    } 
 else { 
    echo "Ошибка при регистрации!"; 
    } 
} 
public function insertDataAuth() { 
$result = mysql_query("SELECT * FROM users WHERE login='$this->log'"
; //извлекаем из базы все данные о пользователе с введенным логином 
    $myrow = mysql_fetch_array($result); 
    if (empty($myrow['password'])) 
    { 
    //если пользователя с введенным логином не существует 
    exit ("Извините, введённый вами login или пароль неверный."
; 
    } 
    else { 
    //если существует, то сверяем пароли 
    if ($myrow['password']==$this->pass) { 
    //если пароли совпадают, то запускаем пользователю сессию!
    $_SESSION['login']=$myrow['login'];  
    $_SESSION['id']=$myrow['id'];
    echo "Вы успешно вошли на сайт! <a href='/index.php'>Главная страница</a>"; 
    } 
 else { 
    //если пароли не сошлись 
    exit ("Извините, введённый вами login или пароль неверный."
; 
    } 
    } 
} 
} 
?>
login.php
<?php
session_start();
require_once "classes/dbconnect.php";
require_once "classes/registration.php";
$registr = new registration($_POST['login'], md5($_POST['password']));
echo $registr->checkDataLoginRegAuth();
echo $registr->checkDataPassLog();
echo $registr->insertDataAuth();
?>
Ошибка
Извините, введённый вами login или пароль неверный.