Настройка входа в систему для веб-сайта с использованием PHP

Я должен создать веб-сайт с единственной целью подключения к базе данных MySQL и отображения его информации в графическом интерфейсе пользователя.

Пока все работает хорошо. Моя проблема, однако, заключается в создании своего рода системы регистрации, чтобы получить $username и $password .

Хотя веб-сайт разрабатывается для использования в локальной сети, я бы предпочел не вводить username и password в HTML или PHP по соображениям безопасности.

Как я могу написать код, чтобы спросить у пользователя password и username на моей индексной странице, использовать его для всех других страниц на моем сайте и, в конечном счете, забыть, когда пользователь закрывает мой сайт? На данный момент я знаю только HTML, CSS и очень наивный PHP.

в двух словах: login.php

 <?php session_start(); function hhb_tohtml($str) { return htmlentities($str, ENT_QUOTES | ENT_HTML401 | ENT_SUBSTITUTE | ENT_DISALLOWED, 'UTF-8', true); } $accounts=array( //username =>password 'smith'=>'smell', 'admin'=>'password', 'guest'=>'guestpass' ); if(array_key_exists('submit',$_POST)){ if(!array_key_exists('username',$_POST)){ $username=''; } else { $username=$_POST['username']; } if(!array_key_exists('password',$_POST)){ $password=''; }else { $password=$_POST['password']; } if(!array_key_exists($username,$accounts)){ die('This username does not exist.'); } if($accounts[$username]!==$password){ die('wrong password!'); } $_SESSION['logged_in']=true; $_SESSION['username']=$username; die('you have logged in as: '.hhb_tohtml($username)); } ?> <!DOCTYPE html> <html> <head><title></title></head> <body> <form action="?" method="post"> Username: <input type="text" name="username" /><br> Password: <input type="password" name="password" /><br> <input type="submit" name="submit" value="Submit" /> </form> </body> </html> 

и в других местах, например controlpanel.php:

 session_start(); if(!isset($_SESSION['logged_in'])){die('you need to login first!');} 

идентификатор сеанса будет сохранен в cookie, благодаря session_start (), и сервер будет помнить, зарегистрирован ли этот идентификатор сеанса.

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

Вы должны начать с изучения учебника, подобного этому, который использует сеанс http://www.formget.com/login-form-in-php/, это даст вам функциональность «забыть пароль». Если пользователь не сохраняет пароль с помощью своего браузера.

На всякий случай вышеприведенный урок не по вашему вкусу здесь еще несколько: http://www.homeandlearn.co.uk/php/php14p2.html http://www.phpeasystep.com/phptu/6.html

и мой личный фаворит http://www.tutorialspoint.com/php/php_login_example.htm

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