Көбінесе келушілерді қалаулы және қалаусыз деп бөліп, сайттың кейбір парақтарын тек пайдаланушы аты мен паролі барларға ғана беру мүмкіндігін беру қажет. Мұны қалай жасауға болады, мысалы, PHP сценарийлерінің серверлік жағында?
Нұсқаулық
1-қадам
Өз беттеріңізді рұқсатсыз кірушілерден қорғаудың ең қарапайым әдісін ұйымдастырайық. Келушілердің рұқсаты бар-жоғы туралы ақпарат жеткізуші сессия болады. Сеанс - бұл браузердегі кукидің аналогы, олардың айырмашылығы тек біздің компьютерде емес, серверде жасалады. Олар куки сияқты бірдей мақсатта қолданылады - біз бір сайттың бір парағынан екінші бетіне өткен кезде біз туралы әр түрлі ақпаратты сақтау үшін. Браузерді жапқан кезде сервер бұл сеансты бұзады, келесіде кіргенде жаңасын жасайды. Біз бұл сервер механизмін пайдаланушының сессияға кірген-кірмегенін жазу үшін қолданамыз. Осы ақпаратты оқи отырып, келуші парақ сұрағанда, php-сценарий парольмен қорғалған парақтарға қол жетімділікті ашады немесе пайдаланушы аты мен парольді енгізуді ұсынады.
1-қадам: логин мен парольді енгізу парағын жасаңыз. Авторизация формасының HTML коды қарапайым түрінде келесідей болуы мүмкін:
Кіру:
Пароль:
Мұнда (файлдың басында) біз келуші енгізген пайдаланушы аты мен парольдің дұрыстығын тексеретін php-кодты қосамыз. Басында біз жазамыз:
session_start ();
Егер бұл келуші үшін әлі жасалмаған болса, бұл команда жаңа сеансты бастайды.
Содан кейін сессияда 'userName' деп аталатын айнымалы бар-жоғын тексеріп көрейік - егер кіруші кірген болса, атауды сақтайды. Егер мұндай айнымалы болса, келушіні негізгі бетке бағыттаңыз (index.php) және осы php сценарийін орындауды аяқтаңыз:
егер ($ _ SESSION ['userName']) {
тақырып («Орналасқан жер: index.php»);
Шығу;
}
Кодтың қалған бөлігі пайдаланушы әлі дұрыс пайдаланушы аты мен парольді енгізбеген жағдайда ғана орындалады. Қандай логин мен пароль дұрыс деп саналатындығын көрсетейік:
$ validName = 'Менмін!';
$ validPass = 'құпия сөз';
Содан кейін біз формадан берілген мәндердің дұрыс мәндерге сәйкес келетіндігін тексереміз. Біз нысанда POST деректерін беру әдісін көрсеткендіктен, оларды $ _POST суперглобал айнымалысынан оқып шығу керек:
егер ($ _ POST ['userName'] == $ validName && $ _POST ['userPass'] == $ validPass) {
$ _SESSION ['userName'] = $ validName;
тақырып («Орналасқан жер: index.php»);
Шығу;
}
{} Бұйра жақшалардағы код пайдаланушы аты мен парольдің дұрыс мәндерімен орындалады. $ _SESSION ['userName'] = $ validName жолында; біз сеанста қазір авторизацияланған пайдаланушының логині бар 'userName' айнымалысын жазамыз. Бұл оның сессиясы жарамды болғанша, оған барлық жерде қол жетімділіктің белгісі болады.
Егер формаға қате мәліметтер енгізілген болса, оған сәйкес хабарламаны қосыңыз:
басқа жаңғырық «
Кіру немесе пароль дұрыс емес!
;
Login.php деп аталатын файлға сақталуы керек барлық кодтар келесідей болады:
<? php
session_start ();
егер ($ _ SESSION ['userName']) {
тақырып («Орналасқан жер: index.php»);
Шығу;
}
$ validName = 'Менмін!';
$ validPass = 'құпия сөз';
егер ($ _ POST ['userName'] == $ validName && $ _POST ['userPass'] == $ validPass) {
$ _SESSION ['userName'] = $ жарамдыName;
тақырып («Орналасқан жер: index.php»);
Шығу;
}
басқасы жаңғырық «
Кіру немесе пароль дұрыс емес!
;
?>
Кіру:
Пароль:
2-қадам
2-қадам: Авторизация блогын жасаңыз - құпия сөзбен қорғауды қажет ететін әр параққа қосылатын жеке файл. Бұл файлда тек php-код болады, сондықтан оның кеңеюі «php» болады, және біз оған осындай файлдарға дәстүр бойынша «auth», яғни «auth.php» атауын береміз. Мұнда да <? Php тегі ашылғаннан кейін, сеансты бастау туралы нұсқаулық болуы керек:
session_start ();
Біз $ _SESSION суперглобал массивінен сессияда сақталатын барлық айнымалыларды оқи аламыз. Біз «userName» айнымалысының мәнін тексеруіміз керек - егер келуші әлі жүйеге кірмеген болса, онда ол массивте болмайды және біз оны пайдаланушы аты мен паролін енгізу үшін параққа бағыттаймыз:
егер (! $ _ SESSION ['авторизацияланған']) {
тақырып («Орналасқан жері: login.php»);
Шығу;
}
Auth.php файлына сақтау қажет барлық код келесідей болады:
<? php
session_start ();
егер (! $ _ SESSION ['admin']) {
тақырып («Орналасқан жер: enter.php»);
Шығу;
}
?>
3-қадам
3-қадам: біз бұл файлдарды серверде сақтағаннан кейін, ол авторизация блогын қосу үшін авторизацияланбаған пайдаланушылардан қорғалуы қажет барлық php-парақтарда қалады. Яғни, әр php файлының басында сізге осы кодты енгізу қажет болады:
<? php
«auth.php» қажет;
?>
Кіру құпия сөзін өзгерту үшін сізге login.php файлындағы осы айнымалылардың мәндерін өзгерту қажет болады:
$ validName = 'Менмін!';
$ validPass = 'құпия сөз';
$ validName - кіру, $ validPass - құпия сөз.