วันศุกร์ที่ 21 พฤศจิกายน พ.ศ. 2557

บทความเกี่ยวกับ PHP


ECHO() ,Exit() ฟังก์ชั่นเล็ก ๆ ที่ไม่ธรรมดา เครื่องมือ DEBUG ชั้นยอด


   หลาย ๆ คนคงจะคุ้นเคยกันดี สำหรับฟังก์ชั่น ECHO() ซึ่งเป็นฟังก์ชั่นเล็ก ๆ ที่ใช้แสดงข้อความต่าง ๆ
สามารถนำมาประยุคใช้ได้หลากหลายรูปแบบตามแต่ความถนัดและความเคยชินของผู้เขียน เช่น 
       การแสดงข้อความ รุปแบบการใช้ <? echo "ข้อความ" ?>  การแสดงค่าของตัวแปร รุปแบบการใช้ <? echo $ตัวแปร ?และอื่น ๆ อีกมากมาย มาว่ากันเรื่อง ECHO() กับการ DEGUG 


  สำหรับการเขียนระบบที่มีการเชื่อมต่อกับฐานข้อมูลนั้น เมื่อมีความผิดพลาดเกิดขึ้น
              - ฟังก์ชั่น ECHO() สามารถช่วยได้อย่างดีทีเดียว เช่น เวลาเพิ่มข้อมูลแล้วเกิด Error ให้สันนิฐานได้เลยว่าต้องมีการผิดพลาดที่คำสั่ง SQL แน่ ๆ ขั้นแรกก็ให้ทำการ ECHO() ตัวแปรที่เก็บคำสั่ง SQL นั่นก่อนเลย เช่น

        if($submit=="ADD"){
       $sql="INSERT INTO tbl_sex set sex_id='".$sex_id."'"',sex_name='".$sex_name."' ";
       echo $sql;
       exit();
       mysql_query($sql); // โดยมากมักจะ Error ตรงบรรทัดหรือคำสั่ง mysql_query(); นี้บ่อยมาก
}
               
                echo $sql; // แค่นี้เราก็จะรู้ว่ามันติดอะไร ตรงไหน และจะแก้ไขอย่างไรต่อไป เช่น ตัวแปรต่าง ๆ มีค่าหรือไม่ รูปแบบคำสั่งถูกต้องหรือไม่ เราก็สามารถ Copy โค้ดที่ได้ไปทดสอบที่ Mysql ได้เลย
                 
                exit(); // คำสั่งนี้จะเป็นการให้จบการทำงานครับ คือ ไม่ต้องประมวลผลบรรทัดต่อไป หรือ แสดงผล อีกต่อไป เพื่อเป็นการไม่เสียเวลาครับ เพราะเราแค่ต้องการทราบว่าตัวแปรนั้น มีค่าอะไร
                 
   สองคำสั่งนี้ เป็นเครื่องมือ Debug ที่ผมใช้บ่อยมาก ถือว่าจะขาดไม่ได้เลยทีเดียว
   ลองเอาไปใช้ดูนะครับ คิดว่าคงจะเป็นประโยชน์อยู่บ้าง ไม่มาก ก็น้อยนะครับ
                 
   เอาเป็นว่า ไม่รู้ ไม่แน่ใจ ก็ "ECHO" โลด รับรองจะไม่ผิดหวัง


Confirm() Function JavaScript การยืนยันการดำเนินการ ง่าย ๆ แต่สำคัญ

    JavaScript นับเป็นเครื่องมือที่สำคัญและจำเป็นอยู่มากสำหรับการเขียนเว็บด้วย PHP เนื่องจาก PHP ยังไม่มีฟังก์ชั่นที่สนับสนุน เพราะ PHP จะทำงานเฉพาะที่ฝั่ง Server คือ การจะทำงานได้นั้นจะต้องส่งค่าไปยังเครื่อง Server เท่านั้น จึงจะสามารถประมวลผลต่าง ๆ ได้ ซึ่งคำสั่ง และลูกเล่นต่าง ๆ คิดว่าหลาย ๆ คนคงจะเคยเห็น เคยใช้งานกันมาบ้างแล้ว
ในบทความนี้ จะขอนำเสนอฟังก์ชั่น Javascript ที่ใช้บ่อยๆ อาจจะไม่ใช่ฟังก์ชั่นที่ซับซ้อนมากมาย แต่ก็สำคัญและจำเป็นต้องใช้

Confirm Function : ฟังก์ชั่นสำหรับยืนยันการดำเนินการ รูปแบบเป็นดังนี้
แบบที่ 1 แบบมาตราฐาน ใช้กันทั่วไป
<script language="JavaScript">
       function chkdel(){
       if(confirm(' กรุณายืนยันการลบอีกครั้ง !!! ')){
       return true; // ถ้าตกลง OK โปรแกรมก็จะทำงานต่อไป
      }else{
        return false; // ถ้าตอบ Cancel ก็คือไม่ต้องทำอะไร
              }
       }
</script>
รูปแบบการเรียกใช้ฟังก์ชั่น
<a href="sex.php?submit=DEL&id_delete=1" OnClick="return chkdel();">
<img src="style/images/del.png"></a>


แบบที่ 2 สั้น ๆ ง่าย ๆ กว่ากันเยอะ
< a href="sex.php?submit=DEL&id_delete=1" onclick="return confirm('กรุณายืนยันการลบอีกครั้ง !!!')" >
Delete </ a >

โค้ดตัวอย่างนี้เป็นการยืนยันการลบข้อมูล


ทั้งสองแบบ ก็ได้ผลเหมือนกัน ใครชอบแบบไหนก็แล้วแต่จะเลือก
 เมื่อผู้ใช้งานกดที่ปุ่ม Delete ( จะเป็นปุ่ม หรือ เป็นแบบปุ่มรูปภาพก็ได้ )
 ก็จะเข้าเหตุการ Onclick ที่เราเขียนโค้ดไว้
 Javascript ก็จะทำงานล่ะ คือ แสดงหน้าจอยืนยัน ดังรูปนะครับ เพื่อให้ผู้ใช้เลือก
 หากผู้ใช้งานตกลงยืนยันการลบนี้ ( กดที่ปุ่ม OK ) ระบบก็จะดำเนินการต่อไป ตามที่เราต้องการ
 ในที่นี้คือ sex.php?submit=DEL&id_delete=1 (ส่งตัวแปร submit และตัวแปร id_delete ไปที่หน้า sex.php )

เราก็ไปเขียนโค้ดที่หน้า sex.php ไว้ดังตัวอย่างนี้ครับ

<?
       if ($submit=="DEL"){
              $sql="delete from tbl_sex where sex_id =".$id_delete;
              mysql_query($sql);
       }
?>

การแทรก Javascript ใน PHP เรื่องกล้วย ๆ ที่จำเป็นต้องรู้

     หลายคนอาจจะกำลังเจอกับปัญหานี้อยู่ และหลายคนอาจจะค้นคว้าหามาได้และผ่านมาได้เรียบร้อยแล้ว แต่ยังไงก็ตาม เมื่อก่อนผมเองก็ไม่รู้วิธีเหมือนกัน ก็เลยอยากจะแบ่งปัน และเผยแพร่ ไว เผื่อคนอื่น ๆ ที่มีปัญหา จะได้สามารถสืบค้นได้ต่อไปในอนาคต
ที่จริงนั้น การแทรกโค้ด Javascript ไว้ใน PHP ก็มีอยู่หลายวิธี ซึ่งแต่ละวิธีก็จะยาก ง่าย ต่างกันไป        
ตามแต่ผู้เขียนโค้ดแต่ละคนจะถนัด
บทความนี้จะขอกล่าวถึงรูปแบบที่ผมใช้เขียนบ่อย ๆ นะครับ
 จะแทรกลงตรงกลางระหว่างโค้ด PHP จริง ๆ หลาย ๆ คนอาจจะไม่ได้ใช้แบบนี้
สมมุติว่า เราจะค้นหา หรือ เรียกดูข้อมูล แล้วไม่มีข้อมูลที่ต้องการอยู่จริง ก็อยากจะให้แสดงผลว่า ไม่พบข้อมูล
เป็นหน้าต่างโต้ตอบขึ้นมาแจ้งให้ผู้ใช้งานทราบ ตามรูปนะครับ
<?
     $Qtotal = mysql_query("select * from tbl_admin");
     $total = mysql_num_rows($Qtotal);
     if($total==0){
?>
     <script language="JavaScript">alert("ไม่พบข้อมูลที่ค้นหา ข้อมูลดังกล่าวอาจไม่มีอยู่ในระบบ \r\n\r\n      กรุณาลองใหม่อีกครั้งครับ");</script>
     <script language="JavaScript">window.location.href = "student.php";</script>

<? } ?>


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

การแทรก PHP ใน Javascript เรื่องกล้วย ๆ ที่อาจจะต้องได้ใช้

       การแทรก PHP ใน Javascript นี้ หลายคนอาจจะไม่เคยได้ใช้ หรืออาจจะไม่เคยรู้มาก่อน แต่ในความเป็นจริง มันก็ไม่ค่อยได้ใช้กันเท่าไหร่หรอก เพราะว่ามันค่อนข้างจะยุ่งยากสำหรับหลาย ๆ คน  เช่น ถ้าเราอยากจะส่งตัวแปรของ PHP ไปแสดงในฟังก์ชั่น Alert(); ของ Javascript เพราะว่าจะได้ดูดี หรือ สวยงาม กว่า การแสดงผลแบบธรรมดา ๆ
