Содержание страницы
домикГлавная / Скрипты java и php / Скрипт регистрации и авторизации
Регистрация и авторизацияПредлагаю вашему вниманию очень простой и функциональный скрипт регистрации и авторизации на сайте, который состоит из 3-ёх файлах PHP с подключением 2-ух java скриптов, с помощью которых ошибки выводятся в самой форме без перезагрузки страницы.

Форма регистрации и авторизации имеет хорошую защиту от внедрения в неё каких-либо кодов и выводит автоматом системные сообщения пользователю.

Скрипт был успешно протестирован на версии PHP 5.3.3 и PHP 5.6.3.

Что умеет и имеет скрипт

  • Регистрировать новых пользователей;
  • Авторизовывать пользователей и записывать куки на определённый срок (нет необходимости каждый раз авторизовываться);
  • Показывать и скрывать определённую информацию для авторизованных и не авторизованных соответственно;
  • Имеет АДМИН ПАНЕЛЬ, где можно редактировать все данные и удалять пользователей.

Там же и DEMO Админ Панели

Установка скрипта регистрации и авторизации на сайте.

1 ШАГ.
Если вы используете скрипт регистрации и авторизации на локалке с помощью DENWER, то изменения в файлах для соединения с базой данных делать не нужно.
В противном случае откройте файлы: stayt.php, classes/Auth.class.php и adminka/connect.php, и в самом верху замените данные для связи с базой данных на свои.
2 ШАГ.
Переходим ( если используете DENWER ) по адресу:
http://localhost/Tools/phpmyadmin/
если на хостинге, то нажимаете Базу Данных, и создаёте новую базу с именем: registr и сравнение: utf8_general_ci.
Вы можете задать разумеется своё имя, но тогда замените его обязательно в файлах для соединения с базой (см. шаг 1).
3 ШАГ.
Нажмите на созданную базу registr и затем на верхнюю вкладку SQL и в появившееся окно для ввода вставьте этот код и нажмите ОК.
SQLCOPY
CREATE TABLE IF NOT EXISTS `my_users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) NOT NULL, `names` varchar(15) NOT NULL, `password` varchar(255) NOT NULL, `salt` varchar(100) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Всё! Переходите в браузере по своему адресу, пробуйте и экспериментируйте.

Админ Панель

После того, как вы сделали хоть одну регистрацию, можете перейти в АДМИНКУ.
Вход в АДМИН-ПАНЕЛЬ:

http://Ваш_сайт.ru/adminka/

Не забудьте запоролить эту папку для безопасности и можно так же переименовать её.
При открытие Админ Панели нажмите кнопку ПОИСК и вам отобразятся все зарегистрированные пользователи, где при нажатие на определённый номер ID, вам откроются данные пользователя для редактирования.

Можно так же быстро найти пользователя по его E-mail, для этого достаточно ввести в поле для ПОИСКа известную электронную почту и нажать на кнопку.
Кнопкой ДОБАВИТЬ не советую пользоваться, так как пользователь добавляется в систему без пароля. И не имею понятия зачем её вообще сделали.

На этом всё, что не получается или не понятно, - задавайте вопросы.

Попутно можете попробовать ГОТОВЫЙ САЙТ для продажи информации ( товаров ).

стрелка вниз Скачать скрипт регистрации и авторизации пользователей

Ссылка на файл: скачать архив
Дата публикации: 04.06.2018
Комментарии
Андрей
25 июня 2018 16:14
Андрей
Спасибо за рабочий скрипт регистрации и авторизации.
Подскажите пожалуйста, не разберусь, а как сделать скрытую информацию от неавторизованных пользователей?
И попутно, как на странице с регистрацией сделать так, чтобы форма от авторизованных пользователей была скрыта.
Спасибо)))
Admin
25 июня 2018 16:53
Admin
Да, вы просто до конца не разобрались, - там весь код налицо.
Чтобы скрыть информацию от неавторизованных лиц, а так же скрыть форму регистрации, либо показать другую информацию - применяется один и тот же код.
phpCOPY
<?php if (Auth\User::isAuthorized()): ?> // Здесь прописываете информацию для авторизованных пользователей <?php else: ?> // Здесь инфа для гостей, либо форма с регистрацией <?php endif; ?>
Андрей
25 июня 2018 23:12
Андрей
Круто, спасибо огромное, буду ковыряться дальше.
Наталья
27 июня 2018 10:03
Наталья
Скажите, я правильно понимаю, что index.html является шаблоном для всех последующих страниц?
И у вас на DEMO странице в Профиле присутствуют дополнительные поля, которых нет в шаблоне: IP адрес посетителя, дата регистрации, количество зарегистрированных и последний пользователь.
У вас другой скрипт регистрации используется или как понимать?
Заранее благодарна :)))
Admin
27 июня 2018 12:37
Admin
1. Да, совершенно правильно, страница index.html является шаблоном для всех последующих.
2. Нет, вы скачиваете тот же скрипт регистрации, что и на DEMO.

Дело в том, что дополнительные поля - это мои собственные доработки. Чтобы данные поля отображались у вас на странице, необходимо сделать записи в БД и прописать код в 3-ёх файлах.
Наталья
27 июня 2018 22:45
Наталья
Скажите, а можно использовать на главной странице, да и на всех последующих сразу две формы: Авторизация и Регистрация?
Я попробовала и у меня не получается: нажимаешь на Авторизация, а скрипт проверяет поля и у формы Регистрация и идут соответственно ошибки и ничего не отправляется.
Возможно так реализовать? Спасибо!
Admin
28 июня 2018 08:08
Admin
Да, я пробовал для удобства пользователей совместить сразу две формы Авторизация и Регистрация на одной странице.
У вас не получилось из-за того, что обе формы обрабатывает один и тот же обработчик PHP.

Я сделал так:
Для неавторизованных разумеется: прописал форму Авторизации и под ней поставил ссылку на Регистрацию, при клике на которую, открывалась форма уже в модальном окне.
И получается, что вроде обе формы на одной странице, но каждая работает независимо.
Сергей
5 июля 2018 22:41
Сергей
Доброго времени!
Применил ваш вышеописанный способ для объединения форм на одной странице, всё изумительно, но единственное НО.
При успешной регистрации пользователя перекидывает на главную страницу, а хотелось бы чтобы он оставался на той же, где и находился.

Согласитесь, так не очень удобно! Как это можно сделать? Заранее, благодарен!
Admin
6 июля 2018 10:19
Admin
Совершенно с вами согласен!
Изначально по шаблону форма регистрации находится только на странице registr.html и соответственно для неё и предусмотрен редирект на главную страницу.

А для вашего случая, чтобы пользователь после успешной регистрации оставался на той же странице, нужно сделать одну поправку в файле ajax.php
phpCOPY
// Найдите в самом низу этот код <?php $this->setResponse("redirect", "/"); $this->status = "ok"; ?> // Замените на этот <?php $this->setResponse("redirect", " "); $this->status = "ok"; ?>
Alexandr
18 сентября 2018 05:36
Alexandr
Добрый! А не подскажете как при регистрации добавить галочку с правилами ознакомлен?
Извините за наглость.
Admin
18 сентября 2018 09:02
Admin
На странице с правилами при регистрации, необходимо добавить форму с input ( checkbox ) с привязкой скрипта.
В инете много подобных примеров, и вот один из них.
Александр
18 сентября 2018 17:51
Александр
Спасибо! Прям в тему и все работает. :)))
dimane.lt
16 октября 2018 23:01
dimane.lt
проблема в след, при загрузке вашего .htaccess все странички пытаеться скачать
Admin
17 октября 2018 00:14
Admin
Для каждого хостинга свой код нужно прописывать для файла .htaccess
Я в оригинале скрипта регистрации прописал самый более распространённый...
Спрашивайте у тех.поддержки своего хостера.
Наталья
5 января 2019 18:27
Наталья
Всё работает замечательно! теперь бы понять как вы добавили дополнительные поля: IP адрес посетителя, дата регистрации, количество зарегистрированных и последний пользователь ( их в шаблоне нет ).
откройте мне секрет пожалуйста ::))
Admin
5 января 2019 21:16
Admin
Да нет никакого секрета!
1. Добавьте в таблицу БД 2 поля: ips - тип varchar, и vremya тип date
( нет разницы в каком порядке эти поля будут прописаны )

2. В форме регистрации в самом конце перед кнопкой Регистрация, вставьте этот код:
phpCOPY
<input name="ips" type="hidden" value="<?php echo $_SERVER['REMOTE_ADDR'];?>"> <input name="vremya" type="hidden" value="<?php echo $vremya=date('Y-m-d');?>">
3. Открываем файл: classes/Auth.class.php
phpCOPY
/* Найти */ public function create($username, $names, $password) { /* Заменить на */ public function create($username, $names, $ips, $vremya, $password) { /* Найти */ $query = "insert into my_users (username, names, password, salt) values (:username, :names, :password, :salt)"; /* Заменить на */ $query = "insert into avd_users (username, names, ips, vremya, password, salt) values (:username, :names, :ips, :vremya, :password, :salt)";
4. Открываем файл: ajax.php
phpCOPY
/* Найти */ $username = $this->getRequestParam("username"); $names = $this->getRequestParam("names"); $password1 = $this->getRequestParam("password1"); $password2 = $this->getRequestParam("password2"); /* Заменить на */ $ips = $_SERVER['REMOTE_ADDR']; $mdata = date('Y-m-d'); $username = $this->getRequestParam("username"); $names = $this->getRequestParam("names"); $ips = $this->getRequestParam("ips"); $vremya = $this->getRequestParam("vremya"); $password1 = $this->getRequestParam("password1"); $password2 = $this->getRequestParam("password2"); /* Найти */ $new_user_id = $user->create($username, $names, $password1); /* Заменить на */ $new_user_id = $user->create($username, $names, $ips, $vremya, $password1);
5. Добавляем отображение полей на странице index.html:
htmlCOPY
/* Найти */ <p class="bolden">Ваши данные:</p> <p class="sbk">Ваше имя:<br><span class='name'><?php echo $arr['names'];?></span></p> <p class="sbk">Ваш e-mail:<br><span class='name'><?php echo $arr['username'];?></span></p> /* Заменить на */ <p class="bolden">Ваши данные:</p><br> <p class="sbk">Ваше имя:<br><span class='name'><?php echo $arr['names'];?></span></p> <p class="sbk">Ваш e-mail:<br><span class='name'><?php echo $arr['username'];?></span></p> <p class="sbk">Ваш IP:<br><span class='name'><?php echo $arr['ips'];?></span></p> <p class="sbk">Регистрация:<br><span class='name'><?php echo $arr['vremya'];?></span></p>
6. Выводим статистику на странице index.html ( в любое место ):
phpCOPY
<?php require_once "stayt.php"; $res = mysql_query('SELECT COUNT( * ) AS `username`, `ID` FROM `my_users`'); if($res) $row = mysql_fetch_array($res, MYSQL_NUM); $kolvo_userov = !empty($row[0]) ? $row[0] : 0; echo "<p class='sbk'>Зарегистрировано:<br><span class='name'>".$kolvo_userov."</span> человек(а)</p>"; $result = mysql_query("SELECT `names` FROM `my_users` ORDER BY id DESC LIMIT 1"); $rows = mysql_fetch_array($result); $id = $rows[0]; echo "<p class='sbk'>Последний: <span class='name'>".$id."</span></p>"; ?>

Читать полностью

Олег
9 января 2019 11:42
Олег
Я в сайтах только начинаю разбираться ( новичок ) и поэтому прошу помощи:
Как добавить поле в Базу Данных, - это пока проблема.
Подскажите, если не трудно. Спасибо))
Admin
9 января 2019 16:59
Admin
Не трудно! Заходите в БД и нажимаете слевой стороны на таблицу my_users, далее в верхнем меню жмите Структура и внизу появится дополнение полей.
Смотрите рисунок.
saha
16 января 2019 18:07
saha
Добрый вечер!
изменил скрипт, ввел дополнительные поля:
IP адрес посетителя, дата регистрации, количество зарегистрированных и последний пользователь.
все выводит, но перестал регистрировать пишет, произошла ошибка при отправки формы.
Admin
16 января 2019 23:33
Admin
Но у вас же до этого с регистрацией всё нормально было!
Значит где-то допустили ошибочку...
Оставьте до завтра и со свежей головой внимательно переделайте и всё получится.
Александр
21 января 2019 12:53
Александр
В админке все отображается нормально, а вот в индексном файле русские буквы отображаются знаками вопроса.
Попробовал указать для скрипта регистрации кодировку в файле Auth.class.php - но попытки результата не дают. Не подскажите в чём может быть проблема?
Admin
21 января 2019 14:40
Admin
Тут определенно сказать трудно, нужно смотреть.
Посмотрите записи в самой БД ( не в Админке ), - запись осуществляется русскими буквами или там уже иероглифы.
Если там всё нормально, то уже ковыряйте кодировку самой страницы.

Я всегда прописываю в файл .htaccess короткую запись такого вида:
AddDefaultCharset UTF-8
Прпишите у себя такую запись, и подобные проблемы в скрипте регистрации сразу пропадут, при условии конечно, что кодировка самих страниц соответсвует UTF-8.
Советую всем почитать: как правильно установить кодировку
Михаил
26 марта 2019 16:50
Михаил
Добрый день!
Подскажите, пожалуйста, новичку как сделать ( или нет ли готовых решений ) регистрацию с разрешением.
Т.е. чтобы после регистрации уходило письмо администратору сайта, а он уже разрешал или запрещал регистрацию.
Admin
26 марта 2019 17:05
Admin
Здравствуйте, Михаил!
Такое ощущение, что у вас чуток путаница в голове, либо неопределённость, либо непонимание...
Регистрация для пользователей либо открыта, либо закрыта ( например вход только по инвайтам ), - других вариантов здесь нет.

Как вы собираетесь по пользователю определить, что он не подходит, и как вы собираетесь его анулировать: по IP, где можно закрыть свой сайт для всего региона, либо по e-mail, так их создать кучу не проблема.
Михаил
26 марта 2019 20:24
Михаил
Спасибо за быстрый ответ!
Совсем новичок. Сейчас разбираюсь потихоньку в Вашей форме регистрации. Возможно, да и наверняка, что-то путаю.
Но вижу такую регистрацию, как хотел, сделанную в конструкторе wix. Администратору приходит письмо с электронным адресом и именем пользователя. Администратор может разрешить или не разрешить регистрацию.
Хочется понять, как это реализовать не в конструкторе.
Admin
26 марта 2019 20:39
Admin
Вам сначала нужно для себя уяснить - а оно вам надо?
Лишний геморрой и потеря посетителей, - вот что вы получите с этого однозначно.
Одно дело перед регистрацией получать ответное письмо с подтверждением e-mail адреса, и совершенно другое - тратить время на безсмыслицу.
Это ваше дело, и у меня подобных дополнений к скрипту регистрации нет.
Роман
06 апреля 2019 15:00
Роман
Почему у меня вместо работы скрипта, что-то начинается скачиваться?
Все сделал как сказано, захожу на свой домен, а у меня открывается окно и хочет сохранить какой-то файл.
Admin
06 апреля 2019 15:59
Admin
Неправильная запись в файле .htaccess
Почитайте: как правильно вывести PHP на HTML странице.
Дмитрий
15 апреля 2019 02:29
Дмитрий
Здравствуйте! Отличная регистрационка!
Однако, у меня возникла небольшая проблема. Не особо разбираюсь в бэкэнде, столкнулся со следующей проблемой.
У меня есть html файл с сайтом ( чистый фронтенд ). В шапке, на главной странице сайта две кнопки Войти и Регистрация, вроде как ссылками направил всё к вашим файлам с регистрацией и авторизацией.

Не могли бы подсказать, как сделать так, чтобы при авторизации автор попадал на тот самый index.html ( не тот который в архиве, а личный, в каком месте изменить код или вообще по другому делается?).

И еще, если вам не сложно, хотел бы сразу спросить, как сделать так, чтобы при авторизации и переходе на главную страницу, кнопки войти и регистрация в шапке исчезли, а вместо них появился тот самый текст Добро пожаловать ... имя пользователя ...?
Заранее, огромнейшее спасибо, выручили! П.с. если что-то не понятно изъяснил, извиняюсь, 4:30 ночи, жуть как рубит, а проект доделать хочется.

Читать полностью

Admin
15 апреля 2019 08:43
Admin
Дмитрий, доброе утро!
Все ваши проблемы рассмотрены в комментариях: и как показывать инфу авторизованным и не авторизованным посетителям, и как сделать переадресацию после авторизации.
Показать ещё
Дмитрий
15 апреля 2019 21:32
Дмитрий
Большое спасибо за ответ.
Ещё один вопросик: а что находится в salt? Повторенный пароль?
Admin
15 апреля 2019 21:57
Admin
Нет, salt - это сгенерированная приставка к паролю, чтобы не было возможности его взломать.
Богдан
06 мая 2019 22:14
Богдан
а как сделать подтверждение почты по письму
Admin
06 мая 2019 22:39
Admin
В этом скрипте при регистрации подтверждение почты не предусмотрено.
Нужно обращаться к программистам за данным дополнением, либо использовать движок CMS, где эта функция уже встроена.
Алина
07 мая 2019 22:43
Алина
Здравствуйте!
А если использовать openserver то, что и как нужно поменять чтобы работало можете подсказать пожалуйста
Admin
07 мая 2019 22:56
Admin
Добрый вечер!
Я не ставил скрипт регистрации на локальном компьютере, поэтому не могу вам точно сказать.
Попробуйте поиграться с версиями PHP и MySQL.
Сергей
09 мая 2019 21:13
Сергей
Добрый вечер, планируете добавить восстановление пароля к скрипту регистрации?
а еще отправку письма на емейл, для верификации?
если эти вещи будут, будет просто суперски! :)
Admin
09 мая 2019 22:11
Admin
Добрый!
Скорее всего нет, у меня другие более насущные проблемы и планы.
Алексей
29 мая 2019 23:40
Алексей
Жаль, что скрипт регистрации под версией PHP 7.2 выдает ошибку:
Fatal error: Uncaught Error: Call to undefined function mysql_connect() in
Admin
30 мая 2019 00:11
Admin
Это ошибка связана с соединением БД.
То ли для вашей версии PHP нужен другой код для соединения, то ли вы сами допустили там ошибку.
Сергей
06 июня 2019 21:05
Сергей
Спасибо за толковую регистрационку. А теперь вопрос.
При открытии файлов index.html и registr.html русский текст представлен "кракозяблами".
Поменял кодировку на UTF-8-BOM. Ситуация изменилась - русский текст отображается правильно, но вверху висит надпись:
Warning: session_start() [function.session-start]: ....
ну вы поняли.
Перелопатил интернет, проделал следующее:
1. На кодировку UTF-8 не возвращался, т.к. ошибка пропадает, но появляются кракозяблы;
2. команда session_start(); есть в трёх файлах index.html, registr.html и ajax.php
Убрал session_start(); из первых двух файлов,- ошибка пропала, но и форма перестала работать.
3. Вернул session_start(); на место.
Теперь все работает, но висит ошибка. Может посоветуете что? Спасибо.
Admin
06 июня 2019 22:56
Admin
session_start(); - прописывать обязательно!
Кодировку использовать только UTF-8 без BOM.

Старайтесь всегда идти логическим путём: запустили скрипт регистрации, --- всё отлично работает, только вместо русских букв кракозяблы.
Сменили кодировку и появились ошибки, --- о чём говорит, --- не правильно применили новую кодировку.
Сергей
07 июня 2019 21:08
Сергей
Извините забыл указать, что проблема возникает в скрипте регистрации, когда запущен локальный сервер.
Может быть проблема в сервере? У меня стоит Денвер3.
Кодировка сервера: UTF-8 Unicode (utf8).
Сравнение в таблице: utf8_general_ci.
Вроде бы все должно согласовываться, а браузер выдает абракадабру. Где копать?
Admin
07 июня 2019 21:34
Admin
Здесь одно из двух (нужно смотреть): либо проблема с кодировкой ( помимо указания кодировки, нужно файл сохранять в этой же кодировке, в комментариях выше указана ссылка на подробное объяснение ), либо проблема действительно связана с локальным сервером.
Я сам всё испытываю на хостинге, поэтому конкретно ответить про локальный сервер не смогу. Но люди уже испытывали подобную проблему именно на лок. кампьютере.
Сергей
08 июня 2019 00:47
Сергей
Здравствуйте!
Проблема с кракозяблами в скрипте регистрации и авторизации решена.
На внешнем хостинге все работает прекрасно. Проблема скорее всего на локальном сервере. Буду переустанавливать Денвер.
Спасибо за поддержку. Удачи!
Павел
17 июня 2019 19:37
Павел
Здравствуйте, как сделать в скрипте регистрации, чтобы логаут ( выход ) происходил при закрытии страницы пользователем?
Admin
17 июня 2019 20:21
Admin
Подумайте, прежде чем искать решение для данной проблемы!
Пользователь может случайно закрыть страницу ( часто бывает ), пользователь может вернуться на сайт через некоторое время.
Вы думаете кому-то понравиться вводить регистрационные данные каждый божий раз?
---
Можно сделать через КУКИ в скрипте регистрации ( установить хранение данных 1 день ), а можно прикрутить JS скрипт.
Готовых решений у меня нет.
Артур
17 июня 2019 22:08
Артур
В скрипте регистрации при изменении в файле main.css ничего не происходит,
т.е. хочу добавить h2 - он не применяется.
При изменении, например, цвета h1 так же ничего.
Какие могут быть проблемы?
Admin
17 июня 2019 22:34
Admin
Обязательно почитайте: приоритеты в css
и проблему свою решите быстро.
Ильдар
18 июля 2019 21:27
Ильдар
Здравствуйте! я скачал скрипт регистрации, выдает ошибки и работает некоректно.
Не нужны ли сторонние программы или все такое ничего не надо менять в файлах кроме баз данных?
Admin
18 июля 2019 23:18
Admin
Добрый вечер!
Нет, программного обеспечения для скрипта больше никакого не требуется.
Только замена в БД,
Пользователь
13 августа 2019 20:31
Пользователь
Извините, а как поместить эту регистрацию на свой локальный сайт?
Например: C:/ProgrammFiles.html и т.д.
Admin
13 августа 2019 21:01
Admin
На локальном компьютере работу скрипта регистрации и авторизации можно проверить с помощью ПО, например Денвер и ему подобных. Скрипт написан на PHP языке и без этого софта работать не будет.
Добавить комментарий
Комментарий не отправлен!
Комментарий успешно отправлен!
После модерации он будет опубликован!
Имя - только русские буквы!
Это обязательное поле!