ОсновноеRadiotalkПользовательское
Программирование
6   •   Посмотреть все темы

Простой скрипт регистрации и авторизации пользователей на PHP+MySQL

 

6600
Александр @admiral
I. Простой скрипт регистрации пользователей на PHP+MySQL

1. Создаем форму регистрации:

<table>

<form action="reg.php" method="POST">
<tr>
<td>Имя</td>
<td><input type="text" name="login" ></td>
</tr>
<tr>
<td>Пароль</td>
<td><input type="password" name="password" ></td>
</tr>
<tr>
<td>Повторите пароль</td>
<td><input type="password" name="password2"></td>
</tr>
<tr>
<td>Email</td>
<td><input type="text" name="email"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="OK" name="submit" ></td>
</tr>

</form>
</table>

2. Создаем SQL-запрос к базе данных:

CREATE TABLE `users` (
`id` INT( 255 ) NOT NULL AUTO_INCREMENT ,
`login` VARCHAR( 255 ) NOT NULL ,
`password` VARCHAR( 255 ) NOT NULL ,
`email` VARCHAR( 255 ) NOT NULL ,
PRIMARY KEY ( `id` )
);

3. Дальше создаем файл connect.php для подключения к нашей базе:

<?php
$dblocation = "localhost";
$dbname = "имя базы данных";
$dbuser = "имя пользователя базы данных";
$dbpasswd = "пароль к базе выбранного пользователя";
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx)
{
echo( "<P> В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно. </P>" );
exit();
}
if (!@mysql_select_db($dbname, $dbcnx))
{
echo( "<P> В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно. .</P>" );
exit();
}
?>

4. Создадим основной файл нашего скрипта - reg.php, который и будет осуществлять саму регистрацию:

<?
include_once("connect.php");
if (isset($_POST['submit']))
{
if(empty($_POST['login']))
{
echo 'Вы не ввели логин';
}
elseif(empty($_POST['password']))
{
echo 'Вы не ввели пароль';
}
elseif(empty($_POST['password2']))
{
echo 'Вы не ввели подтверждение пароля';
}
elseif($_POST['password'] != $_POST['password2'])
{
echo 'Введенные пароли не совпадают';
}
elseif(empty($_POST['email']))
{
echo 'Вы не ввели E-mail';
}
else
{
$login = $_POST['login'];
$password = $_POST['password'];
$password2 = $_POST['password2'];
$email = $_POST['email'];
$query = "SELECT `id`
FROM `users`
WHERE `login`='{$login}' AND `password`='{$password}'
";
$sql = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($sql) > 0)
{
echo 'Такой логин уже существует';
}

else
{
$login=mysql_real_escape_string($login);
$password=mysql_real_escape_string($password);
$email=mysql_real_escape_string($email);
$query = "INSERT INTO users(login , password , email )
VALUES ('$login', '$password', '$email')";
$result = mysql_query($query) or die(mysql_error());;
echo 'Регистрация успешно прошла';
}
}
}
?>

Вот впринципе и все, основное что нам нужно будет сделать после создания всех файлов, так это прописать свои параметры в файле connect.php:

$dblocation - имя хоста, на котором находится база данных.
$dbname - имя выбранной базы данных.
$dbuser - имя пользователя базы данных.
$dbpasswd - пароль к базе выбранного пользователя.

=========

II. Простой скрипт авторизации пользователей на PHP+MySQL

1. Опять же, начнем с создания формы авторизации:

<table>
<form action="avt.php" method="POST">
<tr>
<td>Имя</td>
<td><input type="text" name="login"></td>
</tr>
<tr>
<td>Пароль</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td colspan="2"> <input type="submit" value="OK" name="auth_submit"></td>
</tr>
</form>
</table>

Ниже повторяется два шага что и при создании форумы регистрации, так как регистрация и авторизация пользователей должны быть взаимосвязаны, если Вы уже делали запрос в базу данных и создавали файл подключения к базе данных, то смело можно пропускать эти два шага описанных ниже:

2. Используем уже готовую таблицу в базе, которую создавали когда писали форму регистрации (выше) или создаем такую же таблицу, тем же SQL-запросом к базе данных, если не делали форуму регистрации:

CREATE TABLE `users` (
`id` INT( 255 ) NOT NULL AUTO_INCREMENT ,
`login` VARCHAR( 255 ) NOT NULL ,
`password` VARCHAR( 255 ) NOT NULL ,
`email` VARCHAR( 255 ) NOT NULL ,
PRIMARY KEY ( `id` )
);

3. Дальше создаем, если еще не создавали файл connect.php для подключения к нашей базе:

<?php
$dblocation = "localhost";
$dbname = "имя базы данных";
$dbuser = "имя пользователя базы данных";
$dbpasswd = "пароль к базе выбранного пользователя";
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx)
{
echo( "<P> В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно. </P>" );
exit();
}
if (!@mysql_select_db($dbname, $dbcnx))
{
echo( "<P> В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно. .</P>" );
exit();
}
?>

4. Ну и создаем наш основной файл авторизации, обзовем его например - avt.php и вставим в него следующий код:

<?php
include_once("connect.php");
if(isset($_POST['auth_submit']))
{
$login = $_POST['login'];
$password = $_POST['password'];
$login=mysql_real_escape_string($login);
$password=mysql_real_escape_string($password);
$query = "SELECT id, login, password
FROM users
WHERE login ='{$login}' AND password='{$password}'
LIMIT 1";
$sql = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($sql) == 1)
echo 'Авторизация прошла успешно';
else
echo 'Неправильное имя или пароль';
}
?>

PS Вот мы и авторизовались )))

Отредактировано admiral - 01.03.2014
16
ROM710 @ROM710
Здравствуй admiral , поробовал Вашу регистрацию, работает хорошо. Авторизация почему то сразу открывает страницу без пароля и логина. Показывает и conned.php и avt.php, в чем причина подскажите пожалуйста. Всего доброго.

6600
Александр @admiral
для авторизации имя поля нужно задать auth_submit, исправил в скрипте авторизации
name="submit"

заменить на:
name="auth_submit"

16
ROM710 @ROM710
Спасибо admiral , сейчас работает. Теперь не получается связать с той страницей сайта которой предназначалась регистрация. Как ей прописать ?