authentication คืออะไร พูดง่าย ๆ ที่สุด ก็คือ การป้องกันการเข้าถึงข้อมูลโดยการใช้ username และ password ในบทความนี้เราจะมา authentication ด้วยภาษาสคริปอย่าง php กัน แต่คุณจะต้องติดตั้ง apache module นั่นก็หมายความว่าแบบ CGI นั้นก็ใช้ไม่ได้นั่นเอง
ดูโคดตัวอย่างกันคับ ในที่นี้สมมติว่าเราป้องกันการเข้าถึงด้วย username “myuser” และ password “mypass”
-
<?php
-
if ($_SERVER[‘PHP_AUTH_USER’] != "mysuser" or $_SERVER[‘PHP_AUTH_PW’] != "mypass"):
-
?>
-
<HTML>
-
<HEAD><TITLE>Authorization Failed</TITLE></HEAD>
-
<BODY>
-
<H1>Authorization Failed</H1>
-
<P>Without a valid username and password,
-
access to this page cannot be granted.
-
Please click "reload" and enter a
-
username and password when prompted.
-
</P>
-
</BODY>
-
</HTML>
-
<?php else: ?>
-
…เนื้อหาในหน้าเว็บที่ต้องการป้องกันการเข้าถึง…
-
<?php endif; ?>
$_SERVER['PHP_AUTH_USER'] และ $_SERVER['PHP_AUTH_PW'] คือตัวแปรแบบ global ที่ php จัดเตรียมไว้ให้ โดยข้อมูลในตัวแปรสองตัวนี้จะได้มาจาก username และ password ที่ผู้ใช้ได้กรอกเข้าไปเมื่อมีการร้องขอข้อมูล ถ้าหากว่าเราตรวจสอบแล้วข้อมูลที่ได้มาไม่ถูกต้องกับที่เรากำหนดไว้เราก็จะสั่งให้ HTTP header 2 ตัวข้างล่างทำงาน
บรรทัดนี้เป็นคำสั่งที่ระบุว่าการร้องขอหน้านี้จะต้องใส่ username และ password
บรรทัดนี้บอกให้เบราเซอร์ว่า username และ password ไม่ถูกต้อง และสั่งให้หน้าต่างกรอก username และ password เด้งขึ้นมา
หากคุณต้องการ authenticate ทุก ๆ หน้าในเว็บคุณ แนะนำให้เก็บโคดนี้ไว้ในไฟล์ที่แยกเฉพาะ และ include ไฟล์นี้เข้าไปในหน้าที่ต้องการ authenticate
References:

July 21st, 2008 เมื่อ 10:13 am
แวะมาเยี่ยมครับ
September 15th, 2008 เมื่อ 10:05 pm
มาเยี่มยม นะท่านเทพ