<?php
$_POST['regName'] = "xxxDEMONxxx";
$_POST['regPassword'] = "qwer123"; //ну тип это как бы юзер ввел в форму и все это прилетело в скрипт
$config['salt'] = "mamu_ebal_:^)"; //у тебя где то в коде есть файлик с конфигом, и подобные вещи в нем
//но я его тут всуну для наглядности, что бы все работало типа.
//тут тип та часть начинается, коорая выполняется после кнопки 'зарехестрироваться'
$registrationName = $_POST['regName'];
//тут ты тип делаешь запрос в базу, проверяя что такое имя не занято
//...
//будь добр сам допиши sql-код который тебе будет высылать в ответ на имя пользователя всю инфу о нем в базе, ну или пустой ответ если юзера в базе нету
//...
$error = 0; //ну тип не занято
} else {
$error = "Имя пользователья уже занято";
}
if (!$error) {
$registrationPassword = $_POST['regPassword']; //ну взяли из формы пароль
$saltyRegistrationPassword = $registrationPassword . $config['salt']; //посолили
$passHash = md5($saltyRegistrationPassword); //захешировали
//ну и тут отправляешь в базу свежеиспеченного юзверя
//тут опять код с запросами к базе, я его пропущу, прост у тебя там лежит такое в итоге что-то:
//...
$db_user = ["id" => 1, "name" => $registrationName, "pass" => $passHash];
//...
} else {
//выведешь ему опять форму регистрации, но теперь выведешь под ней еще красненьким цветом ошибку
}
}
var_dump($db_user); //он на самом деле в базе, а не у нас в скрипте, ну надеюсь понятно.
//а тут попер код который запускается когда юзер пытается залогиниться.
$_POST['loginName'] = "xxxDEMONxxx"; //юзер ввел поле имени
$_POST['loginPassword'] = "qwer123"; //... и пароля
$loginName = $_POST['loginName'];
//тут делаем запрос в базу, тип есть ли вообще такой пользователь там, и если есть то его данные соберем.
//ну тип база вернула нам юзера какого-нибудь, пусть это будет уже тот что у нас есть
$sqlLoginAnswer = $db_user;
if (!empty($sqlLoginAnswer)) { //если в базе есть такой юзер, то ща проверим, он ли это на самом деле
$loginPassword = $_POST['loginPassword']; //взяли из формы пароль
$saltyLoginPassword = $loginPassword . $config['salt']; //посолили пароль под которым юзер пытается залогиниться
$loginPassHash = md5($saltyLoginPassword); //ну и тоже захешировали его
if ($sqlLoginAnswer['pass'] == $loginPassHash) { //ну и надо сверить, что зашифрованный пароль в базе теперь равен зашифрованному по такому же алгоритму паролю под которым чел пытается залогиниться
//если пароли совпали, то логиним юзера тип, всё хорошо
$loginedUserId = $sqlLoginAnswer['id']; //запомнили то юзер успешно залогинился
//ну например в сессию
//session_start();
$_SESSION['loginedUserId'] = $sqlLoginAnswer['id'];
$_SESSION['loginedUserName'] = $sqlLoginAnswer['name'];
} else {
$error = "пароль неверен";
}
} else {
$error = "нет юзера с таким именем";
}
}
//ну и в начале твоих страниц идет проверка, что действительно на них щемится только авторизованный юзер
if ($_SESSION['loginedUserId']) {
echo "hello, " . $_SESSION['loginedUserName'] . "!";
} else {
//редирект на страницу логина если нет сессии :3
}