Скрипты

ticket-plus-система-технической-поддержки-клиентов  - позволяет вам легко масштабировать и оптимизировать обслуживание клиентов и значительно улучшать положительное отношение ваших клиенов. Ticket...
phpsound-1-2-7-платформа-обмена-музыкойPhpSound - это социальная платформа обмена музыкальными файлами, похожей на soundcloud. Сервис даёт пользователям возмоность загружать свою музыку, и...
wowonder-v-1-3-социальная-сетевая-платформа WoWonder - это PHP-скрипт социальной сети, WoWonder это лучший способ чтобы начать создание собственного сайта социальной сети. Этот скрипт имеет все...

Для Photoshop

animation-glitch-photoshop-action Action для программы Photoshop, который генерирует видео ряд анимационных эффектов в виде помех на экране, из ваших изображений. Вы можете создать...
radiant-action-photoshop Экшен для программы Photoshop, создаёт эффект света и геометрических фигур, что поможет создать стильный модный вид вашему образу. Создавайте яркие и...
doomsday-action-экшен-для-photoshop Экшен для программы Photoshop, создаёт потрясающий эффект драматизма с глубокими тенями и световым контрактом. Отлично подойдёт при создании рекламных...

Простая система регистрации пользователей

prostaya_reg_stratsiya_polzovatklya

На множестве сайтов, которые мы каждый день просматриваем в сети, почти на всех имеется пользовательская регистрация.  В том уроке мы пробежимся по основам пользовательского управления, заканчивая простой Областью Участника, которую Вы можете осуществить на своем собственном вебсайте.

Этот урок рассчитан для начинающих изучение php где мы рассмотрим основы управления пользователями.

Шаг-1

Создадим в базе  таблицу user  в которой, мы будем хранить информацию о пользователях в таблице 4 поля

  • UserID
  • Username
  • Password
  • EmailAddress

Используйте SQL запрос ниже для создания базы данных

CREATE TABLE `users` ( 
`UserID` INT(25) NOT NULL AUTO_INCREMENT PRIMARY KEY , 
`Username` VARCHAR(65) NOT NULL , 
`Password` VARCHAR(32) NOT NULL , 
`EmailAddress` VARCHAR(255) NOT NULL 
); 
 

Далее создаем новый файл base.php  и вставим в него следующий код .

<?php 
session_start(); 
 
$dbhost = "localhost"; // Имя хоста где расположен сервер mysql обычно localhost
$dbname = "database"; // Имя базы данных 
$dbuser = "username"; // Имя пользователя базы данных 
$dbpass = "password"; // Пароль для доступа к базе данных
 
mysql_connect($dbhost, $dbuser, $dbpass) or die("MySQL Error: " . mysql_error()); 
mysql_select_db($dbname) or die("MySQL Error: " . mysql_error()); 
?>
 

Этот файл отвечает за подключение к базе данных и будет выводиться на всех страницах.  Рассмотрим строки кода более подробно

session_start();

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

mysql_connect($dbhost, $dbuser, $dbpass) or die("MySQL Error: " . mysql_error());

 

mysql_select_db($dbname) or die("MySQL Error: " . mysql_error());

Каждая из этих функций выполняет отдельные, но связанные задачи.

Функция mysql_connect выполняет соединение  с сервером баз данных MySQL в качестве параметров в скобках указаны переменные которым присвоены соответствующие значения Хост, Имя  пользователя, Пароль  если данные не верные выдаст сообщение об ошибке

Функция  mysql_select_db выбирает базу данных имя которой мы присвоили переменной  $dbname, в случае если не удаётся найти базу выводит сообщение об ошибке

Шаг-2  Создаем файл index.php

Немало важным элементом на нашей странице – является первая строка PHP; эта строка будет включать файл, который мы создали выше (base.php), и по существу позволим нам обращаться к чему-нибудь от того файла в нашем текущем файле. Мы сделаем это со следующей строкой кода PHP. Создайте файл, названный index.php, и поместите этот код наверху.

Создайте новый файл index.php и вставите в самое начало следующий код

<?php include "base.php"; ?>

