วิธีการอนุญาต

สารบัญ:

วิธีการอนุญาต
วิธีการอนุญาต

วีดีโอ: วิธีการอนุญาต

วีดีโอ: วิธีการอนุญาต
วีดีโอ: วิธีตั้งค่าจัดการแอพ ตัดการอนุญาตให้แอพเข้าถึงข้อมูลของเรา 2024, ธันวาคม
Anonim

บ่อยครั้งที่จำเป็นต้องแบ่งผู้เยี่ยมชมออกเป็นที่ต้องการและไม่ต้องการ และให้โอกาสในการดูบางหน้าของเว็บไซต์เฉพาะผู้ที่มีชื่อผู้ใช้และรหัสผ่านเท่านั้น จะทำสิ่งนี้ได้อย่างไร เช่น ในภาษาสคริปต์ฝั่งเซิร์ฟเวอร์ PHP?

ฉันจะอนุญาตได้อย่างไร
ฉันจะอนุญาตได้อย่างไร

คำแนะนำ

ขั้นตอนที่ 1

มาจัดระเบียบวิธีที่ง่ายที่สุดในการปกป้องเพจของคุณจากผู้เยี่ยมชมที่ไม่ได้รับอนุญาต ผู้ถือข้อมูลเกี่ยวกับว่าผู้เยี่ยมชมได้รับอนุญาตหรือไม่จะเป็นเซสชัน เซสชันคือความคล้ายคลึงของคุกกี้ในเบราว์เซอร์ โดยมีความแตกต่างเพียงอย่างเดียวที่ไม่ได้สร้างขึ้นในคอมพิวเตอร์ของเรา แต่อยู่บนเซิร์ฟเวอร์ และใช้เพื่อจุดประสงค์เดียวกับคุกกี้ - เพื่อจัดเก็บข้อมูลที่แตกต่างกันเกี่ยวกับเราในขณะที่เราไปจากหน้าหนึ่งไปยังอีกหน้าของเว็บไซต์หนึ่ง เมื่อเราปิดเบราว์เซอร์ เซิร์ฟเวอร์จะทำลายเซสชันนี้ และครั้งต่อไปที่เราเข้าสู่ระบบ เซิร์ฟเวอร์จะสร้างเซสชันใหม่ เราใช้กลไกเซิร์ฟเวอร์นี้เพื่อบันทึกว่าผู้ใช้เข้าสู่ระบบเซสชันแล้วหรือไม่ การอ่านข้อมูลนี้ เมื่อผู้เยี่ยมชมร้องขอหน้า php-script จะเปิดการเข้าถึงหน้าที่มีการป้องกันด้วยรหัสผ่าน หรือเสนอให้ป้อนชื่อผู้ใช้และรหัสผ่าน

ขั้นตอนที่ 1: สร้างหน้าสำหรับเข้าสู่ระบบและรหัสผ่าน รหัส HTML ของแบบฟอร์มการให้สิทธิ์ในรูปแบบที่ง่ายที่สุดอาจมีลักษณะดังนี้:

เข้าสู่ระบบ:

รหัสผ่าน:

ที่นี่ (ที่จุดเริ่มต้นของไฟล์) เราจะเพิ่ม php-code ที่จะตรวจสอบความถูกต้องของชื่อผู้ใช้และรหัสผ่านที่ป้อนโดยผู้เยี่ยมชม ในตอนเริ่มต้นเราจะเขียน:

session_start ();

คำสั่งนี้เริ่มเซสชันใหม่หากยังไม่ได้สร้างไว้สำหรับผู้เยี่ยมชมรายนี้

จากนั้นให้ตรวจสอบว่าเซสชันมีตัวแปรชื่อ 'ชื่อผู้ใช้' หรือไม่ - จะเก็บชื่อไว้หากผู้เยี่ยมชมได้เข้าสู่ระบบแล้ว หากมีตัวแปรดังกล่าว ให้เปลี่ยนเส้นทางผู้เยี่ยมชมไปยังหน้าหลัก (index.php) และดำเนินการสคริปต์ php นี้ให้เสร็จสิ้น:

ถ้า ($ _ SESSION ['ชื่อผู้ใช้']) {

ส่วนหัว ("ตำแหน่ง: index.php");

ทางออก;

}

รหัสที่เหลือจะถูกดำเนินการก็ต่อเมื่อผู้ใช้ยังไม่ได้ป้อนชื่อผู้ใช้และรหัสผ่านที่ถูกต้อง มาระบุว่าการเข้าสู่ระบบและรหัสผ่านใดที่ถือว่าถูกต้อง:

$ validName = 'ฉันเป็นของฉัน!';

$ validPass = 'รหัสผ่านลับ';

จากนั้นเราตรวจสอบเพื่อดูว่าค่าที่ส่งจากแบบฟอร์มตรงกับค่าที่ถูกต้องหรือไม่ เนื่องจากเราได้ระบุวิธีการถ่ายโอนข้อมูล POST ในแบบฟอร์ม จึงควรอ่านจากตัวแปร superglobal $ _POST:

ถ้า ($ _ POST ['ชื่อผู้ใช้'] == $ validName && $ _POST ['userPass'] == $ validPass) {

$ _SESSION ['ชื่อผู้ใช้'] = $ validName;

ส่วนหัว ("ตำแหน่ง: index.php");

ทางออก;

}

ที่นี่รหัสในวงเล็บปีกกา {} จะถูกดำเนินการด้วยค่าที่ถูกต้องของชื่อผู้ใช้และรหัสผ่าน ในบรรทัด $ _SESSION ['userName'] = $ validName; ma เราเขียนตัวแปรชื่อ 'userName' ในเซสชั่นที่มีการเข้าสู่ระบบของผู้ใช้ที่ได้รับอนุญาตในขณะนี้ นี่จะเป็นเครื่องหมายที่เปิดให้เขาเข้าถึงได้ทุกที่ ตราบใดที่เซสชันปัจจุบันของเขายังใช้ได้

และในกรณีที่กรอกข้อมูลลงในแบบฟอร์มไม่ถูกต้อง ให้เพิ่มข้อความที่เหมาะสม:

สะท้อนอย่างอื่น"

เข้าสู่ระบบหรือรหัสผ่านไม่ถูกต้อง!

;

รหัสทั้งหมดที่ต้องบันทึกลงในไฟล์ชื่อ login.php จะมีลักษณะดังนี้:

<?php

session_start ();

ถ้า ($ _ SESSION ['ชื่อผู้ใช้']) {

ส่วนหัว ("ตำแหน่ง: index.php");

ทางออก;

}

$ validName = 'ฉันเป็นของฉัน!';

$ validPass = 'รหัสผ่านลับ';

ถ้า ($ _ POST ['ชื่อผู้ใช้'] == $ validName && $ _POST ['userPass'] == $ validPass) {

$ _SESSION ['ชื่อผู้ใช้'] = $ validName;

ส่วนหัว ("ตำแหน่ง: index.php");

ทางออก;

}

สะท้อนอย่างอื่น"

เข้าสู่ระบบหรือรหัสผ่านไม่ถูกต้อง!

;

?>

เข้าสู่ระบบ:

รหัสผ่าน:

ขั้นตอนที่ 2

ขั้นตอนที่ 2: สร้างบล็อกการอนุญาต - ไฟล์แยกต่างหากที่จะเชื่อมต่อกับแต่ละเพจที่ต้องการการป้องกันด้วยรหัสผ่าน ไฟล์นี้จะมีเพียง php-code ดังนั้นนามสกุลจะเป็น "php" และเราจะตั้งชื่อตามประเพณีสำหรับไฟล์ดังกล่าว - "auth" นั่นคือ "auth.php" และที่นี่เช่นกันทันทีหลังจากแท็กเปิด <? Php ควรมีคำแนะนำในการเริ่มเซสชัน:

session_start ();

เราสามารถอ่านตัวแปรทั้งหมดที่เก็บอยู่ในเซสชันจากอาร์เรย์ superglobal $ _SESSION เราจำเป็นต้องตรวจสอบค่าของตัวแปร "ชื่อผู้ใช้" - หากผู้เยี่ยมชมยังไม่ได้เข้าสู่ระบบ ค่านั้นจะไม่อยู่ในอาร์เรย์ และเราจะเปลี่ยนเส้นทางไปยังหน้าเพื่อป้อนชื่อผู้ใช้และรหัสผ่าน:

ถ้า (! $ _ 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 - รหัสผ่าน