เหตุผลแค่นี้หล่ะครับ เป็นที่มาของการแทรก PHP ใน Javascript แต่มันก็ไม่ใช่เรื่องยากเย็นอะไร ผมก็รู้มาแค่งู ๆ ปลา ๆ เหมือนกัน
                 
         ตัวอย่างโค้ด


<?
     $msg="Code-Father.com";
     $msg=$msg."ยินดีต้อนรับ ทุก ๆ ท่าน";
     $msg=$msg."ขอให้ทุกท่านโชคดี มีตังค์ใช้ และมีสุขภาพแข็งแรง ๆนะครับ ";


?>

แบบที่ 1

     <script type="text/javascript">
          var strMessage = '<?=$msg?>' ;// สร้างตัวแปรมารับก่อน          alert (strMessage);
     </script>


แบบที่ 2

     <script type="text/javascript">
          alert ('<?=$msg?>'); // แบบนี้ก็ใช้
     </script>


จากตัวอย่างจะเห็นได้ว่าข้อความยังไม่มีการขึ้นบรรทัดใหม่ มองดูแล้วก็ไม่สวยงามเท่าใดนัก
จากการลองใช้ \r\n ดูแล้ว แต่มันไม่แสดงผลอะไรเลย ก็เลยสรุปว่า \r\n นั้น ใช้ไม่ได้

\r ก็คือสั่งให้ cursor return กลับไปยังต้นบรรทัด รหัส ascii = 10
\n ก็คือให้ขึ้นบรรทัดใหม่ รหัส ascii = 13

                ก็เลยต้องหาวิธีใหม่ ต้องใช้ฟังก์ชั่น "ค้นหา" และ "แทนที่" เข้ามาช่วย ดังตัวอย่างด้านล่างนี้
การที่เราจะค้นหาได้นั้น เราก็ต้องสร้างคำที่จะค้นหา เพื่อที่จะได้แทนที่ขึ้นมาก่อน
จึงเลือกใช้ XX (ไม่ได้โรคจิตนะครับ) จากนั้นก็ใช้ฟังก์ชั่น replace() มาทำการค้นหาและแทนที่ด้วย "\r=n"

<?
     $msg="Code-Father.com XX ";
     $msg=$msg."ยินดีต้อนรับ ทุก ๆ ท่าน XX ";
     $msg=$msg."ขอให้ทุกท่านโชคดี มีตังค์ใช้ และมีสุขภาพแข็งแรง ๆ นะครับ ";

?>
     <script type="text/javascript">
          var strMessage = '<?=$msg?>' ; // สร้างตัวแปรมารับก่อนนะครับ
          alert (strMessage.replace(/x/ig,"\r\n"));
     </script>

* การสร้างตัวแปรมารับนั้น เพื่อที่จะสามารถนำตัวแปรใหม่ไปใช้งานต่อได้อีก หากใช้ตัวแปรของ PHP โดยตรง
* จะไม่สามารถทำได้ จึงต้องสร้างตัวแปรของ Javascript ขึ้นมารองรับอีกทีนึง





PHP Function Date การแปลงวันที่จาก ค.ศ. เป็น พ.ศ. ( วันที่แบบไทย ๆ สำหรับคนไทยครับ )

                 หลาย ๆ คน คงจะเคยเจอปัญหาและหลายคนอาจจะกำลังมีปัญหาเกี่ยวกับเรื่องวันที่ไม่ว่าจะเป็นการเขียนโปรแกรมด้วยภาษาอะไร ก็ต้องเจอปัญหาเดียวกันนี้ทั้งนั้น ถ้ารู้เทคนิคและวิธีการก็จะผ่านมันไปได้ แต่ละคนก็จะมีเทคนิคที่แตกต่างกันออกไป  ซึ่งทั้งหมดนี้สามารถค้นหาได้จากอินเตอร์เน็ต
                 บทความนี้จะพูดถึงการแปลงวันที่จาก ค.ศ. เป็น พ.ศ. เอาแบบง่าย ๆ นี่หล่ะ ถ้าใครไม่เข้าใจอะไรตรงไหน ก็อย่าเก็บเอาไว้คนเดียว
                 
                ตัวอย่างโค้ด เป็นดังนี้ครับ (สามารถเอาไปไว้ใช้งานได้เลย)
