Paano Pahintulutan

Talaan ng mga Nilalaman:

Paano Pahintulutan
Paano Pahintulutan

Video: Paano Pahintulutan

Video: Paano Pahintulutan
Video: ASOP Music Festival Year 4 Grand Finalist - "Pahintulutan Mo" interpreted by Philippe Go 2024, Mayo
Anonim

Madalas na nangyayari na kinakailangan upang hatiin ang mga bisita sa kanais-nais at hindi kanais-nais, at upang bigyan ng pagkakataon na makita lamang ang ilang mga pahina ng site sa mga may username at password lamang. Paano ito gagawin, halimbawa, sa server-side scripting na wika ng PHP?

Paano ako magpapahintulot?
Paano ako magpapahintulot?

Panuto

Hakbang 1

Ayusin natin ang pinakamadaling paraan upang protektahan ang iyong mga pahina mula sa hindi pinahintulutang mga bisita. Ang nagdadala ng impormasyon tungkol sa kung may pahintulot ang bisita ay ang sesyon. Ang sesyon ay isang analogue ng cookies sa isang browser, na may pagkakaiba lamang na nilikha ang mga ito hindi sa aming computer, ngunit sa server. At ginagamit ang mga ito para sa parehong layunin tulad ng cookies - upang mag-imbak ng iba't ibang impormasyon tungkol sa amin habang nagpupunta kami mula sa bawat pahina sa isang site. Kapag isinara namin ang browser, winawasak ng server ang session na ito, at sa susunod na mag-log in kami, lumilikha ito ng bago. Ginagamit namin ang mekanismo ng server na ito upang maitala kung ang gumagamit ay naka-log na sa session o hindi. Ang pagbabasa ng impormasyong ito, kapag humiling ang isang bisita ng isang pahina, ang php-script ay magbubukas ng access sa mga pahina na protektado ng password, o mag-aalok na magpasok ng isang username at password.

Hakbang 1: Lumikha ng isang pahina para sa pagpasok ng pag-login at password. Ang HTML code ng form ng pahintulot sa pinakasimpleng form nito ay maaaring magmukhang ganito:

Mag log in:

Password:

Dito (sa simula pa lamang ng file) idaragdag namin ang php-code na susuriin ang kawastuhan ng username at password na ipinasok ng bisita. Sa simula ay magsusulat kami:

session_start ();

Ang utos na ito ay nagsisimula ng isang bagong session kung ang isa ay hindi pa nilikha para sa bisita na ito.

Pagkatapos suriin natin kung ang session ay may variable na pinangalanang 'userName' - itatabi nito ang pangalan kung ang bisita ay naka-log in na. Kung mayroong isang variable, i-redirect ang bisita sa pangunahing pahina (index.php) at tapusin ang pagpapatupad ng php script na ito:

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

header ("Lokasyon: index.php");

exit;

}

Ang natitirang code ay naisasagawa lamang kung ang gumagamit ay hindi pa nakapasok sa tamang username at password. Ipahiwatig natin kung aling pag-login at password ang dapat isaalang-alang na tama:

$ validName = 'Akin na!';

$ validPass = 'lihim na password';

Pagkatapos ay suriin namin upang makita kung ang mga halagang isinumite mula sa form ay tumutugma sa mga tama. Dahil tinukoy namin ang POST data transfer method sa form, dapat silang mabasa mula sa variable na $ _POST superglobal:

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

$ _SESSION ['userName'] = $ validName;

header ("Lokasyon: index.php");

exit;

}

Dito ang code sa mga kulot na tirante {} ay isasagawa gamit ang wastong mga halaga ng username at password. Sa linya na $ _SESSION ['userName'] = $ validName; isinusulat namin sa sesyon ang isang variable na nagngangalang 'userName' na naglalaman ng pag-login ng awtorisadong gumagamit na ngayon. Ito ang magiging marka na bukas ang pag-access sa kanya saanman hangga't may bisa ang kanyang kasalukuyang session.

At kung sakaling ang maling data ay ipinasok sa form, idagdag ang naaangkop na mensahe:

kung hindi man echo"

Ang pag-login o password ay hindi tama!

;

Ang lahat ng mga code na kailangang i-save sa isang file na pinangalanang login.php ay ganito ang hitsura:

<? php

session_start ();

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

header ("Lokasyon: index.php");

exit;

}

$ validName = 'Akin na!';

$ validPass = 'lihim na password';

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

$ _SESSION ['userName'] = $ validName;

header ("Lokasyon: index.php");

exit;

}

kung hindi man echo"

Ang pag-login o password ay hindi tama!

;

?>

Mag log in:

Password:

Hakbang 2

Hakbang 2: Lumikha ng isang bloke ng pagpapahintulot - isang hiwalay na file na makakonekta sa bawat pahina na nangangailangan ng proteksyon ng password. Maglalaman lamang ang file na ito ng php-code, kaya't ang extension nito ay "php", at bibigyan namin ito ng isang pangalan alinsunod sa tradisyon para sa mga nasabing file - "auth", iyon ay, "auth.php". At narito din, kaagad pagkatapos ng pagbubukas ng <? Php tag, dapat mayroong isang tagubilin upang simulan ang isang session:

session_start ();

Maaari nating basahin ang lahat ng mga variable na nakaimbak sa session mula sa $ _SESSION superglobal array. Kailangan naming suriin ang halaga ng variable na "userName" - kung ang bisita ay hindi pa nag-log in, pagkatapos ay wala ito sa array, at ire-redirect namin siya sa pahina para sa pagpasok ng kanyang username at password:

kung (! $ _ SESSION ['pinahintulutan']) {

header ("Lokasyon: login.php");

exit;

}

Ang lahat ng mga code na kailangang mai-save sa auth.php file ay magiging ganito:

<? php

session_start ();

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

header ("Lokasyon: enter.php");

exit;

}

?>

Hakbang 3

Hakbang 3: pagkatapos naming mai-save ang mga file na ito sa server, mananatili ito sa lahat ng mga php-page na kailangang protektahan mula sa hindi pinahintulutang mga gumagamit upang ikonekta ang bloke ng pahintulot. Iyon ay, sa simula pa lamang ng bawat php file, kakailanganin mong ipasok ang code na ito:

<? php

nangangailangan ng "auth.php";

?>

At upang baguhin ang access password, kakailanganin mong baguhin ang mga halaga ng mga variable na ito sa file ng pag-login.php:

$ validName = 'Akin na!';

$ validPass = 'lihim na password';

$ validName - pag-login, $ validPass - password.

Inirerekumendang: