Как сделать регистрацию для сайта на PHP + MySQL (Рейтинг: +24)
Очень часто новички сталкиваются с проблемой написания регистрации у себя на сайте. В этой статье я расскажу как ее сделать.
Распишу все пошагово.
Шаг 1. Подключение к базе данных MySQL.
Создадим файл db_connect.php:
Шаг 2. Создадим таблицу для пользователей.
Шаг 3. Создадим файл handler.php - этот файл будет содержать проверку на авторизацию пользователя.
Шаг 4. Пишем регистрацию.
Для этого создадим файл register.php и напишем в нем следующим код:
Шаг 5. Делаем авторизацию.
Для этого создайте файл login.php
Шаг 6. Выход пользователя.
Каждый юзер должен выходить из сайта, если он этого хочет. Для этого создадим файл exit.php
Шаг 7. Создание главной страницы сайта.
Создадим последний файл - index.php
Для настройки создайте файл .htaccess и впишите в него следующее:
Тем кому лень делать это все, качайте архив.
Спасибо за внимание!
С ув. Егор Смоляков.
Добавил: iNeeXT
31.07.2012 / 19:13Распишу все пошагово.
Шаг 1. Подключение к базе данных MySQL.
Создадим файл db_connect.php:
<?php mysql_connect('localhost', 'пользователь', 'пароль пользователя') or die('Ошибка соединения с MySQL!'); mysql_select_db('база данных') or die ('Ошибка соединения с базой данных MySQL!'); mysql_set_charset('utf8'); // выставляем кодировку базы данных ?>
Шаг 2. Создадим таблицу для пользователей.
CREATE TABLE `users_profiles` (
`user_id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(32) NOT NULL,
`password` varchar(32) NOT NULL,
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Шаг 3. Создадим файл handler.php - этот файл будет содержать проверку на авторизацию пользователя.
<?php include_once 'db_connect.php'; // проверяем подключение к базе данных // проверяем заполнены ли логин и пароль в куках if(!empty($_COOKIE['username']) AND !empty($_COOKIE['password'])) { // ищем пользователя в таблице users_profiles, mysql_real_escape_string используем как защиту от sql injection $search_user = mysql_query("SELECT * FROM `users_profiles` WHERE `username` = '".mysql_real_escape_string($_COOKIE['username'])."' AND `password` = '".mysql_real_escape_string($_COOKIE['password'])."'"); $user = (mysql_num_rows($search_user) == 1) ? mysql_fetch_array($search_user) : 0; } else { $user = 0; } ?>
Шаг 4. Пишем регистрацию.
Для этого создадим файл register.php и напишем в нем следующим код:
<?php include_once 'handler.php'; // проверяем авторизирован ли пользователь // если да, перенаправляем его на главную страницу if($user) { header ('Location: index.php'); exit(); } if (!empty($_POST['login']) AND !empty($_POST['password'])) { // фильтрируем логин и пароль $login = mysql_real_escape_string(htmlspecialchars($_POST['login'])); $password = mysql_real_escape_string(htmlspecialchars($_POST['password'])); // проверяем есть ли логин в нашей базе данных if (mysql_result(mysql_query("SELECT COUNT(*) FROM `users_profiles` WHERE `username` = '".$login."' LIMIT 1;"), 0) != 0) { echo 'Выбранный логин уже зарегистрирован!'; exit(); } // заносим данные в таблицу, обратите внимание - пароль кодируем в md5 mysql_query("INSERT INTO `users_profiles` (`username`, `password`) VALUES ('".$login."', '".md5($password)."')"); echo 'Вы успешно зарегистрированы!'; exit(); } // форма регистрации echo ' <form action="register.php" method="POST"> Логин:<br/> <input name="login" type="text" value="" /><br/> Пароль:<br/> <input name="password" type="text" value="" /><br/> <input type="submit" value="Зарегистрироваться" /> </form>'; ?>
Шаг 5. Делаем авторизацию.
Для этого создайте файл login.php
<?php include_once 'handler.php'; // проверяем авторизирован ли пользователь // если да, перенаправляем его на главную страницу if($user) { header ('Location: index.php'); exit(); } if(!empty($_POST['login']) AND !empty($_POST['password'])) { // фильтрируем логин и пароль $login = mysql_real_escape_string(htmlspecialchars($_POST['login'])); $password = mysql_real_escape_string(htmlspecialchars($_POST['password'])); $search_user = mysql_result(mysql_query("SELECT COUNT(*) FROM `users_profiles` WHERE `username` = '".$login."' AND `password` = '".md5($password)."'"), 0); if($search_user == 0) { echo 'Введенные данные неправильные или пользователь не найден.'; exit(); } else { // заносим логин и пароль в куки $time = 60*60*24; // сколько времени хранить данные в куках setcookie('username', $login, time()+$time, '/'); setcookie('password', md5($password), time()+$time, '/'); echo 'Вы успешно авторизировались на сайте!'; exit(); } } echo ' <form action="login.php" method="POST"> Логин:<br /> <input name="login" type="text" /><br /> Пароль:<br /> <input name="password" type="password" /><br /> <input type="submit" value="Авторизироваться" /> </form>'; ?>
Шаг 6. Выход пользователя.
Каждый юзер должен выходить из сайта, если он этого хочет. Для этого создадим файл exit.php
<?php include_once 'handler.php'; // проверяем авторизирован ли пользователь // проверяем авторизацию пользователя if($user) { setcookie('username', '', time()-1, '/'); setcookie('password', '', time()-1, '/'); session_destroy(); echo 'Вы успешно вышли!'; } else { echo 'Для этого действия нужно авторизироваться.'; } ?>
Шаг 7. Создание главной страницы сайта.
Создадим последний файл - index.php
<?php include_once 'handler.php'; // проверяем авторизирован ли пользователь if($user) { // выводим информацию для пользователя echo 'Привет, <b>'.$user['username'].'</b>!<br /> - <a href="exit.php">Выйти</a><br /> '; } else { // выводим информацию для гостя echo ' - <a href="login.php">Авторизация</a><br /> - <a href="register.php">Регистрация</a><br /> '; } ?>
Для настройки создайте файл .htaccess и впишите в него следующее:
php_value register_globals 0
php_value magic_quotes_gpc 0
php_value zlib.output_compression 1
AddDefaultCharset UTF-8
Тем кому лень делать это все, качайте архив.
Спасибо за внимание!
С ув. Егор Смоляков.
Рейтинг:
+24
Просмотры: 21284Комментарии (7) »