<?
     $thaiweek=array("วันอาทิตย์","วันจันทร์","วันอังคาร","วันพุธ","วันพฤหัส","วันศุกร์","วันเสาร์");

     $thaimonth=array("มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","      มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม");

     echo $thaiweek[date("w")] ,"ที่",date(" j "), $thaimonth[date(" m ")-1] , " พ.ศ. ",date(" Y ")+543;
     // ผลลัพธ์จะได้ดังนี้ครับ วันเสาร์ที่ 26 กันยายน พ.ศ. 2552
?>


อธิบายโค้ดกันเล็กน้อย เพื่อความเข้าใจที่ถูกต้อง ตรงกัน
$thaiweek เป็นตัวแปรที่ใช้เก็บวันครับ จะเก็บแบบ array() ข้อมูลแรกจะเริ่มจากศูนย์(0) เสมอ
หากต้องการทดสอบว่า array() ตัวไหนเก็บค่าอะไรไว้ ก็ลอง Echo() ดูกันได้ ดังนี้

echo $thaiweek[0]; จะได้ผล = วันอาทิตย์
echo $thaiweek[1]; จะได้ผล = วันจันทร์
echo $thaiweek[2]; จะได้ผล = วันอังคาร
echo $thaiweek[3]; จะได้ผล = วันพุธ
echo $thaiweek[4]; จะได้ผล = วันพฤหัส
echo $thaiweek[5]; จะได้ผล = วันศุกร์
echo $thaiweek[6]; จะได้ผล = วันเสาร์

หากต้องการรู้ว่า เราส่งค่าอะไรเข้าไปในฟังก์ชั่น thaiweek ก็ให้ลอง Echo date("w"); ดูครับ
สำหรับตัวอย่างนี้จะได้ค่า 6 จากโค้ด $thaiweek[date("w")] จะเป็นการส่งค่า คือ 6 เข้าไปเช็ค
ในฟังก์ชั่น thaiweek ก็จะได้ค่าเป็น วันเสาร์
ส่วนฟังก์ชั่น thaimonth นั่นก็มีหลักการทำงานเช่นเดียวกันกับฟังก์ชั่น thaiweek ครับ
สิ่งที่แตกต่างก็จะอยู่ที่ตอนส่งค่าเข้าไปตรวจเช็ค $thaimonth[date(" m ")-1] จะสังเกตุเห็นว่า จะมี -1 อยู่ด้วย
อันนี้ก็เพราะว่าฟังก์ชั่น date(" m ") จะได้ค่าตัวเลขเดือนออกมา ในที่นี้คือ 09 (เดือนกันยายน) ซึ่งบางคนอาจจะบอกว่า
"อ้าว ไม่ก็ถูกแล้วนี่ ทำไมไม่ส่งค่าเข้าไปตรง ๆ เลยหล่ะ"
ถ้าส่งค่า 9 เข้าไปเช็ค ผลที่ได้จะเป็นเดือนตุลาคม  เพราะอะไรนะหรอ
ก็เพราะว่าในตัวแปร array() ที่ชื่อว่า thaimonth() นั้น ข้อมูลแรกมันจะเริ่มต้นที่ศูนย์ (0)
จึงเป็นเหตุที่เราต้องมีการ -1 เข้าไป เพื่อให้ได้ผลลัพธ์ที่ถูกต้องนั่นเอง
ส่วนโค้ดตรงส่วน date(" Y ")+543; นั้น ก็อธิบายได้ว่า
เมื่อเราลอง Echo date(" Y ") ค่าที่ได้จะเป็นปี ค.ศ. นะครับ ซึ่งเราไม่ต้องการครับ
และจากการคำนวณ ปี ค.ศ. กับปี พ.ศ. นั้นจะห่างกันอยู่ 543 ปี
จึงเป็นที่มาของการ +543 เข้าไปในโค้ดอย่างที่เห็นครับ จะได้เป็น 2009+543 = 2552 ตามความต้องการ


การค้นหาข้อมูลในฐานข้อมูล ตามชื่อฟิลด์ Code PHP Search In Mysql Database By Fields



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

         ตัวอย่างนี้จะเป็นการค้นหาข้อมูลนักเรียน จะมีค้นหาตามรหัสนักศึกษา ตามชื่อ ตามนามสกุล และตามกลุ่มเรียน


โค้ดในส่วนของฟอร์มค้นหา

<form name="form1" method="post" action="student.php?show=OK&strSearch=Y">
<table width="100%" >
<tr>
<td width="36%">
<div align="right">ค้นหา : 
<select name="Search2">
     <option value="Student_ID" <? if($Search2=="Student_ID"){ ?>selected<? }?>>รหัสนักศึกษา</option>
     <option value="FirstName" <? if($Search2=="FirstName"){ ?>selected<? }?>>ชื่อ</option>
     <option value="LastName" <? if($Search2=="LastName"){ ?>selected<? }?>>นามสกุล</option>
     <option value="Group_Study" <? if($Search2=="Group_Study"){ ?>selected<? }?>>กลุ่มเรียน</option>
