แสดงบทความที่มีป้ายกำกับ PHP แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ PHP แสดงบทความทั้งหมด

วันจันทร์ที่ 10 กุมภาพันธ์ พ.ศ. 2568

Laravel

 

Laravel Framework

คือ PHP Framework ตัวหนึ่งที่ถูกออกแบบมาเพื่อพัฒนาเว็บแอพพลิเคชั่นต่างๆ
ในรูปแบบ MVC (Model Views Controller) ซึ่งมีการแบ่งโค้ดของระบบออกเป็น 3 ส่วน ได้แก่ Model, View และ Controller ตามชื่อที่เรียกเลย ซึ่งแต่ละส่วนก็จะมีหน้าที่แตกต่างกันไป


Model คือ โค้ดส่วนที่ใช้สำหรับติดต่อกับฐานข้อมูล จัดการนำข้อมูลเข้าหรือออกจากฐานข้อมูล เพื่อนำไปประมวลผล
View คือ โค้ดส่วนที่ใช้แสดงผลออกทางหน้าจอ เพื่อติดต่อรับคำสั่งหรือข้อมูลจากผู้ใช้งาน
Controller คือ โค้ดส่วนที่ใช้ประมวลผลการทำงานตามที่ได้รับคำสั่งหรือข้อมูลจากผู้ใช้งาน เป็นส่วนที่ควบคุมการทำงานของระบบ

มีจุดเด่นและข้อดีคือ ทำให้การเขียนโค้ดของเรานั้น ดูสะอาดสามารถอ่านและแก้ไขได้ง่าย แถมยังสามารถดาวน์โหลดมาใช้งานได้ฟรี ๆ โดยผู้พัฒนาคือ นาย Taylor Otwell ภายใต้ลิขสิทธิ์ของ MIT และ Source Code ได้ถูกเก็บไว้บน Host ของ Github ซึ่งในปัจจุบันกำลังเป็นที่นิยมนำมาใช้งานอย่างแพร่หลายทำให้สามารถหาข้อมูลหรือตัวอย่างเกี่ยวกับตัว Laravel Framework ได้อย่างง่ายดาย หมดห่วงเมื่อติดปัญหาที่คิดไม่ตกหรือแก้ไม่ได้เพราะสามารถหาข้อมูลดูได้ทางอินเทอร์เน็ต อีกทั้งตัว Laravel นั้นยังมีการอัพเดทอยู่ตลอดเวลาทำให้เรามั่นใจได้ว่า Framework นี้จะยังคงมีการพัฒนาต่อไปเรื่อยๆ นั้นเอง

โครงสร้างของ Laravel Framwork

หน้าที่ของโฟลเดอร์และไฟล์ที่มือใหม่ควรรู้

app เป็นโฟลเดอร์ที่ใช้เก็บไฟล์เช่น Model หรือ Controller ที่ใช้ในการประมวลผลและเชื่อมต่อกับฐานข้อมูล
database เป็นโฟลเดอร์ที่ใช้เก็บไฟล์เกี่ยวกับ Migrations และ Seeding เพื่อใช้ในการสร้าง Table หรือใส่ข้อมูลในฐานข้อมูลผ่านคำสั่ง “artisan”
public ใช้เก็บพวก Javascript, CSS รวมไปถึง File index และ .htaccess โดยเป็นตัวจัดการไฟล์ที่สามารถเข้าถึงได้
resources ใช้เก็บโฟลเดอร์ที่ใช้ในส่วนของการแสดงผลต่าง ๆ (Views และส่วนที่เกี่ยวข้อง ฯ)
routes เป็นส่วนที่ใช้เก็บไฟล์ในการกำหนด Url ของ web (File routes)
storage เป็นส่วนของคลังพื้นที่จัดเก็บข้อมูลตระกูล Session, caches หรือไฟล์ที่ถูกทาง blade engine ทำการ compiled มาแล้ว
tests เป็นส่วนที่ใช้จัดการพวก automated tests เช่น unit test
.env เป็นไฟล์ที่ใช้ config laravel กับ ฐานข้อมูล

จุดเด่นของ Laravel Framework

* การเรียกใช้งานคลาสต่าง ๆ ที่ง่ายขึ้นเพราะ Laravel เรียกใช้งานคลาสโดย Name Space โดยคำสั่งที่สั้นและเข้าใจง่าย
* ส่วนขยายของ Laravel ที่ชื่อว่า Bundle ซึ่งช่วยให้ประหยัดเวลาในการเขียน Code ลงเป็นอย่างมากโดยใช้คำสั่งผ่าน Command Line ในการติดตั้งผ่านคำสั่ง “php artisan” แทน

Eloquent ORM ชุดคำสั่งหรือเครื่องมือในการแสดงผลและคำนวนข้อมูลต่างๆ ในฐานข้อมูลสามารถศึกษาข้อมูลเพิ่มเติมได้จาก Eloquent
Unit testing สามารถสร้าง Unit test ขึ้นมาเพื่อทดสอบงานของตัวเองได้ โดยสร้างผ่านชุดคำสั่ง สามารถศึกษาข้อมูลเพิ่มเติมได้จาก artisan
View Composer ส่วนของ Code HTML ที่นำมาเรียงติดต่อกัน และจะทำงาน หลังจากประกอบกันเสร็จเรียบร้อยแล้ว เช่นเราแบ่งส่วน header, container, footer และนำมาเรียกใช้ต่อกันภายหลังเป็นต้น
Routing สามารถกำหนดชื่อของ Url เพื่อชี้ไปยังส่วนต่าง ๆ เช่น View หรือ Controller ตามที่ต้องการได้คำสั่งอ่านและเข้าใจง่ายมากสามารถศึกษาข้อมูลเพิ่มเติมได้จาก Routing
Restful Controller สามารถกรองชนิดการส่งคำร้องขอจากฟอร์มทั้งแบบ Post, Get, Put/Patch, Delete

สรุป

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


ที่มา :https://dev.classmethod.jp/articles/lets_get_to_know_laravel/

วันศุกร์ที่ 8 ธันวาคม พ.ศ. 2560

Yii Framework คืออะไร

Yii Framework คืออะไร



Yii Framework คือ PHP Framework และ PHP Frameork คือ โปรแกรมที่ถูกเขียนขึ้นโดยใช้ภาษา PHP ที่เขียนขึ้นบนการออกแบบซอร์ฟแวร์ในลักษณะ Model, View และ Controller (MVC) ซึ่งเขียนขึ้นในรูปแบบของ Object Oriented Programming (OOP)

ความหมายและที่มา

Yii หรือ ยี่ ย่อมาจาก Yes It Is เป็นเหมือนกับคำตอบหรือคำอุทานก็ว่าได้ที่ว่า มันเร็วจริงหรือเปล่า? มันมีความปลอดภัยไหม? มันมีความเป็นมืออาชีพหรือเปล่า? มันควรนำมาสร้าง Project ต่อไปหรือเปล่า? ใช่แล้วมันใช่จริงๆ (Yes It Is)
สำหรับ Yii นั้นเป็น Open Source ซึ่งเป็น PHP Framework สำหรับสร้าง Web Application ที่ถูกเขียนขึ้นให้รองรับ PHP5 ช่วยให้สร้าง Web Application ได้อย่างรวดเร็ว
Yii นั้นเกิดขึ้นจากคุณ Qiang Xue เป็นผู้ริเริ่ม Yii เมื่อ 1 มกราคม 2008 ซึ่งก่อนหน้าเขาเคยพัฒนา Prado Framework มาก่อนซึ่งก็มีประสบการณ์ต่างๆ มากกมาย และเห็นจุดอ่อนจุดแข็งของ Framework และได้นำประสบการณ์เหล่านั้นมาพัฒนาเป็น Yii Framework ในเวอร์ชั่นแรก
หลังจากนั้น Yii Framework ได้รับความนิยมเป็นอย่างมากในวงกว้างมากขึ้นเรื่อยๆ จนถึงปัจจุบัน ได้ออก Yii Framework ใน เวอร์ชั่น 2 เรียบร้อยแล้วเมื่อวันที่ 12 ตุลาคม 2557 ที่ผ่านมา

ความต้องการระบบของ Yii2

ความต้องการระบบของ Yii2 นั้น จะใช้ PHP 5.4 ขึ้นไปซึ่งรองรับการเขียนโปรแกรม OOP และมีการปรับปรุงให้สามารถประมวลผลได้ดีมากขึ้น และการเขียนโปรแกรมที่สั้นลง เช่น array() ก็เปลี่ยนเป็น [] เป็นต้น โดยการตรวจสอบความต้องการนั้นสามารถเรียก URL ไปที่ไฟล์ requirement.php เพื่อตรวจสอบความต้องการของระบบสำหรับ Yii2 โดยจะมีหน้า Web ดังนี้


สำหรับ APC Extension นั้นยังไม่มี Version รองรับ PHP5.5.12 จึงยังไม่สามารถติดตั้งได้ครบหมดซึ่งผู้เขียนได้ใช้ WAMP Server 2.5 64bit เป็น PHP5.5.12

ทำไมต้องเป็น Yii Framework 2


Fast
เนื่องจาก Yii2 มีตัวช่วยในการทำงานหลายอย่างเช่น Gii Generator สำหรับการ Generate Code ต่างๆ เช่น Generate Model, CRUD, Controller ช่วยให้เราประหยัดเวลาในการพัฒนาได้มาก มีระบบ PJAX (Pushstate + AJAX) เป็น jQuery plugin อย่างหนึ่งที่ช่วยการทำงานของ Web Application ให้มีความรวดเร็วมากยิ่งขึ้น และมีระบบ Cache ซึ่งจะช่วยให้การประมวลผลเร็วยิ่งขึ้นอีกด้วย
Security
ความปลอดภัยของ Yii2 มาพร้อมกับตัวช่วยที่หลากหลายเช่นการป้องกัน SQL Injection การป้องกัน XSS (Cross site scripting) ด้วย Html::encode และ HtmlPurifier::process() และการป้องกัน CSRF (Crosssite request forgery) ด้วย form csrf
Professional
มีความเป็น Professional เนื่องจาก Yii2 ถูกออกแบบมาโดยใช้สถาปัตยกรรมการออกแบบ MVC หรือ Model View และ Controller ทำให้การแยกส่วนการประมวลผลอย่างชัดเจน และนอกจากนั้น Yii2 ถูกเขียนขึ้นโดยใช้หลักการ Object Oriented Programming (OOP) ทำให้นักพัฒนาได้เรียนรู้การพัฒนา Web Application ในรูปแบบที่มีความนิยมอย่างกว้างขวางทั่วโลก

ที่มา:https://www.programmerthailand.com/tutorial/post/view/2/yii-framework-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3

วันอังคารที่ 22 สิงหาคม พ.ศ. 2560

มาดูเหตุผลของการนำ PHP มาใช้งาน

มาดูเหตุผลของการนำ PHP มาใช้งาน
โดยไม่สนใจว่าตัวภาษามันจะแย่ก็ตามเถอะนะ

1. PHP มันเรียบง่าย ไม่เยอะ

สามารถเริ่มต้นพัฒนาได้ง่าย ในทุกๆ ระบบปฏิบัติการ
นักพัฒนาใหม่ๆ สามารถเริ่มต้นศึกษาง่ายสุดๆ

2. PHP มีประสิทธิภาพในการทำงาน

มีชุดของ library พื้นฐานที่มีประสิทธิภาพจำนวนมาก
ซึ่งมันมาพร้อมกับตัวภาษา PHP เลย ไม่ต้องไปตามหาให้ยาก
เช่น
  • ถ้าคุณต้องการติดต่อ database ก็มีให้
  • ถ้าคุณต้องการจัดการรูปภาพ ก็มีให้
  • ถ้าคุณต้องการคำนวณข้อมูลตัวเลย ก็มีให้

3. มีเอกสารที่ดีมากๆ

PHP document คือสิ่งที่ดีมากๆ
ซึ่งนักพัฒนาทุกคนต้องมีไว้ประจำเครื่องเสมอ
มันจะอธิบายทุกๆ library, function ที่คุณต้องการใช้งาน

4. มันทำงานเร็วนะ

หมายถึงเวลาในการพัฒนานะครับ
ไม่ใช่ความเร็วที่เกิดจากการปรับปแต่งประสิทธิภาพการทำงาน เช่น HHVM, HACK
คุณสามารถพัฒนาระบบต่างๆ ขึ้นมาได้อย่างรวดเร็ว
รอบการทำงาน คือ coding + testing + fixing + coding ที่รวดเร็วมากๆ

5. ไม่ได้กำหนดว่าคนจะเขียนโปรแกรมในรูปแบบไหน

