Готовая форма php mysql

Форма регистрации на PHP с использованием базы данных MySQL

Наша задача состоит в том, чтобы создать форму регистрации и обработчик на языке PHP, в которой, если пользователь вводит данные, То данные HTML-формы сохраняются в нашу базу данных MySQL.

Подключаемся к БД

  • Для начала создадим нашу базу данных MySQL и таблицу в соответствии с нашими требованиями.
  • Мы подключаем нашу базу данных MySQL с помощью функции PHP mysqli_connect(), которая принимает четыре аргумента, то есть наши «имя сервера», «имя пользователя», «пароль» и «базу данных».

Примечание: здесь не используется код CSS, поскольку мы используем Bootstrap в коде PHP ниже. Вы можете применить CSS стили в своих приложениях, если захотите.

Для соединения с БД создадим PHP файл «dbconnect.php», а имя для нашей базы базы данных выберем — «testdatabase».

Таблица «users » создается с помощью инструмента MySQL phpMyAdmin, как показано ниже.

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

теперь, когда мы успешно подключились к нашей базе данных, пора создать форму регистрации для пользователей. Следующий код описывает нашу форму регистрации. Используемое имя таблицы базы данных MySql — «users».

 > else < $showError = "Passwords do not match"; >> if($num>0) < $exists="Username not available"; >>//end if ?>          Success! Your account is now created and you can login.  
'; > if($showError) < echo '
Error! '. $showError.'
'; > if($exists) < echo '
Error! '. $exists.'
'; > ?>

Username
Password
Confirm Password Make sure to type the same password

Смотрим результат

  • Форма регистрации:
  • После успешного входа пользователя:
  • После неверного входа пользователя:

Источник

Готовая классная контактная форма на PHP\MySQL + jQuery

В этой короткой заметке я поделюсь с Вами отличной контактной формой, которую можно за несколько минут установить на любой сайт.

Данная форма использует технологии PHP\MySQL в связке с jQuery. Обычно контактные формы после отправки доставляют письма на почту владельцу. Данная же форма, кроме своей прямой обязанности, также сохраняет все в базу данных. Таким образом можно легко отслеживать все письма.

Читайте также:  PHP File Upload Example - Tutsmake.com

Таблица для хранения писем имеет следующий вид:

CREATE TABLE CONTACT( pk_contact INT UNSIGNED NOT NULL auto_increment, name VARCHAR(120) NOT NULL, email VARCHAR(120) NOT NULL, website VARCHAR(120) NOT NULL DEFAULT "", message VARCHAR(300) NOT NULL, added_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, primary key(pk_contact) )type=innodb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

Мы будем вносить в БД имя, емейл, вебсайт (по желанию), сообщение и дату отправки. Можете легко изменить ограничения полей для своих потребностей, но не забудьте их также изменить в PHP файлах.

Мы используем jQuery для фронт-енда формы и AJAX для ее отправки. Все проверки данных производятся на стороне сервера, и пользователь будет проинформирован в случае ошибки. Если сообщение добавлено в БД, тогда отправляется сообщение админу, которое оповещает его о новом письме.

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

Все что от Вас требуется при установке это: 1) выполнить SQL запрос из файла db_main_script.sql в созданной БД, 2) настроить связь с БД в файле config.php:

define('DB_SERVER', 'localhost'); define('DB_USER', 'root'); define('DB_PASS', ''); define('DB_NAME', 'ContactForm');

А также, в том же файле, не забудьте настроить адрес почтового ящика и УРЛ сайта:

define('EMAIL_TO' , 'codrops@gmail.com'); /* Ваш email */ define('EMAIL_FROM_NAME' , 'codrops'); /* имя - от кого пришло письмо */ define('EMAIL_FROM_ADDR' , 'www.tympanus.net'); /* УРЛ от кого пришло */ define('MESSAGE_SUBJECT' , 'New Message From Contact Form'); /* тема сообщения */ define('SEND_EMAIL' , true); /* если true, email сообщает админу о новом сообщении */

Для всех читателей — задание на дом 🙂 Попробуйте создать админку для удобного просмотра всех сообщений, которые хранятся в БД. Таким образом Вам не надо будет каждый раз заходить в phpMyAdmin для просмотра сообщений, при условии, что под рукой не будет доступа в Ваш почтовый ящик (что, конечно, маловероятно :)). Но все же, я думаю, что для начинающих программистов это будет интересный вызов!

Всем удачи! До следующих статей и уроков!

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: www.tympanus.com
Перевел: Максим Шкурупий
Урок создан: 19 Марта 2010
Просмотров: 47617
Правила перепечатки

5 последних уроков рубрики «Разное»

Как выбрать хороший хостинг для своего сайта?

Выбрать хороший хостинг для своего сайта достаточно сложная задача. Особенно сейчас, когда на рынке услуг хостинга действует несколько сотен игроков с очень привлекательными предложениями. Хорошим вариантом является лидер рейтинга Хостинг Ниндзя — Макхост.

Читайте также:  Javascript деление целых чисел

Как разместить свой сайт на хостинге? Правильно выбранный хороший хостинг — это будущее Ваших сайтов

Проект готов, Все проверено на локальном сервере OpenServer и можно переносить сайт на хостинг. Вот только какую компанию выбрать? Предлагаю рассмотреть хостинг fornex.com. Отличное место для твоего проекта с перспективами бурного роста.

Разработка веб-сайтов с помощью онлайн платформы Wrike

Создание вебсайта — процесс трудоёмкий, требующий слаженного взаимодействия между заказчиком и исполнителем, а также между всеми членами коллектива, вовлечёнными в проект. И в этом очень хорошее подспорье окажет онлайн платформа Wrike.

Источник