</select></div>
</td>
<td width="64%">
     <input name="Search" type="text" size="20" value="<? echo $Search?>"> 
     <input type="submit" name="submit" value="Search"> ตามรหัสนักศึกษา,ชื่อ, นามสกุล, กลุ่มเรียน 
</td>
</tr>
</table>
</form>

$Search = ตัวแปรที่ใช้เก็บข้อความที่เราค้นหาครับ เมื่อส่งค่าไปค้นหาแล้วก็จะนำค่าตัวแปรนี้ไปแสดงไว้ในช่องค้นหาตามโค้ดนี้ <input name="Search" type="text" size="20" value="<? echo $Search?>"> เพื่อให้ผู้ใช้ได้รู้ว่าเขาค้นหาอะไร
$Search2 = เป็นตัวแปรที่ใช้เก็บชื่อฟิล์ดที่เราค้นหา เมื่อส่งค่าไปค้นหาก็จะนำตัวแปรนี้ไปตรวจสอบ ตามโค้ดนี้
<option value="Student_ID" <? if($Search2=="Student_ID"){ ?>selected<? }?>>รหัสนักศึกษา</option>
<option value="FirstName" <? if($Search2=="FirstName"){ ?>selected<? }?>>ชื่อ</option>
<option value="LastName" <? if($Search2=="LastName"){ ?>selected<? }?>>นามสกุล</option>
<option value="Group_Study" <? if($Search2=="Group_Study"){ ?>selected<? }?>>กลุ่มเรียน</option>

เพื่อให้ผู้ใช้ได้รู้ว่าเขาได้เลือกค้นหาตามเงื่อนไขได เช่น ถ้าผู้ใช้เลือกค้นหาตาม ชื่อ เมื่อค้นหาเสร็จระบบก็จะตรวจเช็ค
และทำการโฟกัส หรือ Selected ไว้ที่ ชื่อ

* * * ถ้าไม่ส่งค่าตัวแปรทั้ง 2 ตัวนี้ ผู้ใช้ก็จะไม่ทราบว่าตัวเองได้ค้นหาอะไร ตามเงื่อนไขอะไร 

การทำระบบล๊อคอิน ล๊อคเอ้า และป้องกันการลักไก่ PHP Code LOGIN LOGOUT


                สำหรับนักเขียนโปรแกรม ไม่ว่าจะเป็นด้วยภาษาอะไรก็ตามแต่ก็ต้องเจอแน่ ๆ กับระบบสมาชิก หรือ ระบบล๊อกอิน ล๊อกเอ้าสำหรับมือใหม่นั้น ก็ถือว่าอาจจะงง ๆ ไปไม่ถูกเลยทีเดียว ถ้าไม่มีตัวอย่างที่เข้าใจง่าย ๆ มาศึกษา
               ดังนั้น บทความนี้ ผมจึงเต็มใจเสนอครับ เกี่ยวกับระบบดังกล่าวเอาแบบขึ้นพื้นฐาน ที่ใช้งานได้จริง ส่วนใครจะเอาไปต่อยอด เพิ่มเติมให้สวยงาม อลังการงานสร้างก็ได้


 กระบวนการ การทำงานของระบบนี้

- ผู้ใช้กรอกชื่อและรหัสผ่าน สำหรับเข้าใช้งาน คลิกที่ปุ่ม LOG - IN
- ระบบจะทำการตรวจเช็คว่าผู้ใช้นี้ และรหัสผ่านนี้ มีอยู่ในระบบหรือไม่
- ถ้าไม่มีก็แจ้งให้สมัครสมาชิก
- ถ้ามีก็ให้เข้าใช้งานได้ โดยระบบจะจดจำสมาชิกไว้ด้วย โดยตัวแปร _SESSION
- ผู้ใช้ยังไม่ล๊อกอินเข้าสู่ระบบ จะไม่สามารถเข้าใช้งานหน้านั้น ๆ ได้ (ถ้าไม่เขียนโค้ดดักไว้ บางคนก็จะ Bookmark หน้านั้นไว้
แล้วก็เข้ามาดูได้ในภายหลัง โดยไม่สมัีครสมาชิก)
- หากผู้ใช้ต้องการออกจากระบบก็ให้ทำการ ล๊อกเอ้า
<? // เมื่อกรอกชื่อ รหัส แล้วคลิกปุ่ม LOG - IN ก็จะเข้าเงื่อนไขการตรวจเช็ค

if($OK==" LOG - IN " ){ // ถ้ามีการคลิกปุ่ม LOG - IN
     ob_start();
     SESSION_START(); // ประกาศตัวแปรไว้สำหรับจำผู้ใช้งาน
     SESSION_REGISTER("user"); // ตั้งชื่อตัวแปร
     $sql="Select * from user Where user_name ='".$username."' and pwd='".$password2."' and status_use='Y'"; // เลือกดูข้อมูลผู้ใช้ ตามชื่อ และรหัสผ่านที่ส่งมา
     $rstTemp=mysql_query($sql);
     if(mysql_num_rows($rstTemp)==0){ // ถ้าได้ค่า rows =0 แสดงว่าชื่อ หรือ รหัสผ่าน ไม่มีอยู่ในระบบ หรือไม่ถูกต้อง
          $_SESSION["user"]=""; // เซ็ตค่าตัวแปร=ค่าว่าง
?>


<script language="JavaScript">alert("User Name หรือ Password ไม่ถูกต้อง หรืออายุการใช้งานหมด \r\n\r\nกรุณาลองใหม่อีกครั้ง หรือติดต่อเว็บมาสเตอร์ \r\n\r\nเพื่อสมัครสมาชิกใหม่ หรือต่ออายุการใช้งาน ...... ^_^\r\n\r\n ");</script> // แจ้งให้ผู้ใช้ทราบว่า การล๊อกอินไม่สำเร็จ
<?
     }else{ // ถ้าได้ค่า rows=1 แสดงว่าชื่อและรหัสผ่านถูกต้อง
          $_SESSION["user"]=$username; // เซ็ตค่าผู้ใช้ให้กับตัวแปร
          $_SESSION["user_name"]=mysql_result($rstTemp,0,"name"); // สร้างตัวแปรเพื่อเก็บชื่อจริงของผู้ใช้
          $uName=mysql_result($rstTemp,0,"name"); // ตัวแปรเก็บชื่อจริงอีกตัว เอาไว้ใช้งานข้างล่างนี้หล่ะ
?>

<script language="JavaScript">alert("สวัสดีครับคุณ <?=$uName?> \r\n\r\nยินดีต้อนรับเข้าสู้เว็บไซต์ ( www.สูตรหวย.com ) \r\n\r\nขอให้โชคดี นะครับ ...... ^_^\r\n\r\n ");
</script> // แจ้งให้ผู้ใช้ทราบว่า การล๊อกอินได้เสร็จสมบูรณ์แล้ว
<?
     }
}?>
               
โค้ดป้องกันการลักไก่ เข้าใช้งานโดยไม่ได้รับอนุญาติ เช่น หน้าโพส เราจะให้เฉพาะสมาชิกเท่านั้นที่จะสามารถโพสได้
แต่ถ้าเราไ่ม่ป้องกันเอาไว้ พวกหัวใสเขาก็จะพิมพ์ ที่อยู่ของหน้านั้น ๆ เข้าใช้งานได้สบายอุราเลยทีเดียว
ดังนั้นเราจึงจำเป็นต้องป้องกันหน้านั้น ๆ ไว้ โดยอาจจะสร้างเป็นไฟล์ Check_User.php ขึ้นมาก็ได้ เพราะถ้าเผื่อมีหลายหน้า
โค้ดมันจะซ้ำซ้อน และเวลาปรับเปลี่ยนจะยุ่งยากมาก หากวางไว้ทุก ๆ ไฟล์


  โค้ดตรวจสอบ


<?
session_start();
if($_SESSION['user'] ==""){ // ถ้า $_SESSION['user'=ค่าว่าง แสดงว่าเขากำลังจะมาลักไก่เรา
?>
<script type="text/javascript">
alert ('สงวนสิทธิ์การใช้งานเฉพาะสมาชิกเท่านั้น หรือ \r\n \r\n ถ้าคุณเป็นสมาชิกอยู่แล้ว กรุณาล๊อกอินเข้าสู่ระบบก่อนนะครับ\r\n \r\nหรือ ถ้าคุณยังไม่สมัครเป็นสมาชิก\r\nกรุณาติดต่อสมัครสมาชิก เพื่อใช้งานด้วยนะครับ\r\n \r\n ...ขอบคุณครับ'); // เราก็แจ้งเลยว่า หยุด อย่าขยับ เจ้าหน้าที่ล้อมไว้หมดแล้ว
window.location="index.php"; // แล้วก็ส่งเขากลับไปหน้าแรก หรือหน้าสำหรับสมัครสมาชิกเลย
</script>
<? } ?>


   โค้ดส่วนของการล๊อกเอ้า Log-OUt



<?
if($Logout=="Y"){ // เช็คว่าผู้ใช้ได้คลิกล๊อกเอ้าหรือไม่ ถ้าใช่ก็ต่อเลย
session_start();
session_destroy(); // ล้างค่าตัวแปร Session
$_SESSION["user"]=""; // กำหนดค่าว่างเปล่าให้กับตัวแปร
?>
<script language="JavaScript">alert("คุณได้ออกจากระบบเรียบร้อยแล้วครับ \r\n\r\n ขอบคุณที่สละเวลาแวะเข้ามาเยี่ยมชมเว็บไซต์เรา\r\n\r\n โอกาสหน้ามาใหม่นะครับ...... ^_^\r\n\r\n ");
</script> // แล้วก็แจ้งว่าผู้่ใช้ออกจากระบบแล้ว
<? }?>




วันพุธที่ 5 พฤศจิกายน พ.ศ. 2557

ความหมายและชนิดของฐานข้อมูล


ฐานข้อมูล

    ฐานข้อมูล หมายถึง  แหล่งที่ใช้สำหรับเก็บรวบรวมข้อมูลซึ่งอยู่ในรูปแฟ้มข้อมูลมารวมไว้ที่เดียวกัน รวมทั้งต้อง
มีส่วนของพจนานุกรมข้อมูล (data dictionary) เก็บคำอธิบายเกี่ยวกับโครงสร้างของฐานข้อมูล และเนื่องจากข้อมูลที่จัดเก็บนั้นต้องมีความสัมพันธ์ซึ่งกันและกันทำให้สามารถสืบค้น (retrieval) แก้ไข (modified) ปรับปรุงเปลี่ยนแปลงโครงสร้าง ข้อมูล (update) และจัดเรียง (sort) ได้สะดวกขึ้นโดยในการกระทำการดังที่กล่าวมาแล้ว ต้องอาศัยซอฟต์แวร์ประยุกต์สำหรับจัดการฐานข้อมูล


 ชนิดของข้อมูล (Data Type)  ใช้ระบุว่าข้อมูลในฟิลด์นั้นเป็นข้อมูลชนิดใดซึ่งประกอบด้วย

2.1 Text : ข้อมูลประเภทข้อความและตัวเลขที่ไม่ใช่คำนวณ เช่น ชื่อนักเรียน ที่อยู่ กำหนดได้ไม่เกิน 255ตัว
          2.2 Memo : ข้อมูลประเภทข้อความและตัวเลขที่มีความยาวมาก เช่น คำอธิบายต่างๆ กำหนดได้ไม่เกิน 6,400 ตัว
          2.3 Number : ข้อมูลตัวเลขที่ใช้ในการคำนวณทั้งจำนวนเต็มและทศนิยม
          2.4 Date/Time : ข้อมูล วัน เดือน ปี และเวลา
          2.5 Currency : ข้อมูลประเภทตัวเลขที่ใช้ในการคำนวณ ตัวเลขที่เกี่ยวกับสกุลเงิน
          2.6 AutoNumber : ค่าลำดับที่เพิ่มในตารางโดยอัตโนมัติ เมื่อมีการเพิ่ม Record ใหม่ (ผู้ใช้ไม่ต้องคีย์)
          2.7 Yes/No  : ข้อมูลชนิดตรรกะที่มี 2 ค่า เช่น ใช่ ไม่ใช่ / ถูก ผิด / ปิด เปิด
          2.8 OLE Object :   วัตถุหรือสิ่งอื่นๆ ที่ถูกสร้างขึ้นจากโปรแกรมอื่นๆ เช่นรูปภาพ เสียง แฟ้มเอกสาร
          2.9 Hyperlink : ข้อมูลที่ใช้เชื่อมโยงกับข้อมูลอื่นๆหรือการเชื่อมโยงในรูปแบบ Webp age
          2.10 Lookup wizard : ข้อมูลสำหรับสร้างรายงานตัวเลือก โดยตัวเลือกนั้นจะดึงค่าจาก Table หรือกำหนดเอง

โปรแกรมที่ใช้ในการออกแบบฐานข้อมูล


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


