โค้ดนี้เป็นโค้ด login ที่มีหน้าตาเหมือนกับกรอบ login ของเว็บผมในเวอร์ชั่นที่เป็น AJAX บันทึกคนที่ login ลงไฟล์ สำหรับเอาไว้แสดงรายชื่อคน online ได้

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

<? 
 ob_start();

 $action = $_GET[action];

 if ( $action == "login" )  {   //สำหรับสมาชิก ลงทะเบียน หรือ เข้าระบบ   $user = $_POST[user];   $passwd = $_POST[passwd];

  echo "ทำการตรวจสอบความถูกต้องของสมาชิกที่นี่ และทำการเข้าระบบ<br />";   echo "ด้วยการบันทึกลง Cookie หรือ Seesion<br />";   echo "user=$user<br />";   echo "passwd=$passwd<br />";   echo "สมมุติให้ Login สำเร็จ ถ้า Login ไม่สำเร็จให้ Unset($user)<br /><br />";

  //บันทึกว่า user นี้เข้าระบบแล้ว สำหรับแสดงว่า user นี้ online   $f = "user.dat";   $online = false;

  if ( file_exists( $f ) )   {    $fr = file( $f ); //อ่านข้อมูลจากไฟล์ลงบน array (เป็นบรรทัด)    for( $i = 0 ; $i < count( $fr ) && !$online ; $i++ )    {     $online = ( trim( $fr[$i] ) == $user ); //ตรวจสอบ ว่ามี user ซ้ำหรือไม่    };   };

  if ( !$online ) //ถ้าตรวจสอบแล้ว ไม่เคยมี user นี้ Login   {    $fw = fopen( $f , "w" ); //เปิดไฟล์เพื่อเขียน    for( $i = 0 ; $i < count( $fr ) && !$online ; $i++ )    {     fputs( $fw , trim( $fr[$i] )." " ); //บันทึกรายการ user เดิม    };    fputs( $fw , "$user " ); //บันทึก user ใหม่    fclose( $fw ); //ปิดไฟล์

   //บันทึก ลง Cookie เมื่อการ Login สมบูรณ์    setCookie( "user" , $user , time() + 3600 * 24 * 365 ); //กำหนดให้ cookie หมดเวลาใน 1 ปี    setCookie( "passwd" , $passwd , time() + 3600 * 24 * 365 ); //กำหนดให้ cookie หมดเวลาใน 1 ปี   }   else   {    echo "<font color='red'>ชื่อนี้ Login แล้ว<br />ขออภัย กรุณา Login โดยใช้ User อื่น</font>";    $user = '';   };  }  else if ( $action == "logout" )  {   $f = "user.dat";   $user = $_COOKIE[user]; //อ่าน user จาก cookie   if ( file_exists( $f ) )   {    $fr = file( $f ); //อ่านข้อมูลจากไฟล์ลงบน array (เป็นบรรทัด)    $fw = fopen( $f , "w" ); //เปิดไฟล์เพื่อเขียน    for( $i = 0 ; $i < count( $fr ) ; $i++ )    {     if ( trim( $fr[$i] ) != $user )     {      fputs( $fw , trim( $fr[$i] )." " ); //บันทึกรายการ user เดิม     };    };    fclose( $fw ); //ปิดไฟล์   };   $user = ''; //ลบ user   //Logout ลบ cookie ออก   setCookie( "user" , "" );   setCookie( "passwd" , "" );  }; ?> <table border="0" cellspacing="1" cellpadding="0" bgcolor="black"> <tr><td background="btn_blue.gif"><img src="btn_blue.gif" /></td> </tr> <tr><td> <table border="0" cellspacing="0" cellpadding="4"> <tr><td bgcolor="#D3E4F5" align="center"> <table bgcolor="#999999" cellspacing="0" cellpadding="1" width="100%"><tr><td> <table cellspacing="5" cellpadding="0" background="lbkg.gif" width="100%"> <tr><td colspan="2" align="center">g-<font face="Arial" size="4" color="red">O</font>-r-a-g-o-d.com</td></tr> <tr><td colspan="2" align="center"><font size="1" color="#666666">แหล่งเรียนรู้จากซอร์สโค้ด<br />และแอพพลิเคชั่น</font></td></tr> <?  if ( $user != "" )  //ถ้า Login สำเร็จให้เก็บ user ไว้ และมาแสดง user  {   echo "<tr><td colspan='2' align='center'>สวัสดี คุณ $user</td></tr>";   echo "<tr><td colspan='2' align='center'><a href='?action=logout'>Logout</a></td></tr>";  }  else //ถ้า Login ไม่สำเร็จ กลับมาแสดงตารางกรอก password ใหม่  { ?> <form action="?action=login" method="post" name="login_form" id="login_form" onsubmit="return check_login()"> <tr><td align="right"><font color="#555555" size="1">user : </font></td><td><input size="15" type="text" name="user" maxlength="15" class="red" /></td></tr> <tr><td align="right"><font color="#555555" size="1">passwd : </font></td><td><input size="15" type="password" name="passwd" maxlength="15" class="red" /></td></tr> <tr><td align="right" colspan="2"><input type="submit" name="submit" value="เข้าระบบ" class="red" title="สมาชิก เข้าระบบ" /></td></tr> </form> <?  }; ?> </table> </td></tr></table> </td></tr> </table> </td></tr> </table>

<script language="JavaScript" type="text/javascript"> function check_login() {  var v1 = document.login_form.user.value;  var v2 = document.login_form.passwd.value;

 if ( v1.length == 0 )  {   alert('กรุณาป้อน Username ก่อน');   document.login_form.user.focus();   return false;  }  else if ( v2.length == 0 )  {   alert('กรุณาป้อน Password ก่อน') ;   document.login_form.passwd.focus();   return false;  };  return true; }; </script>


สำหรับการตรวจสอบว่ามีใคร login บ้าง สามารถดูได้จากไฟล์ user.dat ครับ