อยากจะพัฒนาด้วยแนวทาง Object-Oriented Programming ได้ไหม ? ตอบว่าได้
อยากจะพัฒนาด้วยแนวทาง Procedural Programming ได้ไหม ? ตอบว่าได้
อยากจะพัฒนาด้วยแนวทาง Functional Programming ได้ไหม ? ตอบว่าได้
อยากใช้รวมกันได้ไหม ? ตอบว่าได้

6. มันมีอนาคตที่น่าสนใจมากๆ

สามารถเข้าไปดู roadmap ของ PHP ได้จากที่ RFCs
ยิ่งทางฝั่ง facebook ก็ได้สร้าง Hack ขึ้นมา ซึ่งเป็นการเพิ่มประสิทธิภาพการทำงานของ PHP ให้สูงขึ้น
รวมทั้งเพิ่มความสามารถใหม่ๆ เข้ามา โดยที่รูปแบบการเขียนยังคงเป็นเช่นเดิม
รวมทั้งยังทำการเพิ่มความสามารถใหม่ๆ เข้ามายัง PHP อยู่อย่างเสมอ
และนี่คือเหตุผลของผม สำหรับการนำ PHP มาพัฒนาระบบ Web application
แล้วของคุณล่ะ เป็นอย่างไรกันบ้าง ?
ปล. สำหรับประเทศไทย ยังคงใช้ PHP เป็นภาษาหลักในการพัฒนาระบบ Web application นะ
ปล. ส่วนตัวคิดว่า คนที่นำไปใช้งาน คงต้องส่องกระจกดูตัวเองด้วยนะ ว่านำไปใช้งานอย่างถูกต้องหรือไม่
 ที่มา :http://www.somkiat.cc/why-i-like-php/

วันอาทิตย์ที่ 21 พฤษภาคม พ.ศ. 2560

เพิ่มสมาชิกใหม่ผ่าน php ใน Linux

เพิ่มสมาชิกใหม่ผ่าน php ใน Linux
: เพิ่มสมาชิกใหม่ด้วย shell_exec
    โดยปกติผลการ ทดสอบ 1 จะประมวลผลได้สำเร็จ ใช้งานได้ทั้งในระบบปฏิบัติการ Windows และ Linux แต่ถ้าผู้ดูแลระบบไม่ต้องการให้นักพัฒนาใช้ shell_exec สามารถทำได้โดยกำหนด safe_mode เป็น On ใน php.ini ก็จะใช้ฟังก์ชัน shell_exec ไม่ได้
    การใช้ sudo และ useradd
    - ต้องเปลี่ยนสิทธิ์ของ /etc/sudoers จาก 440 เป็น 777
    - แล้วเพิ่ม apache ALL= NOPASSWD: /usr/sbin/useradd, /usr/bin/passwd เข้าไปในแฟ้ม /etc/sudoers
    - ต้องเปลี่ยนสิทธิ์ของ /etc/sudoers กลับเป็น 440
    // ทดสอบ 1
    $host = "127.0.0.1";
    $output = shell_exec("ping -c1 $host"); 
    echo "<pre>$output</pre>";
    
    // ทดสอบ 2
    $user = "hello";
    $pass = "wow";
    echo shell_exec("sudo -u root -S /usr/sbin/useradd $user");
    echo shell_exec("echo $pass |sudo -u root -S /usr/bin/passwd $user --stdin");
    echo shell_exec("id $user");
    

Upload ด้วย php

Upload ด้วย php
: รับชื่อแฟ้มแล้วส่งเข้าไปในห้องที่ต้องการ โดยตรวจรหัสผ่านที่เก็บไว้ในห้องนั้น
    upload.htm ส่วนนี้เป็น html สำหรับส่งค่าให้ upload.php
    <body>
    <form enctype="multipart/form-data" method=post action=upload.php>
    <input type=hidden name="MAX_FILE_SIZE" value=200000>
    User <input type=text name=guser><br>
    Password <input type=password name=gpassword><br>
    Select file <input type=file name=upload><br>
    <input type=submit value=Upload>
    </form>
    <form enctype="multipart/form-data" method=post action=listfile.php>
    User <input type=text name=guser><br>
    Password <input type=password name=gpassword><br>
    <input type=submit value=List>
    </form>
    </body>
    
    upload.php ทำหน้าที่ส่งแฟ้มจากเครื่องท่านเข้าไปเก็บใน server
    โปรแกรมนี้เขียนได้เพราะอ่านวิธี upload จากหนังสือ PHP ของสุพิน วรรณา เล่มสีส้ม มีรูปหน้าคนครึ่งหน้า หน้า 494
    แต่ได้ปรับปรุงนิดหน่อย เพื่อให้ใช้งานใน isinthai.com ขณะที่ปิด telnet หรือ ftp (เดือนพฤษภาคม 2544)
    <?
    include("updateinclude.php");
    setupinit();
    if ($upload <> "none" and $upload_size < 200000) {
      echo "User: $guser<br>";
      echo "Local File: $upload<br>";
      echo "Name: $upload_name<br>";
      echo "Size: $upload_size<br>";
      echo "Type: $upload_type<br>";
      copy($upload,"$fpath/$upload_name");
      chmod("$fpath/$upload_name",0700);
      unlink($upload);
      } else {
      echo "Please select file";
    }
    ?>
    
    uploadinclude.php ใช้ในทุกโปรแกรม เพื่อตรวจสิทธิที่จะเข้า update
    ใช้ตรวจ guser และ gpassword กับแฟ้ม password.pl เพื่อตรวจว่าเป็นผู้ใช้ที่ถูกต้องหรือไม่
    ในการเขียนแบบนี้ทำให้ ระบบข้อมูลถูก hack ได้ง่ายมาก แต่ต้องใช้ php เข้าไป hack
    <?
    function setupinit() {
      global $guser,$gpassword,$fpath;
      $fpath="/home/burin/public_html/$guser";  
      if ($guser) {
        $f = fopen("$fpath/password.pl","r");
        if (!feof($f)) {
         $d = fgets($f,14);
          fclose($f);
        }
        if (strlen($d) <> 13){    
          $d = crypt(substr($d,0,strlen($d)),$guser);
          if ($d == crypt($gpassword,$guser)) {
            $f = fopen("$fpath/password.pl","w");
            if ($f) {
              fputs($f,$d);
              fclose($f);
            }
          }  
          echo "Crypt password.pl : OK $d".crypt($gpassword,$guser)."<hr>";
        }
      }
      if ($d == crypt($gpassword,$guser)) {
        echo "Welcome.. <b>$guser</b> : OK<hr>";
        } else {
        echo "Password invalid of $guser";
        exit;
      }
    }
    ?>
    
    listfile.php ดูรายชื่อแฟ้ม
    โดยใช้ include file สำหรับตรวจ guser และ gpassword ที่เหมาะสมกับแฟ้ม password.pl
    <?
    include("updateinclude.php");
    setupinit();
    $dir_handle = opendir($fpath);
    echo "<pre><font size=4 face=fixed>";
    while($list = readdir($dir_handle)) {
      if (substr($list,0,1) <> "." and $list <> "mail" and $list <> "bash_profile" and
          $list <> "pico.save" and $list <> "password.pl") { 
         echo  $list." - ".filesize("$fpath/$list")." Byte<br>"; 
      }
    }
    closedir($dir_handle);
    ?>
    

ใช้ php อ่านข้อมูลจาก /var/log/maillog


: เพื่อรายงานสถิติการใช้ e-mail ของบุคลากร


