როგორ ავტორიზაცია

Სარჩევი:

როგორ ავტორიზაცია
როგორ ავტორიზაცია

ვიდეო: როგორ ავტორიზაცია

ვიდეო: როგორ ავტორიზაცია
ვიდეო: როგორ გადმოვწეროთ კომპიუტერში თიმსი როგორ გაიაროს მოსწავლემ თიმსის აპლიკაციაში ავტორიზაცია 2024, მაისი
Anonim

ხშირად ხდება ისე, რომ საჭიროა ვიზიტორების დაყოფა სასურველად და არასასურველად და საიტის ზოგიერთი გვერდის ნახვის შესაძლებლობა მიეცეს მხოლოდ მათ, ვისაც აქვს მომხმარებლის სახელი და პაროლი. როგორ უნდა გავაკეთოთ ეს, მაგალითად, სერვერის სკრიპტირების ენაზე PHP?

როგორ მივცე ავტორიზაცია?
როგორ მივცე ავტორიზაცია?

ინსტრუქციები

Ნაბიჯი 1

მოდით მოვაწყოთ უმარტივესი გზა თქვენი გვერდების არაავტორიზებული ვიზიტორებისგან დასაცავად. ინფორმაციის მატარებელი არის თუ არა ვიზიტორი უფლებამოსილი, იქნება სხდომა. სესია არის ბრაუზერში ქუქი – ფაილების ანალოგი, მხოლოდ იმ განსხვავებით, რომ ისინი იქმნება არა ჩვენს კომპიუტერზე, არამედ სერვერზე. ისინი გამოიყენება იმავე მიზნით, რაც ქუქი – ფაილებს - ჩვენს შესახებ სხვადასხვა ინფორმაციის შესანახად, როდესაც ერთი საიტის გვერდიდან გვერდზე გადავდივართ. როდესაც ბრაუზერს ვხურავთ, სერვერი ანადგურებს ამ სესიას და შემდეგში, როდესაც შევალთ, ის ქმნის ახალს. ჩვენ ვიყენებთ ამ სერვერის მექანიზმს, რომ ჩავწეროთ თუ არა მომხმარებელი უკვე შესული სხდომაზე. ამ ინფორმაციის წაკითხვისას, როდესაც სტუმარი ითხოვს გვერდს, php- სკრიპტი გახსნის პაროლით დაცულ გვერდებზე ან შესთავაზებს მომხმარებლის სახელის და პაროლის შეყვანას.

ნაბიჯი 1: შექმენით გვერდი შესვლისა და პაროლის შესასვლელად. ავტორიზაციის ფორმის HTML კოდი მისი უმარტივესი ფორმით შეიძლება ასე გამოიყურებოდეს:

Შესვლა:

პაროლი:

აქ (ფაილის დასაწყისში) დავამატებთ php- კოდს, რომელიც შეამოწმებს მნახველის მიერ შეყვანილი მომხმარებლის სახელისა და პაროლის სისწორეს. დასაწყისში დავწერთ:

session_start ();

ეს ბრძანება იწყებს ახალ სესიას, თუ ის ჯერ არ არის შექმნილი ამ ვიზიტორისთვის.

მოდით გადავამოწმოთ, აქვს თუ არა სესიას ცვლადი სახელად 'userName' - ის შეინახავს სახელს, თუ ვიზიტორი უკვე შესულია. თუ ასეთი ცვლადი არსებობს, გადაამისამართეთ სტუმარი მთავარ გვერდზე (index.php) და დაასრულეთ ამ php სკრიპტის შესრულება:

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

სათაური ("ადგილმდებარეობა: index.php");

გასასვლელი;

}

დანარჩენი კოდი შესრულდება მხოლოდ იმ შემთხვევაში, თუ მომხმარებელს ჯერ არ აქვს შეყვანილი სწორი მომხმარებლის სახელი და პაროლი. მოდით მიუთითოთ რომელი შესვლა და პაროლი უნდა ჩაითვალოს სწორად:

$ validName = 'მე ჩემი ვარ!';

$ validPass = 'საიდუმლო პაროლი';

შემდეგ ჩვენ ვამოწმებთ, შეესაბამება თუ არა ფორმაში წარმოდგენილი მნიშვნელობები შესაბამის მნიშვნელობებს. მას შემდეგ, რაც ჩვენ ფორმაში მიუთითეთ POST მონაცემთა გადაცემის მეთოდი, ისინი უნდა წაიკითხოთ $ _POST სუპერგლობალური ცვლადიდან:

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

$ _SESSION ['userName'] = $ validName;

სათაური ("ადგილმდებარეობა: index.php");

გასასვლელი;

}

აქ კოლოფიანი ფრჩხილების კოდი შესრულდება მომხმარებლის სახელისა და პაროლის სწორი მნიშვნელობებით. ხაზზე $ _SESSION ['userName'] = $ validName; ჩვენ სესიაში ვწერთ ცვლადს სახელად "userName", რომელიც შეიცავს ახლა ავტორიზებული მომხმარებლის შესვლას. ეს იქნება ნიშანი იმისა, რომ მასზე წვდომა ღიაა ყველგან, სანამ მისი მიმდინარე სესია მოქმედებს.

იმ შემთხვევაში, თუ არასწორი მონაცემები შევა ფორმაში, დაამატეთ შესაბამისი შეტყობინება:

სხვაგან ექო"

შესვლა ან პაროლი არასწორია!

;

ყველა კოდი, რომელიც უნდა შეინახოს ფაილში, სახელწოდებით login.php, ასე გამოიყურება:

<? php

session_start ();

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

სათაური ("ადგილმდებარეობა: index.php");

გასასვლელი;

}

$ validName = 'მე ჩემი ვარ!';

$ validPass = 'საიდუმლო პაროლი';

if ($ _ 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 ();

თუ (! $ _ SESSION ['admin']) {

სათაური ("საიდან: enter.php");

გასასვლელი;

}

?>

ნაბიჯი 3

ნაბიჯი 3: ამ ფაილების სერვერზე შენახვის შემდეგ, ის დარჩება ყველა PHP- გვერდზე, რომელიც დაცული უნდა იყოს არაავტორიზებული მომხმარებლებისგან, ავტორიზაციის ბლოკის დასაკავშირებლად. ანუ, თითოეული php ფაილის დასაწყისშივე უნდა ჩასვათ ეს კოდი:

<? php

მოითხოვს "auth.php";

?>

წვდომის პაროლის შესაცვლელად, თქვენ უნდა შეცვალოთ ამ ცვლადების მნიშვნელობები login.php ფაილში:

$ validName = 'მე ჩემი ვარ!';

$ validPass = 'საიდუმლო პაროლი';

$ validName - შესვლა, $ validPass - პაროლი.

გირჩევთ: