Mara nyingi hufanyika kwamba inahitajika kugawanya wageni kuwa wa kuhitajika na usiofaa, na kutoa fursa ya kuona kurasa zingine za wavuti tu kwa wale ambao wana jina la mtumiaji na nywila. Jinsi ya kufanya hivyo, kwa mfano, katika lugha ya script-side script PHP?
Maagizo
Hatua ya 1
Wacha tuandae njia rahisi ya kulinda kurasa zako kutoka kwa wageni wasioidhinishwa. Mtoaji wa habari kuhusu ikiwa mgeni ameidhinishwa atakuwa kikao. Kikao ni mfano wa kuki kwenye kivinjari, na tofauti pekee ambayo imeundwa sio kwenye kompyuta yetu, lakini kwenye seva. Na hutumiwa kwa kusudi sawa na kuki - kuhifadhi habari tofauti juu yetu wakati tunatoka ukurasa hadi ukurasa wa wavuti moja. Tunapofunga kivinjari, seva huharibu kikao hiki, na wakati mwingine tunapoingia, inaunda mpya. Tunatumia utaratibu huu wa seva kurekodi ikiwa mtumiaji tayari ameingia kwenye kikao au la. Kusoma habari hii, wakati mgeni akiuliza ukurasa, hati ya php itafungua ufikiaji wa kurasa zilizolindwa na nywila, au itatoa kuingiza jina la mtumiaji na nywila.
Hatua ya 1: Unda ukurasa wa kuingia kuingia na nywila. Nambari ya HTML ya fomu ya idhini katika fomu yake rahisi inaweza kuonekana kama hii:
Ingia:
Nenosiri:
Hapa (mwanzoni mwa faili) tutaongeza msimbo wa php ambao utaangalia usahihi wa jina la mtumiaji na nywila iliyoingizwa na mgeni. Mwanzoni tutaandika:
kipindi_cha kuanza ();
Amri hii huanza kikao kipya ikiwa tayari haijaundwa kwa mgeni huyu.
Basi wacha tuangalie ikiwa kikao kina jina linalojulikana la 'userName' - litahifadhi jina ikiwa mgeni tayari ameingia. Ikiwa kuna ubadilishaji kama huo, elekeza mgeni kwenye ukurasa kuu (index.php) na amalize kutekeleza hati hii ya php:
ikiwa ($ _ SESSION ['userName']) {
kichwa ("Mahali: index.php");
Utgång;
}
Nambari iliyobaki itatekelezwa ikiwa tu mtumiaji hajaingiza jina la mtumiaji na nywila sahihi. Wacha tuonyeshe ni ipi kuingia na nywila inapaswa kuzingatiwa kuwa sahihi:
$ validName = 'mimi ni wangu!';
$ validPass = 'nywila ya siri';
Kisha tunaangalia kuona ikiwa maadili yaliyowasilishwa kutoka kwa fomu yanalingana na yale sahihi. Kwa kuwa tumetaja njia ya POST ya kuhamisha data katika fomu, inapaswa kusomwa kutoka kwa $ _POST superglobal variable:
ikiwa ($ _ POST ['userName'] == $ validName && $ _POST ['userPass'] == $ validPass) {
$ _SESSION ['userName'] = $ validName;
kichwa ("Mahali: index.php");
Utgång;
}
Hapa nambari iliyo kwenye braces zilizopindika {} itatekelezwa na maadili sahihi ya jina la mtumiaji na nywila. Kwenye laini $ _SESSION ['userName'] = $ validName; tunaandika kwenye kikao anuwai inayoitwa 'mtumiajiName' iliyo na kuingia kwa mtumiaji aliyeidhinishwa sasa. Hii itakuwa alama kwamba ufikiaji uko wazi kwake kila mahali maadamu kikao chake cha sasa ni halali.
Na ikiwa data isiyo sahihi imeingizwa kwenye fomu, ongeza ujumbe unaofaa:
mwangwi mwingine"
Kuingia au nywila sio sahihi!
;
Nambari yote ambayo inahitaji kuhifadhiwa kwenye faili inayoitwa login.php itaonekana kama hii:
<php
kipindi_cha kuanza ();
ikiwa ($ _ SESSION ['userName']) {
kichwa ("Mahali: index.php");
Utgång;
}
$ validName = 'mimi ni wangu!';
$ validPass = 'nywila ya siri';
ikiwa ($ _ POST ['userName'] == $ validName && $ _POST ['userPass'] == $ validPass) {
$ _SESSION ['userName'] = $ validName;
kichwa ("Mahali: index.php");
Utgång;
}
mwangwi mwingine"
Kuingia au nywila sio sahihi!
;
?>
Ingia:
Nenosiri:
Hatua ya 2
Hatua ya 2: Unda kizuizi cha idhini - faili tofauti ambayo itaunganishwa kwa kila ukurasa ambao unahitaji ulinzi wa nywila. Faili hii itakuwa na msimbo wa php tu, kwa hivyo ugani wake utakuwa "php", na tutaipa jina kulingana na jadi ya faili kama hizo - "auth", ambayo ni, "auth.php". Na hapa pia, mara tu baada ya ufunguzi wa <? Php tag, inapaswa kuwa na maagizo ya kuanza kikao:
kipindi_cha kuanza ();
Tunaweza kusoma anuwai zote ambazo zimehifadhiwa kwenye kikao kutoka kwa safu ya $ _SESSION superglobal. Tunahitaji kuangalia thamani ya ubadilishaji wa "mtumiajiName" - ikiwa mgeni bado hajaingia, basi haitakuwa kwenye safu, na tutamuelekeza kwenye ukurasa kwa kuingiza jina lake la mtumiaji na nywila:
ikiwa (! $ _ KIKAO ['kilichoidhinishwa']) {
kichwa ("Mahali: login.php");
Utgång;
}
Nambari yote ambayo inahitaji kuhifadhiwa kwenye faili ya auth.php itaonekana kama hii:
<php
kipindi_cha kuanza ();
ikiwa (! $ _ KIKAO ['admin']) {
kichwa ("Mahali: enter.php");
Utgång;
}
?>
Hatua ya 3
Hatua ya 3: baada ya kuhifadhi faili hizi kwenye seva, itabaki katika kurasa zote za php ambazo zinahitaji kulindwa kutoka kwa watumiaji wasioidhinishwa kuunganisha kizuizi cha idhini. Hiyo ni, mwanzoni mwa kila faili ya php, utahitaji kuingiza nambari hii:
<php
zinahitaji "auth.php";
?>
Na kubadilisha nenosiri la ufikiaji, utahitaji kubadilisha maadili ya anuwai hizi kwenye faili ya login.php:
$ validName = 'mimi ni wangu!';
$ validPass = 'nywila ya siri';
$ validName - ingia, $ validPass - nywila.