Эта строка будет подключать фаил который мы создали выше (base.php), что позволит нам обращаться к коду того файла в нашем текущем файле.

Это осуществляет функция include()

Теперь мы займёмся созданием внешнего интерфейса, где пользователь будет вводить свои данные для регистрации, а если он уже зарегистрирован дать возможность  изменения данных. Так как этот урок нацелен на PHP мы не будем разбираться с кодом HTML/CSS внешний вид сделаем потом когда мы создадим нашу таблицу стилей CSS, а  пока просто вставим этот код после предыдущей строки.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title> Система управления пользователями <title> 
<link rel="stylesheet" href="/style.css" type="text/css" /> 
</head> 
<body> 
<div id="main">Сюда вставим php код </div>
 

Теперь прежде чем пристать php программу разберём принцип её работы, что в той или иной ситуации  надо выводит на экран:

  1. Если пользователь  уже вошёл то показываем   страницу с различными опциями которые были скрыты до регистрации.
  2. Если пользователь еще не вошёл но прошёл регистрацию то показываем форму для ввода логина и пароля.
  3. Если 1 и 2 пункт  не выполнен выводим  форму для регистрации.

Выглядеть это будет так:

<?php 
if(!empty($_SESSION['LoggedIn']) && !empty($_SESSION['Username'])) 
{ 
 // Здесь выводиться скрытые опции 
} 
elseif(!empty($_POST['username']) && !empty($_POST['password'])) 
{ 
 // Выводим форму для входа 
} 
else 
{ 
 // Выводим форму для регистрации 
} 
?> 
 

Когда пользователь проходит авторизацию на нашем сайте, информация сохраняется в сессии  получить к ней доступ мы можем через глобальный массив $ _SESSION.  С помощью функции empty и знака !  в условии if мы проверяем имеет ли переменная значение, если переменная имеет значение выполняем код между фигурных скобок .

В следующей строке всё работает тем же образом, только на этот раз с помощью $ _POST глобального массива. Этот массив содержит какие либо данные переданные через форму  входа которую мы создадим позже. Последняя условие  else выполниться в том случае если предыдущие условия не удовлетворяются.

Теперь когда мы понимаем логику давайте вставим следующий код в файл  index.php  между тегами <div>

<?php 
if(!empty($_SESSION['LoggedIn']) && !empty($_SESSION['Username'])) 
{ 
 ?> 
 
 <h1>Пользовательская зона</h1> 
 <p Спасибо что вошли! Вы <b><?=$_SESSION['Username']?></b> и Ваш адрес электронной почты <b><?=$_SESSION['EmailAddress']?></b>.</p> 
 
 <?php 
} 
elseif(!empty($_POST['username']) && !empty($_POST['password'])) 
{ 
 $username = mysql_real_escape_string($_POST['username']); 
 $password = md5(mysql_real_escape_string($_POST['password'])); 
 
 $checklogin = mysql_query("SELECT * FROM users WHERE Username = '".$username."' AND Password = '".$password."'"); 
 
 if(mysql_num_rows($checklogin) == 1) 
 { 
 $row = mysql_fetch_array($checklogin); 
 $email = $row['EmailAddress']; 
 
 $_SESSION['Username'] = $username; 
 $_SESSION['EmailAddress'] = $email; 
 $_SESSION['LoggedIn'] = 1; 
 
 echo "<h1>Вы успешно вошли</h1>"; 
 echo "<p>Сейчас вы будете переадресованы в ваш профиль .</p>"; 
 echo "<meta http-equiv='refresh' content='=2;index.php' />"; 
 } 
 else 
 { 
 echo "<h1>Ошибка</h1>"; 
 echo "<p>Ваша учётная запись не найдена или вы неправильно ввели логин или пароль. <a href=\"index.php\">Попробовать снова </a>.</p>"; 
 } 
} 
else 
{ 
 ?> 
 
 <h1>Вход</h1> 
 
 <p>Хорошо что зашли <a href="/register.php">Регистрация </a>.</p> 
 
 <form method="post" action="index.php" name="loginform" id="loginform"> 
 <fieldset> 
 <label for="username">Логин:</label><input type="text" name="username" id="username" /><br /> 
 <label for="password">Пароль:</label><input type="password" name="password" id="password" /><br /> 
 <input type="submit" name="login" id="login" value="Войти" /> 
 </fieldset> 
 </form> 
 
 <?php 
} 
?> 
 

Разберём некоторые части данного кода

$username = mysql_real_escape_string($_POST['username']);     $password = md5(mysql_real_escape_string($_POST['password'])); 


 

 

В этом участке кода две функции, это mysql_real_escape_string которая экранирует специальные символы в строках для использования в базе данных тем самым обезопасит вас от нехороших людей, и md5 эта функция шифрует всё что передано ей в качестве параметра, в данном случае это пароль в глобальном массиве $_POST. Всё результаты работы функций мы присваиваем переменным $username, $password.

$checklogin = mysql_query("SELECT * FROM users WHERE Username = '".$username."' AND Password = '".$password."'"); 
 
 if(mysql_num_rows($checklogin) == 1) 
 { 
 $row = mysql_fetch_array($checklogin); 
 $email = $row['EmailAddress']; 
 
 $_SESSION['Username'] = $username; 
 $_SESSION['EmailAddress'] = $email; 
 $_SESSION['LoggedIn'] = 1;
 

В этом участке кода нам надо проверить существует ли такой пользователь, для этого направляем запрос в базу данных, вытащить все поля из таблицы users где поля Username и Password равны переменным $username и $password. Результат запроса заносим в переменную $checklogin далее в условии if функция mysql_num_rows считает количество строк в запросе к базе и если равно 1 то есть пользователь найден выполняем код в фигурных скобках, функция mysql_fetch_array преобразовывает результат запроса из $checklogin в ассоциативный массив, присваиваеваем значение поля EmailAddress переменной $email для использовать в дальнейшем.

Заносим логин и email в текущею сессию после этого пользователь перенаправляется в свою учётную запись.

Шаг-3

Теперь надо сделать страницу где пользователи будут регистрироваться .

Создаем файл register.php и скопируйте в него следующий код:

<?php include "base.php"; ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
 
<title> Система управления пользователями - Регистрацияtitle> 
<link rel="stylesheet" href="/style.css" type="text/css" /> 
</head> 
<body> 
<div id="main"> 
<?php 
if(!empty($_POST['username']) && !empty($_POST['password'])) 
{ 
 $username = mysql_real_escape_string($_POST['username']); 
 $password = md5(mysql_real_escape_string($_POST['password'])); 
 $email = mysql_real_escape_string($_POST['email']); 
 
 $checkusername = mysql_query("SELECT * FROM users WHERE Username = '".$username."'"); 
 
 if(mysql_num_rows($checkusername) == 1) 
 { 
 echo "<h1>Ошибка</h1>"; 
 echo "<p>Такой логин уже занят p>"; 
 } 
 else 
 { 
 $registerquery = mysql_query("INSERT INTO users (Username, Password, EmailAddress) VALUES('".$username."', '".$password."', '".$email."')"); 
 if($registerquery) 
 { 
 echo "<h1>Отлично</h1>"; 
 echo "<p> Ваша учетная запись была успешно создана. Вы можете<a href=\"index.php\">Воити</a>.</p>"; 
 } 
 else 
 { 
 echo "<h1>Ошибка</h1>"; 
 echo "<p>Попробуйте повторить регистрацию снова.</p>"; 
 } 
 } 
} 
else 
{ 
 ?> 
 
 <h1>Регистрация</h1> 
 
 
 
 <form method="post" action="register.php" name="registerform" id="registerform"> 
 <fieldset> 
 <label for="username">Логин:</label><input type="text" name="username" id="username" /><br /> 
 <label for="password">Пароль:</label><input type="password" name="password" id="password" /><br /> 
 <label for="email">Email:</label><input type="text" name="email" id="email" /><br /> 
 <input type="submit" name="register" id="register" value="Регистрация" /> 
 </fieldset> 
 </form> 
 
 <?php 
} 
?> 
 
</div> 
</body> 
</html> 
 

В этом коде есть немного нового, запись в базу данных

$registerquery = mysql_query("INSERT INTO users (Username, Password, EmailAddress) VALUES('".$username."', '".$password."', '".$email."')");

Это такой же запрос к базе данных который был раньше только теперь мы не получаем информацию , а записываем командой INSERT, первым делом надо указать в какие поля будет вноситься информация а в область VALUES информация которая будет записана в нашем случае это переменные со значением которые были переданы пользователем. Обратите особое внимание правила формирования запросов.

Шаг-4 Завершение

Для того чтобы пользователь мог выйти создайте файл logout.php и скопируйте в него код:

<?php include "base.php; $_SESSION = array(); session_destroy(); ?>  <meta http-equiv="refresh" content="0;index.php" 
  

 

В результате этого кода происходит сброс глобального массива $_SESSION и разрушение сессии, не забудьте в опция пользователя поставить ссылку на этот фаил.

И наконец придадим стиль всему вышеописанному, создайте файл style.css и поместите туда следующий ниже код.

* { 
 margin: 0; 
 padding: 0; 
} 
body { 
 font-family: Trebuchet MS; 
} 
a { 
 color: #000; 
} 
a:hover, a:active, a:visited { 
 text-decoration: none; 
} 
#main { 
 width: 780px; 
 margin: 0 auto; 
 margin-top: 50px; 
 padding: 10px; 
 border: 1px solid #CCC; 
 background-color: #EEE; 
} 
form fieldset { border: 0; } 
form fieldset p br { clear: left; } 
label { 
 margin-top: 5px; 
 display: block; 
 width: 100px; 
 padding: 0; 
 float: left; 
} 
input { 
 font-family: Trebuchet MS; 
 border: 1px solid #CCC; 
 margin-bottom: 5px; 
 background-color: #FFF; 
 padding: 2px; 
} 
input:hover { 
 border: 1px solid #222; 
 background-color: #EEE; 
} 
 

Вот в принципе и всё конечно приведенный в этом уроке пример далёк от совершенства но он и был рассчитан для начинающих чтобы дать понятие основ.

 

Разберём некоторые части данного кода

$username = mysql_real_escape_string($_POST['username']);

$password = md5(mysql_real_escape_string($_POST['password']));

В этом участке кода две функции, это mysql_real_escape_string которая экранирует специальные символы в строках для использования в базе данных тем самым обезопасит вас от нехороших людей, и md5 эта функция шифрует всё что передано ей в качестве параметра, в данном случае это пароль в глобальном массиве $_POST. Всё результаты работы функций мы присваиваем переменным $username, $password.


  1. Комментарии (1)

  2. Add Yours

Комментарии (1)

There are no comments posted here yet

Оставьте свой комментарий

Posting comment as a guest. Sign up or login to your account.
Вложения (0 / 3)
Share Your Location

Векторная графика

плашки-для-рекламных-текстов Набор ярких плашек для рекламных текстов в векторном формате, которые значительно выделят ваш текст на общем фоне. Формат файлов: AI / EPS /...
start-up-rockets-–-ракеты-в-векторе Набор векторных изображений, разного вида летящих ракет. Можно использовать при создании анимации и рекламных баннеров. Формат файлов:...
pop-art-man-векторные-мужчин-в-стиле-поп-арт Набор изображений в векторном формате, яркие иллюстрации мужчин в модном стиле поп арт, отлично подойдёт при создании рекламных баннеров. Формат...

Растовая графика

атлетика-и-бодибилдинг-–-фото-клипарт Набор из 32 изображений высокого качества на тему атлетики и бодибилдинга. Отлично подойдут для рекламных флаеров, баннеров и слайдеров на сайтах...
интернет-технологии,компьютер,гаджеты-–-фото-клипарт Набор из 25 изображений высокого качества, различные интернет технологии, компьютеры, гаджеты. Отлично подойдет для слайд-шоу. Размер 4800 на 3200 px....
бизнес-леди-–-набор-фото-клипарта Набор из 15 изображений высокого качества с красивой блондинкой, бизнес-леди. Эти изображения отлично подойдут для использования в презентациях,...