Как да упълномощавам

Съдържание:

Как да упълномощавам
Как да упълномощавам

Видео: Как да упълномощавам

Видео: Как да упълномощавам
Видео: Как да се клонираме 2024, Ноември
Anonim

Често се случва, че е необходимо посетителите да се разделят на желани и нежелани и да се даде възможност да се видят някои страници на сайта само на тези, които имат потребителско име и парола. Как да направя това, например, в сървърния скриптов език PHP?

Как да упълномощавам?
Как да упълномощавам?

Инструкции

Етап 1

Нека организираме най-лесния начин за защита на вашите страници от неоторизирани посетители. Носителят на информация за това дали посетителят е упълномощен ще бъде сесията. Сесията е аналог на бисквитките в браузър, с единствената разлика, че те се създават не на нашия компютър, а на сървъра. И те се използват за същата цел като бисквитките - за съхраняване на различна информация за нас, докато преминаваме от страница на страница на един сайт. Когато затворим браузъра, сървърът унищожава тази сесия и следващия път, когато влезем, създава нова. Използваме този сървърен механизъм, за да запишем дали потребителят вече е влязъл в сесията или не. Четейки тази информация, когато посетител поиска страница, php-скриптът ще отвори достъп до защитени с парола страници или ще предложи да въведе потребителско име и парола.

Стъпка 1: Създайте страница за въвеждане на потребителско име и парола. HTML кодът на формуляра за оторизация в най-простия му вид може да изглежда така:

Влизам:

Парола:

Тук (в самото начало на файла) ще добавим php-код, който ще провери верността на потребителското име и паролата, въведени от посетителя. В началото ще напишем:

session_start ();

Тази команда стартира нова сесия, ако вече не е създадена за този посетител.

Тогава нека проверим дали сесията има променлива с име 'userName' - тя ще съхрани името, ако посетителят вече е влязъл в системата. Ако има такава променлива, пренасочете посетителя към главната страница (index.php) и завършете изпълнението на този php скрипт:

if ($ _ SESSION ['userName']) {

заглавка ("Местоположение: index.php");

изход;

}

Останалата част от кода ще бъде изпълнена само ако потребителят все още не е въвел правилното потребителско име и парола. Нека посочим кой вход и парола трябва да се считат за правилни:

$ validName = 'Моя съм!';

$ validPass = 'секретна парола';

След това проверяваме дали стойностите, подадени от формуляра, съвпадат с правилните. Тъй като във формуляра сме посочили метода за прехвърляне на данни POST, те трябва да се четат от суперглобалната променлива $ _POST:

ако ($ _ POST ['userName'] == $ validName && $ _POST ['userPass'] == $ validPass) {

$ _SESSION ['userName'] = $ validName;

заглавка ("Местоположение: index.php");

изход;

}

Тук кодът в фигурни скоби {} ще бъде изпълнен с правилните стойности на потребителското име и паролата. На реда $ _SESSION ['userName'] = $ validName; ma, ние записваме в сесията променлива с име 'userName', съдържаща данните за вход на сега оторизирания потребител. Това ще бъде знакът, че достъпът му е отворен навсякъде, докато текущата му сесия е валидна.

И в случай, че във формуляра се въведат неверни данни, добавете съответното съобщение:

иначе ехо"

Входът или паролата са неправилни!

;

Целият код, който трябва да бъде записан във файл с име login.php, ще изглежда така:

<? php

session_start ();

if ($ _ SESSION ['userName']) {

заглавка ("Местоположение: index.php");

изход;

}

$ validName = 'Моя съм!';

$ validPass = 'секретна парола';

ако ($ _ POST ['userName'] == $ validName && $ _POST ['userPass'] == $ validPass) {

$ _SESSION ['userName'] = $ validName;

заглавка ("Местоположение: index.php");

изход;

}

иначе ехо"

Входът или паролата са неправилни!

;

?>

Влизам:

Парола:

Стъпка 2

Стъпка 2: Създайте блок за оторизация - отделен файл, който ще бъде свързан към всяка страница, която се нуждае от защита с парола. Този файл ще съдържа само php-код, така че разширението му ще бъде "php" и ние ще му дадем име според традицията за такива файлове - "auth", тоест "auth.php". И тук също веднага след отварящия <? Php таг трябва да има инструкция за започване на сесия:

session_start ();

Можем да прочетем всички променливи, които се съхраняват в сесията от суперглобалния масив $ _SESSION. Трябва да проверим стойността на променливата "userName" - ако посетителят все още не е влязъл в системата, тогава тя няма да е в масива и ние ще го пренасочим към страницата за въвеждане на неговото потребителско име и парола:

ако (! $ _ SESSION ['оторизиран']) {

заглавка ("Местоположение: login.php");

изход;

}

Целият код, който трябва да бъде записан във файла auth.php, ще изглежда така:

<? php

session_start ();

if (! $ _ SESSION ['admin']) {

заглавка ("Местоположение: enter.php");

изход;

}

?>

Стъпка 3

Стъпка 3: след като запазим тези файлове на сървъра, те ще останат във всички php-страници, които трябва да бъдат защитени от неоторизирани потребители, за да свържат блока за оторизация. Тоест в самото начало на всеки php файл ще трябва да вмъкнете този код:

<? php

изискват "auth.php";

?>

И за да промените паролата за достъп, ще трябва да промените стойностите на тези променливи във файла login.php:

$ validName = 'Моя съм!';

$ validPass = 'секретна парола';

$ validName - вход, $ validPass - парола.

Препоръчано: