Соединение и выполнение запросов с базой данных
Для полного понимания скриптов аутентификации и регистрации, необходимо не просто пройти обучение SQL от qastartup.com.ua, а и рассмотреть участки скрипта отвечающие за соединение с базой данных. А работать скрипт будет с самой популярной базой, называемой нехитрым выражением - MSQL база данных. В предыдущей статье описаны основные PHP функции для понимания работы скриптов регистрации.
И так, для работы с базой данных, нужно ее создать и соединиться. Будем считать, что база создана и создадим файл конфигурации config.php, который будет иметь следующее содержание:
$bd_host="localhost"; - это присвоение переменной $bd_host значения адреса сервера MSQL, в данном случае локального сервера, а параметры узнаются в личном кабинете хостинга где будет расположен сайт.
$bd_name=" имя "; - присваивается имя созданной вами базы, к тому же имя созданное для локал-хоста обычно будет отличаться от созданного на хостинге, поэтому нужно быть внимательным, чтобы потом не переживать. А в программах для свободного доступа вписываются данные локалки, чтобы можно была запустить скрипт на своем компе.
$bd_user=" root "; - имя пользователя базы данных, root - пишется для локалки, на хосте нужно вставит свое придуманное имя (обязательно)!
$bd_passw=" "; - пароль доступа к базе, для локалки оставляется пустым, если он не запрограммирован при установке программы phpMyAdmin.
Дальше, когда все переменные определены со своими значениями, устанавливается соединение при помощи функции msql_connect();
а вся строка пишется так - $v=msql_connect($bd_host,$bd_user,$bd_passw)
и выбираем базу данных функцией msql_select_db($bd_name,$v);
дальше нужно установить кодировку функцией msql_query( "SET NAME 'cp1251'"); а можно msql_query( "SET NAME 'utf8'"); - кому что надо.
Теперь соединение установлено - получен доступ к базе данных и можно делать запросы и производить все необходимые манипуляции с самой msql базой данных.
Обычно в скриптах авторизации запросы таких типов:
- нужно проверить наличие пользователя, или проверить правильность ввода пароля при входе на сайт,
- или нужно занести новую информацию в таблицу, а возможно просто обновить имеющуюся информацию.
- например при проверке пользователя на существование, формируем запрос
$q=SELECT user FROM table Where user=$username - а простыми словами ищем в поле user таблицы table значение логина, введенного в форме ввода и переданное переменной $username.
Выполняется запрос уже известной функцией - msql_query($q); а если нет соединения то остановка функцией or die(mysql_error());
А если все нормально - логин, пароль и остальные параметры введены и соответствуют нужному вам формату и соединение с базой данных успешно открыто и существует, то проводится регистрация нового пользователя:
$sql = "INSERT INTO user(username, password, email ,date)</p>
<p>VALUES('" . mysql_real_escape_string($username) . "','" . sha1($password) . "', </p>
<p>'" . mysql_real_escape_string($email) . "', NOW())";
Переменная date отвечает полю NOW() - и означает, что запишем текущее время регистрации. Главное не перепутать значения с полями, чтобы полю username соответствовало только поле с именем пользователя а не пароль, чтобы в таблицу вносились данные, отвечающие своим значениям!
Пароль шифруется функцией sha1($password), чтобы при он не попал в руки злоумышленнику, а если в таком виде и попадет, то расшифровать его будет очень трудно, почти не возможно!
Для дополнительной защиты, переменные обрабатываются функцией mysql_real_escape_string, которая проставляет дополнительные слеши, чем очень сильно затруднит взлом базы данных msql.
Практически для понимания о чем пишется в программе регистрации, или авторизации этих знаний достаточно, естественно полное обучение провести в одной статье невозможно, я не верю тем, кто обещает обучить PHP и MSQL за 10 дней, значит нужно изучить несколько книг по данной тематике, тогда все будет намного понятней. Не все родились с жестким диском в мозгу, на котором записан весь интернет, поэтому учиться стоит!
Рекомендовано к прочтению