Ako Autorizovať

Obsah:

Ako Autorizovať
Ako Autorizovať

Video: Ako Autorizovať

Video: Ako Autorizovať
Video: Один из последних атмосферных дизелей от VW: 1.7 SDI (AKU) 2024, Apríl
Anonim

Často sa stáva, že je potrebné rozdeliť návštevníkov na žiaducich a nežiaducich a dať možnosť vidieť niektoré stránky webu iba tým, ktorí majú užívateľské meno a heslo. Ako to urobiť napríklad v skriptovacom jazyku PHP na strane servera?

Ako autorizujem?
Ako autorizujem?

Inštrukcie

Krok 1

Zorganizujme najjednoduchší spôsob, ako chrániť vaše stránky pred neoprávnenými návštevníkmi. Nositeľom informácií o tom, či je návštevník oprávnený, bude relácia. Relácia je analógom cookies v prehliadači, iba s tým rozdielom, že sa nevytvárajú na našom počítači, ale na serveri. Používajú sa na rovnaký účel ako súbory cookie - na ukladanie rôznych informácií o nás, keď prechádzame zo stránky na stránku jedného webu. Keď zavrieme prehliadač, server túto reláciu zničí a pri ďalšom prihlásení vytvorí novú. Tento serverový mechanizmus používame na záznam, či je používateľ už prihlásený do relácie alebo nie. Po prečítaní týchto informácií, keď návštevník požiada o stránku, skript php buď otvorí prístup k stránkam chráneným heslom, alebo ponúkne zadanie používateľského mena a hesla.

Krok 1: Vytvorte stránku na zadanie prihlasovacieho mena a hesla. HTML kód autorizačného formulára v najjednoduchšej podobe môže vyzerať takto:

Prihlásiť sa:

Heslo:

Sem (na samom začiatku súboru) pridáme php-kód, ktorý skontroluje správnosť používateľského mena a hesla zadaného návštevníkom. Na začiatok napíšeme:

session_start ();

Tento príkaz spustí novú reláciu, ak pre tohto návštevníka ešte nebola vytvorená.

Potom skontrolujme, či má relácia premennú s názvom „userName“- meno sa uloží, ak už bol návštevník prihlásený. Ak existuje takáto premenná, presmerujte návštevníka na hlavnú stránku (index.php) a dokončite vykonanie tohto skriptu php:

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

hlavička ("Location: index.php");

východ;

}

Zvyšok kódu sa vykoná, iba ak používateľ ešte nezadal správne používateľské meno a heslo. Označme, ktoré prihlasovacie meno a heslo by sa mali považovať za správne:

$ validName = 'Som môj!';

$ validPass = 'tajné heslo';

Potom skontrolujeme, či sa hodnoty odoslané z formulára zhodujú so správnymi. Pretože sme vo formulári zadali metódu prenosu údajov POST, mali by sa čítať z superglobálnej premennej $ _POST:

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

$ _SESSION ['userName'] = $ validName;

hlavička ("Location: index.php");

východ;

}

Tu sa kód v zložených zátvorkách {} vykoná so správnymi hodnotami používateľského mena a hesla. Na riadku $ _SESSION ['userName'] = $ validName; ma v relácii napíšeme premennú s názvom 'userName', ktorá obsahuje prihlásenie teraz oprávneného používateľa. To bude značka, že má k dispozícii prístup všade, pokiaľ je platná jeho aktuálna relácia.

A v prípade, že sú do formulára zadané nesprávne údaje, pridajte príslušnú správu:

else echo"

Prihlasovacie meno alebo heslo je nesprávne!

;

Celý kód, ktorý je potrebné uložiť do súboru s názvom login.php, bude vyzerať takto:

<? php

session_start ();

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

hlavička ("Location: index.php");

východ;

}

$ validName = 'Som môj!';

$ validPass = 'tajné heslo';

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

$ _SESSION ['userName'] = $ validName;

hlavička ("Location: index.php");

východ;

}

else echo"

Prihlasovacie meno alebo heslo je nesprávne!

;

?>

Prihlásiť sa:

Heslo:

Krok 2

Krok 2: Vytvorte autorizačný blok - samostatný súbor, ktorý sa pripojí ku každej stránke, ktorá vyžaduje ochranu heslom. Tento súbor bude obsahovať iba php-kód, takže jeho prípona bude „php“a pre tieto súbory mu dáme názov podľa tradície - „auth“, teda „auth.php“. A tiež tu, bezprostredne po úvodnej značke <? Php, by mala byť inštrukcia na spustenie relácie:

session_start ();

Všetky premenné, ktoré sú uložené v relácii, môžeme načítať z superglobálneho poľa $ _SESSION. Musíme skontrolovať hodnotu premennej "userName" - ak sa návštevník ešte neprihlásil, nebude v poli a presmerujeme ho na stránku pre zadanie jeho užívateľského mena a hesla:

if (! $ _ SESSION ['autorizované']) {

hlavička ("Umiestnenie: login.php");

východ;

}

Celý kód, ktorý je potrebné uložiť do súboru auth.php, bude vyzerať takto:

<? php

session_start ();

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

hlavička ("Location: enter.php");

východ;

}

?>

Krok 3

Krok 3: Keď tieto súbory uložíme na server, zostanú na všetkých php stránkach, ktoré je potrebné chrániť pred neoprávnenými používateľmi, aby sa mohol pripojiť autorizačný blok. To znamená, že na začiatok každého súboru php budete musieť vložiť tento kód:

<? php

vyžadovať „auth.php“;

?>

A aby ste zmenili prístupové heslo, budete musieť zmeniť hodnoty týchto premenných v súbore login.php:

$ validName = 'Som môj!';

$ validPass = 'tajné heslo';

$ validName - prihlásenie, $ validPass - heslo.

Odporúča: