PHP

นานมาแล้วได้เคยสร้าง Report ในรูปแบบไฟล์ PDF ผ่าน WEB ด้วยภาษา PHP จนลืมไปแล้วว่าทำอย่างไร...

วันนี้ถูกเจ้านายสั่งให้ทำ WEB ที่จะต้องมี Report ด้วยทำไงหว่า... ไปหาในเน็ต... ก็อ่านแล้ว งง..ๆ ทำไม่ได้ซักที คนที่เคยแนะนำก็ไม่รู้ย้ายงานไปไหนแล้ว.. เดือดร้อนต้องไปหา code เก่า ๆ มาดู เมื่อทำได้แล้วก็จดไว้ในความทรงจำซักหน่อยเผื่อวันหน้ามาดูจะได้จำได้ (สมองคนจำได้ไม่นาน...)

เริ่มต้นด้วยการลง AppServ ให้เรียบร้อย

แตกแฟ้ม adodb, demo, fpdf 3 ไฟล์ โหลดได้จาก http://www.maemohgolfcourse.com/files/fpdf.rar ผมบีบไฟล์รวมกันไว้ แตกไว้ใน C:\AppServ\www (หรือใน path ที่ต้องการ)

จากนั้นลองสร้าง Script ง่าย ๆ ชื่อ report_pdf.php

1 <?
2 //กำหนด Header ส่วนที่เกี่ยวข้อง
3 include ('adodb/adodb.inc.php');
4 define('FPDF_FONTPATH','fpdf/font/');
5 require ('fpdf/jpdf.inc.php');
6 $pdf=new JPDF();
7 $pdf->AddFont('angsana','B','angsanab.php');
8 $pdf->AddFont('angsana','','angsana.php');
9 $pdf->Open();
10 $pdf->AliasNbPages();
11 $pdf->SetMargins(20,5,10);
12 $pdf->AddPage();
13 //กำหนดวาดรูปสี่เหลี่ยม (rectangle) ไม่มีพื้นหลัง (no fill)
14 $pdf->Rect(20, 25, 175, 250 , 'D');
15 //พิมพ์ข้อความ
16 $pdf->SetXY(25,35);
17 $pdf->SetFont('angsana','B',16);$pdf->Write(10,'สวัสดีทุกท่าน');
18 //สิ้นสุดการประมวลผลและส่งออกไฟล์เป็น PDF ไฟล์
19 $pdf->Output();
20 ?>

ผลที่ได้ก็จะได้กรอบและข้อความที่เป็น pdf ดังรูปครับ สามารถสั่งพิมพ์ หรือบันทึกได้เลยครับ

ส่วนคำสั่งอื่น ๆ สามารถอ่านได้ที่ http://www.fpdf.org/en/doc/index.php 

จบครับเพื่อเป็นจุดเริ่มต้น.... ไม่มีจุดเริ่มก็ไม่รู้จะเริ่มที่ไหนครับ

 

เก็บไว้อ่านเองครับ...ใครมือใหม่ก็อ่าน... ใครมือเก๋าก็แนะนำได้หากเห็นว่าผิด... หรือมีดีกว่า
ประมาณว่าไม่ได้ฝนสมองมานาน (หลายปีแล้วที่ไม่ได้เขียนเว็บ)

พอดีวันก่อนเจ้านายสั่งให้ทำเว็บ สำหรับป้อนข้อมูล แต่ให้มี User , Password สำหรับผู้ที่เข้าไปแก้ไขด้วย

อันนี้คงไม่ยาก (คิดในใจนะครับ)

เริ่มลงมือไป Download โปรแกรมสำเร็จรูป AppServ (http://www.appservnetwork.com/) เอามาแล้วติดตั้งบนเครื่อง Notebook (อันนี้ติดตั้งไม่ยากเหมือนโปรแกรมทั้วไป Next , Yes , OK ประมาณนั้น ดีจริงๆ) เมื่อติดตั้งแล้วก็ได้ เว็บเซอร์ฟเวอร์ (Apache) , ฐานข้อมูล (MySQL) , โปรแกรมภาษา PHP

เมื่อได้แล้วก็มาลองทำการสร้าง Form เพื่อ Logon ชื่อ login.php

// <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
// <html xmlns="
http://www.w3.org/1999/xhtml">
// <head>
// <meta http-equiv="Content-Type" content="text/html; charset=TIS-620" >
// <title>Input Form-Login</title>
// </head>
// <body>
// <form id="from_input" name="from_input" method="post" action="login_check.php">
//  <label for="textfield">Username : </label>
// <input type="text" name="user" id="name" >
// <br />
//  <label for="label2"><br /> password : </label>
//  <input type="password" name="pass" id="pass" >
//  <br />
//  <label for="Submit"></label>
//  <input type="submit" name="Submit" value="Submit" id="Submit" >
//  <label for="label3"></label>
//  <input type="reset" name="reset" value="Reset" id="label3" >
// </form>
// </body>
// </html>

ต่อมาก็สร้างเพจชื่อ login_check.php เพื่อตรวจสอบรหัสผ่าน

// <?
// $user=$_POST[user];
// $pass=$_POST[pass];
// //echo $user ." ".$pass ;
// if ($user =="sridetch" and $pass =="abc123")  {
// session_start();
// $_SESSION[sess_userid]=session_id();
// header("Location: page_1.php");
//   }  
// else 
// {
//  echo "<H3> Error : Username หรือ Password ไม่ถูกต้อง </H3>";
//  exit();
// }
// ?>


เมื่อการตรวจสอบข้อมูลที่ป้อนเข้ามาถูกต้อง ก็ไปเปิดเพจหน้าต่อไปที่ชื่อ page_1.php โดยที่จะมีกระบวนการสร้าง Session ชื่อ sess_userid ขึ้นมาเพื่อใช้ตรวจสอบว่าได้ผ่านการ Login มาถูกต้อง แต่ถ้าไม่ถูกก็จะแสดงข้อความว่า Error : Username หรือ Password ไม่ถูกต้อง

ในหน้าต่าง ของเพจต่อ ๆ ไป ก็จะใส่ Script นี้ไว้ที่ด้านบน

//<?
// session_start();
// if ($_SESSION[sess_userid] <> session_id()) {
// header("Location: session_form_input.php"); exit(); 
// } 
// ?>

เพื่อทำการดักตรวจสอบว่าข้อมูล Session ถูกต้องมีการเก็บค่าตัวแปร sess_userid ไว้จริงหรือไม่ หากมีจริงก็ออกไปทำงานต่อจาก Script นี้ แต่หากข้อมูลไม่ถูกต้อง $_SESSION[sess_userid] <> session_id() ก็ให้กลับไปหน้าต่าง login.php

ส่วนหากต้องการทำลาย Session ก็ให้ทำ Link ไปที่ ไฟล์ logout.php ที่มี Script ดังนี้

// <?
// session_start();
// session_destroy();
// header("Location: login.php");
// ?>

จบกระบวนการ... Session ง่าย ๆ ครับ

ปล. ก่อนที่จะจบเนื่องจากสมัยก่อนการรับค่าตัวแปรจาก Form หรือ url จะใช้แค่คำสั่ง $id ก็จะได้ค่าตัวแปรแล้ว แต่ปัจจุบันมีเรื่องความปลอดภัยเข้ามามากขึ้น ทาง php.net ได้ประกาศมาตรฐานไว้หลายปีก่อนแล้ว อ่านรายละเอียดได้ที่ http://th.php.net/manual/en/security.globals.php ซึ่งแนะนำให้ทำการ Register Global = off ไว้ เพื่อป้องกันการโดนโจมตีผ่าน script หลาย Server ไม่สามารถรับตัวแปรตามปกติได้
ดังนั้นหากต้องการรับตัวแปรจาก Form ก็ให้ใช้ $_POST['id'] แต่ถ้าต้องการรับตัวแปรจาก url ก็ให้ใช้ $_GET['id']  ต้องขอบคุณทีมงาน naxza ทีแนะนำครับ สามารถอ่านเพิ่มเติมได้ที่  http://www.naxza.com/hosting_article_21-10_18-00-41.php

edit @ 24 Dec 2007 09:30:33 by BigTUI ^_^"

 

edit @ 25 Dec 2007 10:10:44 by BigTUI ^_^"

จริงๆ แล้วเป็น Java Script นะครับ เคยได้มานาแล้ว ช่วงนี้ปัดฝุ่นเลยไปเอา Script เก่าๆ มาใช้งานครับ  

วิธีใช้ก็เอาไปแปะไว้บนสุด ก่อนทำใดๆ ครับ พอรันโปรแกรม มันก็จะทำหน้าจอให้ขยายเต็มเลยแหละครับ

// <script language="JavaScript1.2">
// <!--
// top.window.moveTo(0,0);
// if (document.all) {
// top.window.resizeTo(screen.availWidth,screen.availHeight);
// }
// else if (document.layers||document.getElementById) {
// if (top.window.outerHeight<screen.availHeight||top.window.outerWidth<screen.availWidth){
// top.window.outerHeight = screen.availHeight;
// top.window.outerWidth = screen.availWidth;
// }
// }
// </script>