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 или пароль неверный.