Безопасный метод авторизации на PHP

Давайте посмотрим вокруг: форумы, интернет магазины, гостевые книги и т.д. используют регистрацию и последующую авторизацию пользователей. Можно даже сказать, что это почти необходимая функция каждого сайта (только если это не домашняя страничка Васи Пупкина или не визитная карточка, какой-нибудь небольшой компании). Сегодня я хочу поделиться со всеми новичками информацией, о том, как лучше это все реализовать.

Модель авторизации:

Клиент
Сервер MySQL

Таблица users
user_id (int(11))
user_login (Varchar(30))
user_password (varchar(32))
user_hash (varchar(32))
user_ip (int(10)) по умолчанию 0

При регистрации в базу данных записывается логин пользователя и пароль(в двойном md5 шифровании).

При авторизации сравнивается логин и пароль, если они верны, то генерируется случайная строка, которая хешируется и добавляется в БД в строку user_hash. Также записывается IP-адрес пользователя (но это у нас будет опциональным, так как кто-то сидит через Proxy, а у кого-то IP динамический. тут уже пользователь сам будет выбирать безопасность или удобство). В куки пользователя мы записываем его уникальный индетификатор и сгенерированный hash.

Почему надо хранить в куках хеш случайно сгенерированной строки, а не хеш пароля?

  1. Из-за невнимательности программиста во всей системе могут быть дырки, воспользовавшись этими дырками, злоумышленик может вытащить хеш пароля из БД и подставить его в свои куки, тем самым получить доступ к закрытым данным. В нашем же случае двойной хеш пароля ничем не сможет помочь хакеру, так как расшифровать его он не сможет (теоретически это возможно, но на это он потратит не один месяц, а может быть, и год), а воспользоваться этим хешем ему негде, ведь у нас при авторизации свой уникальный хеш прикрепленный к IP пользователя.
  2. Если злоумышленик вытащит трояном у пользователя уникальный хеш, воспользоваться им он также не сможет (разве, если только пользователь решил пренебречь своей безопастностью и выключил привязку к IP при авторизации).
Читайте также:  Java arraylist get index by value

Реализация

Структура таблицы `users` в базе данных ‘testtable’
CREATE TABLE `users` ( `user_id` int(11) unsigned NOT NULL auto_increment, `user_login` varchar(30) NOT NULL, `user_password` varchar(32) NOT NULL, `user_hash` varchar(32) NOT NULL default '', `user_ip` int(10) unsigned NOT NULL default '0', PRIMARY KEY (`user_id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;

register.php

if(strlen($_POST[‘login’]) < 3 or strlen($_POST['login']) >30) < $err[] = "Логин должен быть не меньше 3-х символов и не больше 30"; >// проверяем, не сущестует ли пользователя с таким именем $query = mysqli_query($link, «SELECT user_id FROM users WHERE user_login='».mysqli_real_escape_string($link, $_POST[‘login’]).»‘»); if(mysqli_num_rows($query) > 0) < $err[] = "Пользователь с таким логином уже существует в базе данных"; >// Если нет ошибок, то добавляем в БД нового пользователя if(count($err) == 0) < $login = $_POST['login']; // Убераем лишние пробелы и делаем двойное хеширование $password = md5(md5(trim($_POST['password']))); mysqli_query($link,"INSERT INTO users SET user_login='".$login."', user_password='".$password."'"); header("Location: login.php"); exit(); >else < print "При регистрации произошли следующие ошибки:
«; foreach($err AS $error) < print $error."
«; > > > ?> Логин
Пароль
return $code; > // Соединямся с БД $link=mysqli_connect(«localhost», «mysql_user», «mysql_password», «testtable»); if(isset($_POST[‘submit’])) < // Вытаскиваем из БД запись, у которой логин равняеться введенному $query = mysqli_query($link,"SELECT user_id, user_password FROM users WHERE user_login='".mysqli_real_escape_string($link,$_POST['login'])."' LIMIT 1"); $data = mysqli_fetch_assoc($query); // Сравниваем пароли if($data['user_password'] === md5(md5($_POST['password']))) < // Генерируем случайное число и шифруем его $hash = md5(generateCode(10)); if(!empty($_POST['not_attach_ip'])) < // Если пользователя выбрал привязку к IP // Переводим IP в строку $insip = ", user_ip=INET_ATON('".$_SERVER['REMOTE_ADDR']."')"; >// Записываем в БД новый хеш авторизации и IP mysqli_query($link, «UPDATE users SET user_hash='».$hash.»‘ «.$insip.» WHERE user_id='».$data[‘user_id’].»‘»); // Ставим куки setcookie(«id», $data[‘user_id’], time()+60*60*24*30, «/»); setcookie(«hash», $hash, time()+60*60*24*30, «/», null, null, true); // httponly . // Переадресовываем браузер на страницу проверки нашего скрипта header(«Location: check.php»); exit(); > else < print "Вы ввели неправильный логин/пароль"; >> ?> Логин
Пароль
Не прикреплять к IP (небезопасно)
Логин
Пароль
Не прикреплять к IP(не безопасно)

Для защиты формы логина от перебора, можно использовать капчу или временную задержку на повторную авторизацию.

Автор: http://jiexaspb.habrahabr.ru/. Адаптация под PHP 5.5 и MySQL 5.7 KDG.

Куки с флагом HttpOnly не видны браузерному javascript-коду, а отправляются только на сервер. На практике у вас никогда не будет необходимости получать их содержимое в javascript. А вот злоумышленнику, нашедшему XSS – а XSS так или иначе когда-нибудь где-нибудь найдется – отсутствие HttpOnly на авторизационных куках доставит много радости.

Другие примеры авторизации на PHP:

Источник

Оцените статью