ส่วนประกอบของของโปรแกรม Access แบ่งออกเป็น 7 ชนิดคือ

 Table :
  เป็นตารางที่ใช้เก็บข้อมูลจริง เช่น ฐานข้อมูลของบริษัท รายชื่อ และที่อยู่ของลูกค้า ฯลฯ
  Queries :
  เรียกอีกอย่างว่า ตารางเสมือน ที่เกิดจากการตรึงข้อมูลตารางเดิมออกมาเป็นเสมือนกับตารางใหม่อีกอันหนึ่ง
  Form :
  เป็นแบบฟอร์มที่ใช้สำหรับแสดงและให้กรอกหรือแก้ไขข้อมูลบนจอภาพ
 Reports :
  เป็นรายงานที่ใช้แสดงข้อมูลต่าง ๆ ออกมาให้ดูได้ทั้งบนจอภาพและพิมพ์ออกบนกระดาษ  แต่ไม่สามารถแก้ไข
  ข้อมูลใด ๆ เข้าไปได้
  Pages:
  เป็นการดึงข้อมูล เป็นเครื่องมือที่ใช้สร้างเว็บเพจเพื่อแสดงข้อมูลบนอินเตอร์เน็ตหรืออินทราเน็ตหรือทำงานกับ 
  ฐานข้อมูล Accessผ่านทางเวปโดยจะทำการเชื่อมโยงกับฐานข้อมูลไว้ตลอดไปเมื่อมีการเปลี่ยนแปลงข้อมูลใน
  ฐานข้อมูลจะทำให้ข้อมูลที่แสดงบนเพจเปลี่ยนแปลงตามไปด้วย
   Macro:
  คือชุดคำสั่งย่อย ที่ใช้เสริมการทำงานภายใน Access โดยใช้คำสั่งภายใน Access นั่นเองมาเก็บเป็นชุด 
  และสั่งให้ทำงานโดยอัตโนมัติคล้าย ๆ กับ Macro ของ Excel หรือ Word นั่นเอง  เพียงแต่เป็นการนำ Macro 
  ไว้ให้เรียกใช้ได้ในที่สร้างขึ้นมาแสดง Database โดยตรง
   Module:
  เป็นโปรแกรมย่อย ที่เขียนขึ้นเป็นภาษา Visual Basic for Application (VBA) ซึ่งจะเป็นมาตรฐานเดียว
  กันกับภาษาที่ใช้เสริมการทำงานของโปรแกรมในชุด Microsoft Office

หลักการออกแบบฐานข้อมูลด้วย ACCESS

 - ควรทราบว่ามีข้อมูลอะไรบ้างที่เกี่ยวกับตารางนั้นๆเช่น ตารางนักเรียน จะต้องมีข้อมูลเกี่ยวกับ ชื่อ-สกุล วัน-เดือน-ปี เกิด
    ที่อยู่ฯลฯ
 - จะต้องลดความซ้ำซ้อนที่จะเกิดขึ้นในฐานข้อมูล โดยกำหนดฟิลด์ต่าง ๆ ให้มีความถูกต้องและเหมาะสม ซึ่งในส่วนตาราง
    จะมีฟิลด์ข้อมูลอยู่หลายฟิลด์ด้วยกัน
 - กำหนดความสัมพันธ์ระหว่างตารางโดยการสร้างคีย์หลัก(PK) ขึ้นในตารางที่เกี่ยวข้องกัน
 - กำหนดประเภทของข้อมูลให้เหมาะสมกับแต่ละฟิลด์เช่นฟิลด์ Name ควรจะเป็น Text , ฟิลด์ Birthday ควรจะเป็น Date/time สิ่งเหล่านี้คงต้องปรับปรุง-แก้ไขเพื่อให้เหมาะสมกับหน่วยงาน


การสร้างฐานข้อมูล



  หลังจากที่เราได้ทำการติดตั้ง appserv ในเครื่องของเราเรียบร้อยแล้ว ต่อมาก็จะมาพูดถึงการสร้างฐานข้อมูลเพื่อใช้สำหรับติดตั้ง WordPress ซึ่งเราจะสร้างโดยผ่านทาง phpMyAdmin ให้กับเว็บไซต์ของเรา โดยมีขั้นตออนดังนี้
 1. เปิดเว็บเบราเซอร์เข้าลิ้งค์ แล้วก็พิมพ์คำว่า http://localhost  หรือ  http://127.0.0.1 ก็จะได้หน้าตาแบบนี้ขึ้นมา




2. คลิกที่ phpMyAdmin หรือเข้าที่ลิ้งค์ http://localhost/phpmyadmin




3.3. ให้ใส่ชื่อผู้ใช้และหรัสผ่าน
o     ชื่อผู้ใช้งาน ใส่ root
o    -รหัสผ่าน อันเดียวกับตอนที่ติดตั้ง appserv ในตอนแรก




4. ให้ทำตามขั้นตอนดังต่อไปนี้
o    หมายเลข 1 ให้เลือกเป็นแบบ utf8_genneral_cl
o    หมายเลข 2 ให้ตั้งชื่อฐานข้อมูล ชื่ออะไรก็ได้แต่ต้องเป้นภาษาอังกฤษ
o    หมายเลข 3 เมื่อทำ ข้อ 1 และ 2 เสร็จแล้วก็ให้ทำตามคลิกสร้างได้เลย