วันหนึ่งผมอ่านข้อมูลการเข้าใช้ e-mail จาก /var/www/html/mail/database/username_yn1.yonok.ac.th/inbox โดยเช็คจากเวลา update filectime() แต่พบว่าข้อมูลที่ได้คือ ไม่รวมไปถึง user ที่ใช้ outlook อ่าน e-mail ผ่าน pop3 จึงต้องไปอ่านข้อมูลการเข้าใช้ e-mail จากแฟ้ม /var/log/maillog ทำให้รายงายได้ละเอียดขึ้น สามารถดูผลของโปรแกรมนี้ที่ http://www.isinthai.com/mail/database/index.php
อันที่จริง โปรแกรมนี้จะอยู่ที่ไหนก็ได้ แต่ผมเก็บไว้ที่นี่ เพราะห้องนี้ยังไม่เก็บอะไรเกี่ยงกับ mail ที่สำคัญ แต่สิ่งที่ต้องทำคือการ chmod 644 maillog แต่เดิมคุณสมบัติของแฟ้มเป็น 600 จะใช้ php ของ apache ไปอ่านมาไม่ได้
    ตัวอย่างโปรแกรม /var/www/html/mail/database/index.php
    <html><head><title>Username of /var/log/maillog</title></head>
    <body bgcolor=gray topmargin=0 leftmargin=0><font face="fixedsys" size=0><?
    $datefull = date("F d, Y");
    if(date("j") < 10) {$d = date("M")."  ".date("j");}else{$d = date("M j");}
    echo "Today : <font color=yellow>".$datefull."</font><br>";
    echo "Last login: <a href=index.php?act=total>total</a> ";
    if ($_GET['act'] <> "view" && $_GET['act'] <> "total") {
      echo ", <a href=index.php?act=view>today</a> ";
    } else {
    echo "<ol><font color=white>";
    $ar = file("/var/log/maillog");
    if ($_GET['act'] == "total") { $max = 0; } else { $max = count($ar) - 500; }
    $j = 0;
    for ($i=count($ar);$i>=$max;$i--) {  
      if (strpos($ar[$i],"Login user=") && _
         (strpos($ar[$i],"$d") > -1 || $_GET['act'] == "total")) {
        $user = stristr($ar[$i],"user=");
        $uofar = substr($user,5,strpos($user," ")-5);
        $found = "no";
        for($k=0;$k<$j;$k++) { 
          if (strpos($ur[$k],"$uofar") > -1) { $found = "yes"; }
        }
        if ($found == "no") {
          if (strpos($ar[$i],"host=yonok.ac.th") == false) {
            $p="pop";
          } else {
            $p=" ";
          }
          $ur[$j] = $uofar." <font color=black>".substr($ar[$i],7,8)."</font> ".$p;
          $ut[$j] = $uofar." <font color=black>".substr($ar[$i],0,6)."</font> ".$p;
          $j = $j + 1;
        }
      }
    }
    for ($i=0;$i<$j;$i++) { 
      if ($_GET['act'] == "total") {
        echo "<li>".$ut[$i]; 
      } else {
        echo "<li>".$ur[$i]; 
      } 
    }
    }
    ?>
    </ol></body></html>
    

ดูข้อมูลในแฟ้มต่าง ๆ ด้วยโปรแกรม php

ดูข้อมูลในแฟ้มต่าง ๆ ด้วยโปรแกรม php
: โปรแกรมนี้ช่วยให้ดูแฟ้มต่าง ๆ ในระบบโดยไม่ต้องเข้า Linux ไม่ควรใช้ถ้าผู้ให้บริการไม่ยอมให้ใช้ ลองถามเขาก่อนใช้นะครับ
    ตัวอย่างโปรแกรม lastmsg.php
    <form action=http://www.isinthai.com/lock/lastmsg.php method=get>
    File: <input name=file value=messages>
    Line: <input name=l value=20>
    Password: <input name=p type=password value=suwit>
    <input type=submit value=tail>
    </form><font face='courier new'><pre>
    <?
    if ($_GET['p'] == "prasert") {
    $x = "tail --lines=" . $_GET['l'] . " ". $_GET['file'];
    echo `$x`;
    }
    ?>
    

บริการส่ง mail ด้วย php

บริการส่ง mail ด้วย php
: เพื่อให้ web server ที่เปิดบริการ SMTP (/usr/sbin/sendmail) ถูกเรียกใช้โดย php สำหรับส่ง mail


บริการนี้เปิดให้ทดสอบว่าส่งถึงท่านไหม แต่อาจใช้ไม่ได้ทุกเครือข่าย เพราะกำหนด RELAY ให้เฉพาะบางเครือข่ายเท่านั้น แต่ถ้า copy source code ไปใช้ก็น่าจะใช้ได้เลย โดยโปรแกรมตัวอย่างได้มีการตรวจสอบอะไรนิดหน่อย ซึ่งอาจนำไปประยุกต์ใช้งานสำหรับริการต่าง ๆ ได้ง่ายขึ้น เช่น contact us หรือ e-commerce เป็นต้น โปรแกรมนี้ได้ทดสอบแล้วที่ http://www.isinthai.com/~php/mail.htm และ http://lampang.thcity.com/mail.htm
ข้อควรทราบ : โปรแกรมนี้ไม่ได้ตรวจสอบอะไรมากมาย โดยแบ่งโปรแกรมออกเป็น 2 ส่วน เพื่อให้ง่ายสำหรับผมในการอธิบาย ว่า ส่วนที่ 1 ใช้รับค่าจากผู้ใช้ ส่วนที่ 2 ใช้ส่ง e-mail โดยตรง แต่การจะส่ง mail ได้ เครื่องที่ท่านนำโปรแกรมทั้ง 2 นี้ไปวางต้องมีคุณสมบัติ 2 ประการ 1. ต้องเป็น web server ที่บริการ php 2. ต้องให้บริการ smtp โดยเปิด relay ให้กับผู้ใช้เข้ามาใช้ได้
    Source code : mail.htm
    <body>
    <form action=mail.php method=get>
    <input name=refer type=hidden value="http://www.isinthai.com/~php/mail.htm">
    From : <input name=from value="saleman@oho.com" size=30><br>
    To : <input name=to value="burin@yonok.ac.th" size=30><br>
    Subject : <input name=subject value="test sendmail by isinthai.com" size=50><br>
    <textarea name=message rows=5 cols=80>
    Test form isinthai.com/~php/mail.htm
    </textarea><br>
    <input type=submit value=send>
    </form>
    </body>
    Source code : mail.php : สำหรับรับข้อมูลเพื่อส่ง mail ออกไป (ทำหน้าที่ส่ง e-mail โดยตรง)
    <body>
    <font color=blue>Send mail : </font><font color=red>
    <?
      $lf = chr(13). chr(10);
      $msg = $_GET['message'] . $lf ."IP address: " . $_SERVER["REMOTE_ADDR"];
      $msg = $msg . $lf ."Service by: http://www.isinthai.com/~php/mail.htm";  
      // mail ("burin@yonok.ac.th","your order","want 100 car today","From: saleman@oho.com");
      if ($_GET['to'] <> "burin@yonok.ac.th" || $_GET['from'] <> "saleman@oho.com") {
        mail($_GET['to'],":: ".$_GET['subject'],$msg,"From : ".$_GET['from']);
        echo "ok";
      } else {
        echo "invalid";
      }
    ?>
    </font><br><a href=<? echo $_GET['refer']; ?>><? echo $_GET['refer']; ?></a>
    </body>
    
อีก code หนึ่ง /var/www/html/isinthai/sndform.php ที่ใช้งานอยู่จริง
    
    <?
    $mto = $_POST["mto"];
    $msubj = $_POST["msubj"];
    $mfrom = $_POST["mfrom"];
    $message = $_POST["message"];
    $redirect = $_POST["redirect"];
    if (empty($redirect)) { $redirect = "http://www.isinthai.com/isinthai/sndform.php"; }
    if (empty($mto) || empty($msubj) || empty($mfrom) || empty($message)) {
    echo "<body bgcolor=#ffffdd><font face='courier new'>";
    echo "<form action=sndform.php method=post>";
    echo ".... To : <select name=mto size=3>";
    echo "<option value=nirund@yonok.ac.th selected>ดร.นิรันดร์ จิวะสันติการ";
    echo "<option value=atichart@yonok.ac.th>อติชาต หาญชาญชัย";
    echo "<option value=burin@yonok.ac.th>ผู้ดูแลเครือข่าย, HW, SW, ฐานข้อมูล";
    echo "</select><br>.. From : <input name=mfrom size=30> EX. yourname@hotmail.com<br>";
    echo "Subject : <input name=msubj size=50> EX. Why the name is YONOK?<br>";
    echo "Messages: <textarea name=message rows=10 cols=80>";
    echo "</textarea> <input type=submit value=Send_mail><br>";
    echo "<input name=redirect type=hidden value=http://www.isinthai.com/isinthai/sndform.php>";
    echo "</form>";
    $message = "hi\nthis is test\nthis is line.";
    $mto = "burin@yonok.ac.th";
    $msubj = "the subject";
    $mfrom = "burin@thaiall.com";
    } else {
    $message=$message."\n\nService from http://".$_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"];
    $message=$message."\nScript developer by webmaster@yonok.ac.th";
    $message=$message."\nIP address : ".$_SERVER["REMOTE_ADDR"];
    $msubj = "Subject_".$msubj;
    $txtfrom = "From: ".$mfrom."\nX-Mailer: PHP/" . phpversion();
    mail($mto, $msubj, $message, $txtfrom );
    echo "<html><head><meta http-equiv=Refresh CONTENT='50; URL=$redirect'>";
    echo "</head><body><font face='courier new'>";
    echo "Your message sending [ <b>completely</b> ]<hr color=red><pre>";
    echo "From    : $mfrom \n";
    echo "To      : $mto \n";
    echo "Subject : $msubj \n";
    echo "Message : $message</pre>";
    }
    ?>
    

เพิ่มระเบียนใหม่เข้า Mysql หลายระเบียนผ่าน form


: รับข้อมูลได้หลายรายการพร้อม ๆ กันส่งเข้า Mysql
    ตัวอย่างโปรแกรมที่ใช้ป้อนข้อมูล เตรียมส่งเข้า mysql (addmany.htm)
    
    ข้อมูลที่ส่งเข้าจะใช้เครื่องหมาย , แยกระหว่างเขตข้อมูล และ 1 บรรทัดก็คือ 1 ระเบียน ทำให้ผู้ใช้สามารถนำข้อมูลจาก Excel มา export CSV และใช้ที่นี่ได้
    
    
    <form action=addmany.php> <textarea name=manyrecord rows=6 cols=40></textarea> <input type=submit></form>
    ตัวอย่างโปรแกรมที่ใช้ส่งข้อมูลเข้า Mysql (addmany.php ถูกสั่งจาก addmany.htm)
    <?
    $getline = preg_split("/[\s\n]+/",$manyrecord);
    for ($j=0;$j<count($getline);$j++) {
      $l = $j + 1;
      $getfield = preg_split("/[\s,]+/",$getline[$j]);   
      print "$l $getfield[0] - $getfield[1] - $getfield[2]<br>";
    }
    $link = mysql_connect("localhost","thaiall","some_pass");
    if ($link) {
      echo "Connect OK<hr>";
      mysql_select_db("test",$link);
      for ($j=0;$j<count($getline);$j++) {
        $l = $j + 1;
        $getfield = preg_split("/[\s,]+/",$getline[$j]);   
        print "$l $getfield[0] - $getfield[1] - $getfield[2]";
        $query = "insert into testf values('$getfield[0]','$getfield[1]',$getfield[2])";
        $result = mysql_db_query("test",$query);
        if (!$result) {
          echo "ผิดพลาด";
        } else {
          echo "เพิ่มเรียบร้อย";
        }  
     echo "<br>";
      }  
      mysql_close($link);
    } else {
      echo "Connect error"; 
    }
    ?>
    

เพิ่มระเบียนใหม่เข้า Mysql

เพิ่มระเบียนใหม่เข้า Mysql
: รับข้อมูลทีละรายการส่งเข้า Mysql
    ตัวอย่างโปรแกรม addone.php
    <?
    $link = mysql_connect("localhost","thaiall","some_pass");
    if ($link) {
      echo "Connect OK<hr>";
      mysql_select_db("test",$link);
      $query = "insert into testf values('abc','def',5)";
      $result = mysql_db_query("test",$query);
      if (!result) {
        echo "ผิดพลาด";
      } else {
        echo "เพิ่มเรียบร้อย";
      }
      mysql_close($link);
    } else {
      echo "Connect error"; 
    }
    ?>
    

อ่านข้อมูลจาก Mysql มาแสดงผล

อ่านข้อมูลจาก Mysql มาแสดงผล
: การใช้ความสามารถของ Mysql ในการเลือกข้อมูลมาให้ PHP
    ตัวอย่างโปรแกรม listall.php
    <?
    echo "First line of the printing on screen.";
    $link = mysql_connect("localhost","thaiall","some_pass");
    if ($link) {
      echo "Connect OK<hr>";
      mysql_select_db("test",$link);
      $query = "select * from testf";
      $process = mysql_query($query,$link);
      $i = 1;
      while ($obj = mysql_fetch_object($process)) {
        echo $i.$obj->fld1." - ";
        echo $obj->fld2." - ";
        echo $obj->fld3."<br>";
     $i++;
      }
      mysql_close($link);
    } else {
      echo "Connect error"; 
    }
    ?>
    

วันพฤหัสบดีที่ 23 มีนาคม พ.ศ. 2560

class ของ java เรียกใช้งานผ่านทาง php ทำยังไง


Random ข้อมูลมาแสดงผล 2 แบบ 2 วิธี


Laravel

  Laravel Framework คือ PHP Framework ตัวหนึ่งที่ถูกออกแบบมาเพื่อพัฒนาเว็บแอพพลิเคชั่นต่างๆ ในรูปแบบ MVC (Model Views Controller) ซึ่งมีการแ...