CodeIgniter - คู่มือฉบับย่อ

CodeIgniter เป็นกรอบการพัฒนาแอปพลิเคชันซึ่งสามารถใช้ในการพัฒนาเว็บไซต์โดยใช้ PHP มันเป็นกรอบโอเพนซอร์ส มีชุดฟังก์ชันที่หลากหลายซึ่งจะช่วยเพิ่มความเร็วในการพัฒนาเว็บไซต์

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

คุณสมบัติ CodeIgniter

คุณสมบัติที่สำคัญบางประการของ CodeIgniter มีดังต่อไปนี้ -

  • Model-View-Controller Based System

  • น้ำหนักเบามาก

  • คลาสฐานข้อมูลที่โดดเด่นเต็มรูปแบบพร้อมการสนับสนุนสำหรับหลายแพลตฟอร์ม

  • การสนับสนุนฐานข้อมูล Query Builder

  • แบบฟอร์มและการตรวจสอบข้อมูล

  • ความปลอดภัยและการกรอง XSS

  • การจัดการเซสชัน

  • คลาสการส่งอีเมล รองรับไฟล์แนบอีเมล HTML / ข้อความโปรโตคอลหลายตัว (sendmail, SMTP และ Mail) และอื่น ๆ

  • ไลบรารีการจัดการรูปภาพ (การครอบตัดการปรับขนาดการหมุน ฯลฯ ) รองรับ GD, ImageMagick และ NetPBM

  • คลาสอัพโหลดไฟล์

  • คลาส FTP

  • Localization

  • Pagination

  • การเข้ารหัสข้อมูล

  • Benchmarking

  • แคชแบบเต็มหน้า

  • เกิดข้อผิดพลาดในการบันทึก

  • การทำโปรไฟล์แอปพลิเคชัน

  • ชั้นเรียนปฏิทิน

  • คลาสตัวแทนผู้ใช้

  • คลาสการเข้ารหัส Zip

  • คลาส Engine Engine

  • คลาส Trackback

  • ไลบรารี XML-RPC

  • ชั้นทดสอบหน่วย

  • URL ที่เป็นมิตรกับเครื่องมือค้นหา

  • การกำหนดเส้นทาง URI ที่ยืดหยุ่น

  • รองรับ Hooks และ Class Extensions

  • ไลบรารีฟังก์ชั่น "ตัวช่วย" ขนาดใหญ่

ติดตั้ง CodeIgniter ได้ง่ายมาก เพียงทำตามขั้นตอนด้านล่าง -

  • Step-1- ดาวน์โหลด CodeIgniter จากลิงค์CodeIgniter

  • Step-2 - เปิดเครื่องรูดโฟลเดอร์

  • Step-3 - อัปโหลดไฟล์และโฟลเดอร์ทั้งหมดไปยังเซิร์ฟเวอร์ของคุณ

  • Step-4 - หลังจากอัปโหลดไฟล์ทั้งหมดไปยังเซิร์ฟเวอร์ของคุณแล้วให้ไปที่ URL ของเซิร์ฟเวอร์ของคุณเช่น www.domain-name.com

ในการเยี่ยมชม URL คุณจะเห็นหน้าจอต่อไปนี้ -

สถาปัตยกรรมของแอปพลิเคชัน CodeIgniter แสดงอยู่ด้านล่าง

  • ดังแสดงในรูปเมื่อใดก็ตามที่มีการร้องขอไปยัง CodeIgniter ก่อนอื่นจะไปที่ index.php หน้า.

  • ในขั้นตอนที่สอง Routing จะตัดสินใจว่าจะส่งคำขอนี้ไปยังขั้นตอนที่ 3 สำหรับการแคชหรือส่งคำขอนี้ไปยังขั้นตอนที่ 4 เพื่อตรวจสอบความปลอดภัย

  • หากหน้าที่ร้องขออยู่ใน Cachingแล้ว Routing จะส่งคำขอไปยังขั้นตอนที่ 3 และการตอบกลับจะกลับไปยังผู้ใช้

  • หากหน้าที่ร้องขอไม่มีอยู่ใน Cachingแล้ว Routing จะผ่านหน้าที่ร้องขอไปยังขั้นตอนที่ 4 สำหรับ Security ตรวจสอบ

  • ก่อนส่งคำขอไปยัง Application Controller, Securityของข้อมูลที่ส่งจะถูกตรวจสอบ หลังจากSecurity ตรวจสอบ Application Controller โหลดที่จำเป็น Models, Libraries, Helpers, Plugins และ Scripts และส่งต่อไปยัง View.

  • View จะแสดงหน้าเว็บพร้อมข้อมูลที่มีอยู่และส่งต่อให้ Caching. เนื่องจากหน้าที่ร้องขอไม่ได้ถูกแคชไว้ก่อนหน้านี้จึงจะถูกแคชในครั้งนี้Cachingเพื่อดำเนินการกับหน้านี้อย่างรวดเร็วสำหรับคำขอในอนาคต

โครงสร้างไดเรกทอรี

ภาพด้านล่างแสดงโครงสร้างไดเร็กทอรีของ CodeIgniter

โครงสร้างไดเร็กทอรี CodeIgniter แบ่งออกเป็น 3 โฟลเดอร์ -

  • Application
  • System
  • User_guide

ใบสมัคร

เนื่องจากชื่อแสดงว่าโฟลเดอร์ Application มีรหัสทั้งหมดของแอปพลิเคชันของคุณที่คุณกำลังสร้าง นี่คือโฟลเดอร์ที่คุณจะพัฒนาโครงการของคุณ โฟลเดอร์แอปพลิเคชันประกอบด้วยโฟลเดอร์อื่น ๆ อีกหลายโฟลเดอร์ซึ่งอธิบายไว้ด้านล่าง -

  • Cache- โฟลเดอร์นี้มีหน้าแคชทั้งหมดของแอปพลิเคชันของคุณ หน้าแคชเหล่านี้จะเพิ่มความเร็วโดยรวมในการเข้าถึงเพจ

  • Config- โฟลเดอร์นี้มีไฟล์ต่างๆเพื่อกำหนดค่าแอปพลิเคชัน ด้วยความช่วยเหลือของconfig.phpไฟล์ผู้ใช้สามารถกำหนดค่าแอปพลิเคชัน การใช้database.php ไฟล์ผู้ใช้สามารถกำหนดค่าฐานข้อมูลของแอปพลิเคชัน

  • Controllers- โฟลเดอร์นี้มีตัวควบคุมแอปพลิเคชันของคุณ เป็นส่วนพื้นฐานของแอปพลิเคชันของคุณ

  • Core - โฟลเดอร์นี้จะมีคลาสพื้นฐานของแอปพลิเคชันของคุณ

  • Helpers - ในโฟลเดอร์นี้คุณสามารถใส่คลาสตัวช่วยของแอปพลิเคชันของคุณได้

  • Hooks - ไฟล์ในโฟลเดอร์นี้มีวิธีในการเข้าถึงและแก้ไขการทำงานภายในของเฟรมเวิร์กโดยไม่ต้องแฮ็กไฟล์หลัก

  • Language - โฟลเดอร์นี้มีไฟล์ที่เกี่ยวข้องกับภาษา

  • Libraries - โฟลเดอร์นี้มีไฟล์ของไลบรารีที่พัฒนาขึ้นสำหรับแอปพลิเคชันของคุณ

  • Logs - โฟลเดอร์นี้มีไฟล์ที่เกี่ยวข้องกับบันทึกของระบบ

  • Models - ล็อกอินฐานข้อมูลจะอยู่ในโฟลเดอร์นี้

  • Third_party - ในโฟลเดอร์นี้คุณสามารถวางปลั๊กอินใดก็ได้ซึ่งจะใช้สำหรับแอปพลิเคชันของคุณ

  • Views - ไฟล์ HTML ของแอปพลิเคชันจะอยู่ในโฟลเดอร์นี้

ระบบ

โฟลเดอร์นี้ประกอบด้วยรหัสหลักของ CodeIgniter ไลบรารีตัวช่วยและไฟล์อื่น ๆ ซึ่งช่วยให้การเข้ารหัสเป็นเรื่องง่าย ไลบรารีและตัวช่วยเหล่านี้ถูกโหลดและใช้ในการพัฒนาเว็บแอพ

โฟลเดอร์นี้มีรหัสผลของ CodeIgniter ทั้งหมดซึ่งจัดเป็นโฟลเดอร์ต่างๆ -

  • Core- โฟลเดอร์นี้มีคลาสหลักของ CodeIgniter ห้ามแก้ไขอะไรที่นี่ งานทั้งหมดของคุณจะอยู่ในโฟลเดอร์แอปพลิเคชัน แม้ว่าคุณตั้งใจจะขยายคอร์ CodeIgniter แต่คุณต้องทำด้วย hooks และ hooks จะอยู่ในโฟลเดอร์ของแอปพลิเคชัน

  • Database - โฟลเดอร์ฐานข้อมูลประกอบด้วยไดรเวอร์ฐานข้อมูลหลักและยูทิลิตี้ฐานข้อมูลอื่น ๆ

  • Fonts - โฟลเดอร์ฟอนต์มีข้อมูลและยูทิลิตี้ที่เกี่ยวข้องกับฟอนต์

  • Helpers - โฟลเดอร์ helpers มีตัวช่วย CodeIgniter มาตรฐาน (เช่นวันที่คุกกี้และตัวช่วย URL)

  • Language- โฟลเดอร์ภาษามีไฟล์ภาษา คุณสามารถเพิกเฉยได้ในตอนนี้

  • Libraries- โฟลเดอร์ไลบรารีประกอบด้วยไลบรารี CodeIgniter มาตรฐาน (เพื่อช่วยคุณในเรื่องอีเมลปฏิทินการอัปโหลดไฟล์และอื่น ๆ ) คุณสามารถสร้างไลบรารีของคุณเองหรือขยาย (และแทนที่) มาตรฐานได้ แต่สิ่งเหล่านั้นจะถูกบันทึกไว้ในไฟล์application/libraries ไดเร็กทอรีเพื่อแยกออกจากไลบรารี CodeIgniter มาตรฐานที่บันทึกไว้ในโฟลเดอร์เฉพาะนี้

คู่มือผู้ใช้

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

ข้างโฟลเดอร์ทั้งสามนี้มีไฟล์สำคัญอีกไฟล์หนึ่งชื่อ“index.php”. ในไฟล์นี้เราสามารถตั้งค่าสภาพแวดล้อมของแอปพลิเคชันและระดับข้อผิดพลาดและเราสามารถกำหนดชื่อโฟลเดอร์ของระบบและแอปพลิเคชันได้ ขอแนะนำว่าอย่าแก้ไขการตั้งค่าเหล่านี้หากคุณไม่มีความรู้เพียงพอเกี่ยวกับสิ่งที่คุณกำลังจะทำ

CodeIgniter ขึ้นอยู่กับไฟล์ Model-View-Controller (MVC) development pattern. MVC เป็นแนวทางซอฟต์แวร์ที่แยกตรรกะของแอปพลิเคชันออกจากการนำเสนอ ในทางปฏิบัติจะอนุญาตให้หน้าเว็บของคุณมีการเขียนสคริปต์น้อยที่สุดเนื่องจากงานนำเสนอแยกจากสคริปต์ PHP

  • Modelแสดงโครงสร้างข้อมูลของคุณ โดยปกติคลาสโมเดลของคุณจะมีฟังก์ชันที่ช่วยคุณในการดึงข้อมูลแทรกและอัปเดตข้อมูลในฐานข้อมูลของคุณ

  • Viewคือข้อมูลที่นำเสนอต่อผู้ใช้ โดยปกติ View จะเป็นเว็บเพจ แต่ใน CodeIgniter มุมมองยังสามารถเป็นส่วนของหน้าเช่นส่วนหัวหรือส่วนท้าย นอกจากนี้ยังสามารถเป็นเพจ RSS หรือ“ เพจ” ประเภทอื่นก็ได้

  • Controller ทำหน้าที่เป็นตัวกลางระหว่าง Model มุมมองและทรัพยากรอื่น ๆ ที่จำเป็นในการประมวลผลคำขอ HTTP และสร้างเว็บเพจ

ตัวควบคุม

คอนโทรลเลอร์เป็นไฟล์คลาสธรรมดา ตามชื่อที่แนะนำมันควบคุมแอปพลิเคชันทั้งหมดโดย URI

การสร้างคอนโทรลเลอร์

ก่อนอื่นไปที่ application/controllersโฟลเดอร์ คุณจะพบไฟล์สองไฟล์ที่นั่นindex.html และ Welcome.php. ไฟล์เหล่านี้มาพร้อมกับ CodeIgniter

เก็บไฟล์เหล่านี้ไว้เหมือนเดิม สร้างไฟล์ใหม่ภายใต้เส้นทางเดียวกันชื่อ“Test.php”. เขียนรหัสต่อไปนี้ในไฟล์นั้น -

<?php 
   class Test extends CI_Controller {
  
      public function index() { 
         echo "Hello World!"; 
      } 
   } 
?>

Test คลาสขยายคลาสในตัวที่เรียกว่า CI_Controller. ต้องขยายคลาสนี้ทุกครั้งที่คุณต้องการสร้างคลาส Controller ของคุณเอง

เรียกคอนโทรลเลอร์

URI สามารถเรียกตัวควบคุมข้างต้นได้ดังนี้ -

http://www.your-domain.com/index.php/test

สังเกตคำว่า“test” ใน URI ด้านบนหลัง index.php สิ่งนี้ระบุชื่อคลาสของคอนโทรลเลอร์ ตามที่เราได้ตั้งชื่อตัวควบคุม "Test"เรากำลังเขียน"test” หลัง index.php. ชื่อชั้นเรียนต้องขึ้นต้นด้วยuppercase letter แต่เราต้องเขียน lowercase letterเมื่อเราเรียกตัวควบคุมนั้นโดย URI ไวยากรณ์ทั่วไปสำหรับการเรียกคอนโทรลเลอร์มีดังนี้ -

http://www.your-domain.com/index.php/controller/method-name

การสร้างและเรียกวิธีการสร้างตัวสร้าง

ให้เราแก้ไขคลาสด้านบนและสร้างเมธอดอื่นชื่อ“ สวัสดี”

<?php 
   class Test extends CI_Controller {  
	
      public function index() { 
         echo "This is default function."; 
      } 
  
      public function hello() { 
         echo "This is hello function."; 
      } 
   } 
?>

เราสามารถเรียกใช้คอนโทรลเลอร์ข้างต้นได้สามวิธีดังต่อไปนี้ -

  • http://www.your-domain.com/index.php/test
  • http://www.your-domain.com/index.php/test/index
  • http://www.your-domain.com/index.php/test/hello

หลังจากเยี่ยมชม URI แรกในเบราว์เซอร์เราจะได้ผลลัพธ์ตามที่แสดงในภาพด้านล่าง อย่างที่คุณเห็นเราได้ผลลัพธ์ของวิธีการ“index” แม้ว่าเราจะไม่ได้ส่งชื่อของวิธีการ URI ก็ตาม เราใช้เฉพาะชื่อคอนโทรลเลอร์ใน URI ในสถานการณ์เช่นนี้ CodeIgniter เรียกเมธอดเริ่มต้นว่า“index”.

เยี่ยมชม URI ที่สองในเบราว์เซอร์เราจะได้ผลลัพธ์เดียวกันดังที่แสดงในภาพด้านบน ที่นี่เราได้ส่งชื่อเมธอดหลังชื่อคอนโทรลเลอร์ใน URI ตามชื่อของวิธีการคือ“index” เราได้ผลลัพธ์เดียวกัน

เยี่ยมชม URI ที่สามในเบราว์เซอร์เราจะได้ผลลัพธ์ดังที่แสดงในภาพด้านล่าง อย่างที่คุณเห็นเรากำลังได้รับผลลัพธ์ของวิธีการ "hello"เพราะเราผ่าน"hello” เป็นชื่อวิธีการหลังชื่อตัวควบคุม“test” ใน URI

จุดที่ต้องจำ

  • ชื่อของคลาสคอนโทรลเลอร์ต้องขึ้นต้นด้วยอักษรตัวพิมพ์ใหญ่

  • ต้องเรียกตัวควบคุมด้วยอักษรตัวพิมพ์เล็ก

  • อย่าใช้ชื่อเมธอดเดียวกันกับคลาสพาเรนต์ของคุณเนื่องจากมันจะลบล้างฟังก์ชันการทำงานของคลาสพาเรนต์

มุมมอง

ซึ่งอาจเป็นหน้าเว็บที่เรียบง่ายหรือซับซ้อนซึ่งผู้ควบคุมสามารถเรียกใช้ได้ หน้าเว็บอาจมีส่วนหัวส่วนท้ายแถบด้านข้างเป็นต้นไม่สามารถเรียกดูได้โดยตรง ให้เราสร้างมุมมองง่ายๆ สร้างไฟล์ใหม่ภายใต้application/views ด้วยชื่อ“test.php” และคัดลอกโค้ดที่ระบุด้านล่างในไฟล์นั้น

<!DOCTYPE html> 
<html lang = "en"> 

   <head> 
      <meta charset = "utf-8"> 
      <title>CodeIgniter View Example</title> 
   </head>
	
   <body> 
      CodeIgniter View Example 
   </body>
	
</html>

เปลี่ยนรหัสของ application/controllers/test.php ตามที่แสดงด้านล่าง

กำลังโหลดมุมมอง

สามารถโหลดมุมมองได้โดยใช้ไวยากรณ์ต่อไปนี้ -

$this->load->view('name');

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

$this->load->view('directory-name/name');

ไม่จำเป็นต้องระบุนามสกุลเป็น php เว้นแต่จะใช้อย่างอื่นที่ไม่ใช่. php

เมธอด index () เรียกเมธอด view และส่ง "test" เป็นอาร์กิวเมนต์ to view () method เนื่องจากเราเก็บการเข้ารหัส html ไว้ใน "test.php” ภายใต้ไฟล์ application/views/test.php.

<?php 
   class Test extends CI_Controller { 
	
      public function index() { 
         $this->load->view('test'); 
      } 
   } 
?>

นี่คือผลลัพธ์ของรหัสด้านบน -

ผังงานต่อไปนี้แสดงให้เห็นว่าทุกอย่างทำงานอย่างไร -

โมเดล

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

การสร้างคลาสโมเดล

คลาสโมเดลจะถูกเก็บไว้ใน application/modelsไดเรกทอรี โค้ดต่อไปนี้แสดงวิธีสร้างคลาสโมเดลใน CodeIgniter

<?php 
   Class Model_name extends CI_Model { 
	
      Public function __construct() { 
         parent::__construct(); 
      } 
   } 
?>

โดยที่ Model_name คือชื่อของคลาสโมเดลที่คุณต้องการให้ คลาสโมเดลแต่ละคลาสต้องสืบทอดคลาส CI_Model ของ CodeIgniter อักษรตัวแรกของคลาสโมเดลต้องเป็นอักษรตัวใหญ่ ต่อไปนี้เป็นรหัสสำหรับคลาสโมเดลของผู้ใช้

<?php 
   Class User_model extends CI_Model {
	
      Public function __construct() { 
         parent::__construct(); 
      } 
		
   } 
?>

ต้องบันทึกคลาสโมเดลด้านบนเป็น User_model.php ชื่อคลาสและชื่อไฟล์ต้องเหมือนกัน

กำลังโหลดโมเดล

สามารถเรียกโมเดลในคอนโทรลเลอร์ได้ รหัสต่อไปนี้สามารถใช้เพื่อโหลดรุ่นใดก็ได้

$this->load->model('model_name');

โดย model_name คือชื่อของโมเดลที่จะโหลด หลังจากโหลดโมเดลแล้วคุณสามารถเรียกใช้วิธีการดังที่แสดงด้านล่าง

$this->model_name->method();

โหลดโมเดลอัตโนมัติ

อาจมีสถานการณ์ที่คุณต้องการคลาสโมเดลในแอปพลิเคชันของคุณ ในสถานการณ์เช่นนี้จะดีกว่าถ้าเราโหลดอัตโนมัติ

/*
| ---------------------------------------------------------------
|  Auto-Load Models
| ---------------------------------------------------------------
| Prototype:
|
|   $autoload['model'] = array('first_model', 'second_model');
|
| You can also supply an alternative model name to be assigned
| in the controller:
|  
|   $autoload['model'] = array('first_model' => 'first'); */ $autoload['model'] = array();

ดังแสดงในรูปด้านบนส่งชื่อของโมเดลในอาร์เรย์ที่คุณต้องการโหลดอัตโนมัติและจะถูกโหลดอัตโนมัติในขณะที่ระบบอยู่ในสถานะเริ่มต้นและสามารถเข้าถึงได้ตลอดทั้งแอปพลิเคชัน

ผู้ช่วยเหลือ

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

โดยทั่วไปแล้วผู้ช่วยเหลือจะถูกเก็บไว้ในไฟล์ system/helpers, หรือ application/helpers directory. ตัวช่วยแบบกำหนดเองจะถูกเก็บไว้ในapplication/helpers ไดเร็กทอรีและตัวช่วยของระบบจะถูกเก็บไว้ใน system/helpersไดเรกทอรี CodeIgniter จะปรากฏเป็นอันดับแรกในไฟล์application/helpers directory. หากไม่มีไดเร็กทอรีหรือไม่มีตัวช่วยที่ระบุ CodeIgniter จะดูใน global ของคุณแทนsystem/helpers/ directory. ผู้ช่วยแต่ละคนไม่ว่าจะเป็นผู้ช่วยแบบกำหนดเองหรือผู้ช่วยระบบต้องโหลดก่อนใช้งาน

SN ชื่อผู้ช่วยและคำอธิบาย
1

Array Helper

ไฟล์ Array Helper มีฟังก์ชันที่ช่วยในการทำงานกับอาร์เรย์

2

CAPTCHA Helper

ไฟล์ CAPTCHA Helper มีฟังก์ชันที่ช่วยในการสร้างภาพ CAPTCHA

3

Cookie Helper

ไฟล์ Cookie Helper มีฟังก์ชันที่ช่วยในการทำงานกับคุกกี้

4

Date Helper

ไฟล์ Date Helper มีฟังก์ชันที่ช่วยคุณทำงานกับวันที่

5

Directory Helper

ไฟล์ Directory Helper มีฟังก์ชันที่ช่วยในการทำงานกับไดเร็กทอรี

6

Download Helper

โปรแกรมช่วยดาวน์โหลดช่วยให้คุณสามารถดาวน์โหลดข้อมูลไปยังเดสก์ท็อปของคุณ

7

Email Helper

โปรแกรมช่วยอีเมลมีฟังก์ชันช่วยเหลือบางอย่างสำหรับการทำงานกับอีเมล สำหรับโซลูชันอีเมลที่มีประสิทธิภาพยิ่งขึ้นโปรดดูที่คลาสอีเมลของ CodeIgniter

8

File Helper

ไฟล์ File Helper มีฟังก์ชันที่ช่วยในการทำงานกับไฟล์

9

Form Helper

ไฟล์ Form Helper มีฟังก์ชันที่ช่วยในการทำงานกับฟอร์ม

10

HTML Helper

ไฟล์ HTML Helper มีฟังก์ชันที่ช่วยในการทำงานกับ HTML

11

Inflector Helper

ไฟล์ Inflector Helper มีฟังก์ชันที่อนุญาตให้คุณเปลี่ยนคำเป็นพหูพจน์, เอกพจน์, อูฐ ฯลฯ

12

Language Helper

ไฟล์ Language Helper มีฟังก์ชันที่ช่วยในการทำงานกับไฟล์ภาษา

13

Number Helper

ไฟล์ Number Helper มีฟังก์ชันที่ช่วยคุณทำงานกับข้อมูลตัวเลข

14

Path Helper

ไฟล์ Path Helper มีฟังก์ชันที่อนุญาตให้คุณทำงานกับเส้นทางไฟล์บนเซิร์ฟเวอร์

15

Security Helper

ไฟล์ Security Helper มีฟังก์ชันที่เกี่ยวข้องกับความปลอดภัย

16

Smiley Helper

ไฟล์ Smiley Helper มีฟังก์ชันที่ให้คุณจัดการรอยยิ้ม (อีโมติคอน)

17

String Helper

ไฟล์ String Helper มีฟังก์ชันที่ช่วยในการทำงานกับสตริง

18

Text Helper

ไฟล์ Text Helper มีฟังก์ชันที่ช่วยในการทำงานกับข้อความ

19

Typography Helper

ไฟล์ Typography Helper มีฟังก์ชันที่ช่วยจัดรูปแบบข้อความของคุณในรูปแบบที่เกี่ยวข้องกับความหมาย

20

URL Helper

ไฟล์ URL Helper มีฟังก์ชันที่ช่วยในการทำงานกับ URL

21

XML Helper

ไฟล์ XML Helper มีฟังก์ชันที่ช่วยในการทำงานกับข้อมูล XML

กำลังโหลดตัวช่วย

สามารถโหลดตัวช่วยได้ตามที่แสดงด้านล่าง -

$this->load->helper('name');

ชื่อคือชื่อของผู้ช่วยเหลือ ตัวอย่างเช่นหากคุณต้องการโหลดตัวช่วย URL ก็สามารถโหลดเป็น -

$this->load->helper('url');

การกำหนดเส้นทาง

CodeIgniter มีระบบการกำหนดเส้นทาง URI ที่ใช้งานง่ายเพื่อให้คุณสามารถกำหนดเส้นทาง URL ใหม่ได้อย่างง่ายดาย โดยทั่วไปแล้วจะมีความสัมพันธ์แบบหนึ่งต่อหนึ่งระหว่างสตริง URL และคลาส / วิธีการควบคุมที่สอดคล้องกัน กลุ่มใน URI มักจะเป็นไปตามรูปแบบนี้ -

your-domain.com/class/method/id/
  • first segment แสดงถึงคลาสคอนโทรลเลอร์ที่ควรเรียกใช้

  • second segment แสดงถึงฟังก์ชันคลาสหรือวิธีการที่ควรเรียกใช้

  • thirdและส่วนเพิ่มเติมใด ๆ แสดงถึง ID และตัวแปรใด ๆ ที่จะส่งต่อไปยังคอนโทรลเลอร์

ในบางสถานการณ์คุณอาจต้องการเปลี่ยนกลไกการกำหนดเส้นทางเริ่มต้นนี้ CodeIgniter ให้สิ่งอำนวยความสะดวกซึ่งคุณสามารถกำหนดกฎการกำหนดเส้นทางของคุณเอง

ปรับแต่งกฎการกำหนดเส้นทาง

มีไฟล์เฉพาะที่คุณสามารถจัดการสิ่งเหล่านี้ได้ ไฟล์อยู่ที่ application / config / route.php คุณจะพบอาร์เรย์ที่เรียกว่า$route in which you can customize your routing rules. The key in the $อาร์เรย์เส้นทางจะตัดสินใจว่าจะกำหนดเส้นทางใดและค่าจะตัดสินใจว่าจะกำหนดเส้นทางไปที่ใด มีเส้นทางที่สงวนไว้สามเส้นทางใน CodeIgniter

SN เส้นทางและคำอธิบายที่สงวนไว้
1

$route['default_controller']

เส้นทางนี้ระบุว่าควรโหลดคลาสคอนโทรลเลอร์ใดหาก URI ไม่มีข้อมูลซึ่งจะเป็นกรณีที่ผู้ใช้โหลดรูท URL ของคุณ คุณควรมีเส้นทางเริ่มต้นมิฉะนั้นหน้า 404 จะปรากฏขึ้นโดยค่าเริ่มต้น เราสามารถตั้งค่าโฮมเพจของเว็บไซต์ได้ที่นี่เพื่อให้โหลดโดยค่าเริ่มต้น

2

$route['404_override']

เส้นทางนี้ระบุว่าควรโหลดคลาสคอนโทรลเลอร์ใดหากไม่พบคอนโทรลเลอร์ที่ร้องขอ จะลบล้างหน้าข้อผิดพลาดเริ่มต้น 404 มันจะไม่มีผลกับไฟล์show_404() ซึ่งจะโหลดค่าเริ่มต้นต่อไป error_404.php ไฟล์ใน application/views/errors/error_404.php.

3

$route['translate_uri_dashes']

เห็นได้ชัดจากค่าบูลีนนี่ไม่ใช่เส้นทางอย่างแน่นอน ตัวเลือกนี้ช่วยให้คุณสามารถแทนที่เครื่องหมายขีดกลาง ('-') โดยอัตโนมัติด้วยขีดล่างในส่วนควบคุมและวิธีการ URI ซึ่งช่วยให้คุณประหยัดรายการเส้นทางเพิ่มเติมหากคุณต้องการทำเช่นนั้น สิ่งนี้จำเป็นเนื่องจากเส้นประไม่ใช่อักขระชื่อคลาสหรือเมธอดที่ถูกต้องและจะทำให้เกิดข้อผิดพลาดร้ายแรงหากคุณพยายามใช้

สามารถปรับแต่งเส้นทางได้โดย wildcards หรือโดยใช้ regular expressions แต่โปรดทราบว่ากฎที่กำหนดเองสำหรับการกำหนดเส้นทางเหล่านี้ต้องมาตามกฎที่สงวนไว้

สัญลักษณ์แทน

เราสามารถใช้อักขระตัวแทนสองตัวตามที่อธิบายด้านล่าง -

  • (:num) - จะจับคู่ส่วนที่มีตัวเลขเท่านั้น

  • (:any) - จะจับคู่ส่วนที่มีอักขระใด ๆ

Example

$route['product/:num']='catalog/product_lookup';

ในตัวอย่างข้างต้นหากพบคำตามตัวอักษร "product" ในส่วนแรกของ URL และพบตัวเลขในส่วนที่ 2 จะใช้คลาส "catalog" และ "product_lookup" แทน

นิพจน์ทั่วไป

เช่นเดียวกับสัญลักษณ์แทนเราสามารถใช้นิพจน์ทั่วไปใน $route array keyส่วน. หาก URI ใด ๆ ตรงกับนิพจน์ทั่วไปจะถูกกำหนดเส้นทางไปยังส่วนค่าที่กำหนดไว้ใน $ route array

Example

$route['products/([a-z]+)/(\d+)']='$1/id_$2';

ในตัวอย่างข้างต้น URI ที่คล้ายกับผลิตภัณฑ์ / รองเท้า / 123 จะเรียก "shoes"คลาสคอนโทรลเลอร์และ"id_123" วิธี.

หลังจากตั้งค่าไซต์แล้วสิ่งต่อไปที่เราควรทำคือกำหนดค่าไซต์ โฟลเดอร์ application / config ประกอบด้วยกลุ่มไฟล์ที่ตั้งค่าการกำหนดค่าพื้นฐานของไซต์ของคุณ

การกำหนดค่า URL พื้นฐาน

URL พื้นฐานของไซต์สามารถกำหนดค่าได้ในไฟล์ application / config / config.php เป็น URL ไปยังรูท CodeIgniter ของคุณ โดยทั่วไปนี่จะเป็น URL พื้นฐานของคุณโดยมีเครื่องหมายทับเช่น

http://example.com/

หากไม่ได้ตั้งค่านี้ CodeIgniter จะพยายามเดาโปรโตคอลโดเมนและเส้นทางไปยังการติดตั้งของคุณ อย่างไรก็ตามคุณควรกำหนดค่านี้อย่างชัดเจนและไม่ต้องพึ่งพาการเดาอัตโนมัติโดยเฉพาะในสภาพแวดล้อมการใช้งานจริง คุณสามารถกำหนดค่า URL พื้นฐานในอาร์เรย์ $ config ด้วยคีย์“ base_url” ดังที่แสดงด้านล่าง -

$config['base_url'] = 'http://your-domain.com';

การกำหนดค่าฐานข้อมูล

ฐานข้อมูลของไซต์สามารถกำหนดค่าได้ในไฟล์ application / config / database.php บ่อยครั้งที่เราต้องตั้งค่าฐานข้อมูลสำหรับสภาพแวดล้อมที่แตกต่างกันเช่นการพัฒนาและการผลิต ด้วยอาร์เรย์หลายมิติที่มีให้ใน CodeIgniter เราสามารถตั้งค่าฐานข้อมูลสำหรับสภาพแวดล้อมที่แตกต่างกัน การตั้งค่าการกำหนดค่าจะถูกเก็บไว้ในอาร์เรย์ดังที่แสดงด้านล่าง -

$db['default'] = array( 
   'dsn'   => '', 
   'hostname' => 'localhost', 
   'username' => 'root', 
   'password' => '', 
   'database' => 'database_name', 
   'dbdriver' => 'mysqli', 
   'dbprefix' => '', 
   'pconnect' => TRUE, 
   'db_debug' => TRUE, 
   'cache_on' => FALSE, 
   'cachedir' => '', 
   'char_set' => 'utf8', 
   'dbcollat' => 'utf8_general_ci',
   'swap_pre' => '', 
   'encrypt' => FALSE, 
   'compress' => FALSE, 
   'stricton' => FALSE, 
   'failover' => array() 
);

คุณสามารถปล่อยให้ตัวเลือกต่างๆเป็นค่าเริ่มต้นยกเว้นชื่อโฮสต์ชื่อผู้ใช้รหัสผ่านฐานข้อมูลและ dbdriver

  • hostname - ระบุตำแหน่งของฐานข้อมูลของคุณที่นี่เช่น localhost หรือที่อยู่ IP

  • username - ตั้งชื่อผู้ใช้ของฐานข้อมูลของคุณที่นี่

  • password - ตั้งรหัสผ่านของฐานข้อมูลของคุณที่นี่

  • database - ตั้งชื่อฐานข้อมูลที่นี่

  • dbdriver - กำหนดประเภทของฐานข้อมูลที่คุณใช้เช่น MySQL, MySQLi, Postgre SQL, ODBC และ MS SQL

โดยการเปลี่ยนคีย์ของอาร์เรย์ $dbคุณสามารถตั้งค่าการกำหนดค่าอื่น ๆ ของฐานข้อมูลดังที่แสดงด้านล่าง ที่นี่เราได้ตั้งค่าคีย์เป็น‘test’ เพื่อตั้งค่าฐานข้อมูลสำหรับสภาพแวดล้อมการทดสอบโดยรักษาสภาพแวดล้อมฐานข้อมูลอื่นตามที่เป็นอยู่

$db['test'] = array( 
   'dsn'   => '', 
   'hostname' => 'localhost', 
   'username' => 'root', 
   'password' => '', 
   'database' => 'database_name', 
   'dbdriver' => 'mysqli', 
   'dbprefix' => '', 
   'pconnect' => TRUE, 
   'db_debug' => TRUE, 
   'cache_on' => FALSE, 
   'cachedir' => '', 
   'char_set' => 'utf8', 
   'dbcollat' => 'utf8_general_ci', 
   'swap_pre' => '', 
   'encrypt' => FALSE, 
   'compress' => FALSE, 
   'stricton' => FALSE, 
   'failover' => array()
);

คุณสามารถเปลี่ยนไปใช้สภาพแวดล้อมอื่นได้โดยเปลี่ยนค่าของตัวแปรดังที่แสดงด้านล่าง -

$active_group = ‘default’; //This will set the default environment

$active_group = ‘test’; //This will set the test environment

การกำหนดค่า Autoload

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

  • Libraries- เป็นรายการไลบรารีซึ่งควรโหลดอัตโนมัติ ระบุรายการไลบรารีในอาร์เรย์ดังที่แสดงด้านล่างเพื่อโหลดอัตโนมัติโดย CodeIgniter ในตัวอย่างนี้เรากำลังโหลดฐานข้อมูลอีเมลและไลบรารีเซสชันโดยอัตโนมัติ

$autoload['libraries'] = array('database', 'email', 'session');
  • Drivers- คลาสเหล่านี้อยู่ในระบบ / ไลบรารี / หรือในแอปพลิเคชัน / ไลบรารี / ไดเร็กทอรีของคุณ แต่จะอยู่ในไดเร็กทอรีย่อยของตนเองและขยายคลาส CI_Driver_Library พวกเขามีตัวเลือกไดรเวอร์ที่เปลี่ยนแทนกันได้หลายตัว ต่อไปนี้เป็นตัวอย่างของโปรแกรมควบคุมแคชอัตโนมัติ

$autoload['drivers'] = array('cache');
  • Helper files- เป็นรายชื่อไฟล์ตัวช่วยที่จะโหลดอัตโนมัติ จัดเตรียมรายการไลบรารีในอาร์เรย์ดังที่แสดงด้านล่างเพื่อโหลดอัตโนมัติโดย CodeIgniter ในตัวอย่างที่กำหนดเรากำลังโหลดอัตโนมัติ URL และตัวช่วยไฟล์

$autoload['helper'] = array('url', 'file');
  • Custom config files- ไฟล์เหล่านี้มีไว้สำหรับใช้เฉพาะในกรณีที่คุณสร้างไฟล์กำหนดค่าแบบกำหนดเอง มิฉะนั้นปล่อยว่างไว้ ต่อไปนี้เป็นตัวอย่างวิธีการโหลดไฟล์กำหนดค่าอัตโนมัติมากกว่าหนึ่งไฟล์

$autoload['config'] = array('config1', 'config2');
  • Language files- เป็นรายการไฟล์ภาษาที่ควรโหลดอัตโนมัติ ดูตัวอย่างที่ระบุด้านล่าง ระบุรายการภาษาในอาร์เรย์ดังที่แสดงด้านล่างเพื่อให้ CodeIgniter โหลดอัตโนมัติ โปรดทราบว่าอย่ารวมส่วน "_lang" ของไฟล์ของคุณ ตัวอย่างเช่น "codeigniter_lang.php" จะอ้างอิงเป็นอาร์เรย์ ('codeigniter');

  • Models- เป็นรายชื่อไฟล์โมเดลซึ่งควรจะโหลดอัตโนมัติ จัดเตรียมรายการโมเดลในอาร์เรย์ดังที่แสดงด้านล่างเพื่อโหลดอัตโนมัติโดย CodeIgniter ต่อไปนี้เป็นตัวอย่างวิธีการโหลดไฟล์มากกว่าหนึ่งรุ่นโดยอัตโนมัติ

$autoload['model'] = array('first_model', 'second_model');

เช่นเดียวกับกรอบงานอื่น ๆ เราจำเป็นต้องโต้ตอบกับฐานข้อมูลบ่อยครั้งและ CodeIgniter ทำให้งานนี้ง่ายสำหรับเรา มีชุดฟังก์ชันมากมายในการโต้ตอบกับฐานข้อมูล

ในส่วนนี้เราจะเข้าใจว่าฟังก์ชัน CRUD (สร้างอ่านอัปเดตลบ) ทำงานกับ CodeIgniter อย่างไร เราจะใช้stud ตารางเพื่อเลือกอัปเดตลบและแทรกข้อมูล stud ตาราง.

ชื่อตาราง: แกน
roll_no int (11)
ชื่อ วาร์ชาร์ (30)

การเชื่อมต่อกับฐานข้อมูล

เราสามารถเชื่อมต่อกับฐานข้อมูลได้สองวิธีดังต่อไปนี้ -

  • Automatic Connecting- การเชื่อมต่ออัตโนมัติสามารถทำได้โดยใช้ file application / config / autoload.php การเชื่อมต่ออัตโนมัติจะโหลดฐานข้อมูลสำหรับแต่ละหน้า เราต้องเพิ่มไลบรารีฐานข้อมูลดังที่แสดงด้านล่าง -

$autoload['libraries'] = array(‘database’);
  • Manual Connecting- หากคุณต้องการการเชื่อมต่อฐานข้อมูลสำหรับบางเพจเราสามารถทำการเชื่อมต่อด้วยตนเองได้ เราสามารถเชื่อมต่อกับฐานข้อมูลด้วยตนเองโดยเพิ่มบรรทัดต่อไปนี้ในคลาสใดก็ได้

$this->load->database();

ที่นี่เราไม่ได้ส่งผ่านอาร์กิวเมนต์ใด ๆ เนื่องจากทุกอย่างถูกตั้งค่าไว้ในแอปพลิเคชันไฟล์ config ฐานข้อมูล / config / database.php

การแทรกบันทึก

ในการแทรกระเบียนในฐานข้อมูลฟังก์ชัน insert () จะถูกใช้ดังแสดงในตารางต่อไปนี้ -

Syntax

แทรก ([ $ table = '' [, $ set = NULL [, $ escape = NULL ]]])

Parameters

  • $table( สตริง ) - ชื่อตาราง

  • $set( array ) - อาร์เรย์ที่เชื่อมโยงของคู่ฟิลด์ / ค่า

  • $escape( bool ) - ไม่ว่าจะออกจากค่าและตัวระบุ

Returns

จริงกับความสำเร็จเท็จเมื่อล้มเหลว

Return Type

บูล

ตัวอย่างต่อไปนี้แสดงวิธีการแทรกระเบียนใน studตาราง. $ data คืออาร์เรย์ที่เราได้ตั้งค่าข้อมูลและเพื่อแทรกข้อมูลนี้ลงในตารางstudเราก็ต้องผ่านอาร์เรย์นี้เพื่อฟังก์ชั่นแทรกใน 2 ครั้งที่โต้แย้ง

$data = array( 'roll_no' => ‘1’, 'name' => ‘Virat’ ); $this->db->insert("stud", $data);

การอัปเดตระเบียน

ในการอัปเดตเรกคอร์ดในฐานข้อมูลไฟล์ update() ใช้ฟังก์ชันร่วมกับ set() และ where()ฟังก์ชันดังแสดงในตารางด้านล่าง set() ฟังก์ชันจะตั้งค่าข้อมูลที่จะอัปเดต

Syntax

ชุด ( $ key [, $ value = '' [, $ escape = NULL ]])

Parameters

  • $key( ผสม ) - ชื่อฟิลด์หรืออาร์เรย์ของคู่ฟิลด์ / ค่า

  • $value( string ) - ค่าฟิลด์ถ้าคีย์ $ เป็นฟิลด์เดียว

  • $escape( bool ) - ไม่ว่าจะออกจากค่าและตัวระบุ

Returns

อินสแตนซ์ CI_DB_query_builder (วิธีการเชื่อมโยง)

Return Type

CI_DB_query_builder

where() ฟังก์ชันจะตัดสินใจว่าจะอัปเดตระเบียนใด

Syntax

โดยที่ ( $ key [, $ value = NULL [, $ escape = NULL ]])

Parameters

  • $key( ผสม ) - ชื่อของฟิลด์ที่จะเปรียบเทียบหรืออาร์เรย์ที่เชื่อมโยงกัน

  • $value( ผสม ) - หากมีคีย์เดียวเมื่อเทียบกับค่านี้

  • $escape( bool ) - ไม่ว่าจะออกจากค่าและตัวระบุ

Returns

อินสแตนซ์ DB_query_builder

Return Type

วัตถุ

สุดท้าย update() ฟังก์ชันจะอัปเดตข้อมูลในฐานข้อมูล

Syntax

ปรับปรุง ([ $ table = '' [, $ set = NULL [,$where = NULL[, $ขีด จำกัด = NULL ]]]])

Parameters

  • $table( สตริง ) - ชื่อตาราง

  • $set( array ) - อาร์เรย์ที่เชื่อมโยงของคู่ฟิลด์ / ค่า

  • $where( สตริง ) - คำสั่ง WHERE

  • $limit( int ) - ประโยค LIMIT

Returns

จริงกับความสำเร็จเท็จเมื่อล้มเหลว

Return Type

บูล
$data = array( 'roll_no' => ‘1’, 'name' => ‘Virat’ ); $this->db->set($data); $this->db->where("roll_no", ‘1’); 
$this->db->update("stud", $data);

การลบบันทึก

ในการลบบันทึกในฐานข้อมูลฟังก์ชัน delete () จะถูกใช้ดังแสดงในตารางต่อไปนี้ -

Syntax

ลบ ([ $ table = '' [, $ where = '' [,$limit = NULL[, $reset_data = TRUE ]]]])

Parameters

  • $table( ผสม ) - ตารางที่จะลบจาก; สตริงหรืออาร์เรย์

  • $where( สตริง ) - คำสั่ง WHERE

  • $limit( int ) - ประโยค LIMIT

  • $reset_data( bool ) - TRUE เพื่อรีเซ็ตส่วนคำสั่ง "write" ของคิวรี

Returns

อินสแตนซ์ CI_DB_query_builder (วิธีการเชื่อมโยง) หรือ FALSE เมื่อล้มเหลว

Return Type

ผสม

ใช้รหัสต่อไปนี้เพื่อลบบันทึกในไฟล์ studตาราง. อาร์กิวเมนต์แรกระบุชื่อของตารางที่จะลบบันทึกและอาร์กิวเมนต์ที่สองจะตัดสินใจว่าจะลบระเบียนใด

$this->db->delete("stud", "roll_no = 1");

การเลือกบันทึก

ในการเลือกเรกคอร์ดในฐานข้อมูลไฟล์ get ใช้ฟังก์ชันดังแสดงในตารางต่อไปนี้ -

Syntax

รับ ([ $ table = '' [, $ limit = NULL [, $ offset = NULL ]]])

Parameters

  • $table( string ) - ตารางที่จะสอบถามอาร์เรย์

  • $limit( int ) - ประโยค LIMIT

  • $offset( int ) - ส่วนคำสั่ง OFFSET

Returns

อินสแตนซ์ CI_DB_result (วิธีการเชื่อมโยง)

Return Type

CI_DB_result

ใช้รหัสต่อไปนี้เพื่อรับบันทึกทั้งหมดจากฐานข้อมูล คำสั่งแรกดึงข้อมูลทั้งหมดจากตาราง "แกน" และส่งคืนวัตถุซึ่งจะถูกเก็บไว้ในวัตถุ $ query คำสั่งที่สองเรียกว่าresult() ฟังก์ชั่นกับ $ query object เพื่อรับระเบียนทั้งหมดเป็นอาร์เรย์

$query = $this->db->get("stud"); $data['records'] = $query->result();

การปิดการเชื่อมต่อ

สามารถปิดการเชื่อมต่อฐานข้อมูลได้ด้วยตนเองโดยดำเนินการตามรหัสต่อไปนี้ -

$this->db->close();

ตัวอย่าง

สร้างคลาสคอนโทรลเลอร์ที่เรียกว่า Stud_controller.php และบันทึกไว้ที่ application/controller/Stud_controller.php

นี่คือตัวอย่างที่สมบูรณ์ซึ่งการดำเนินการที่กล่าวถึงข้างต้นทั้งหมดจะดำเนินการ ก่อนดำเนินการตัวอย่างต่อไปนี้ให้สร้างฐานข้อมูลและตารางตามคำแนะนำในตอนต้นของบทนี้และทำการเปลี่ยนแปลงที่จำเป็นในไฟล์กำหนดค่าฐานข้อมูลที่เก็บไว้ที่application/config/database.php

<?php 
   class Stud_controller extends CI_Controller {
	
      function __construct() { 
         parent::__construct(); 
         $this->load->helper('url'); $this->load->database(); 
      } 
  
      public function index() { 
         $query = $this->db->get("stud"); 
         $data['records'] = $query->result(); 
			
         $this->load->helper('url'); $this->load->view('Stud_view',$data); } public function add_student_view() { $this->load->helper('form'); 
         $this->load->view('Stud_add'); } public function add_student() { $this->load->model('Stud_Model');
			
         $data = array( 'roll_no' => $this->input->post('roll_no'), 
            'name' => $this->input->post('name') ); $this->Stud_Model->insert($data); $query = $this->db->get("stud"); $data['records'] = $query->result(); $this->load->view('Stud_view',$data); } public function update_student_view() { $this->load->helper('form'); 
         $roll_no = $this->uri->segment('3'); 
         $query = $this->db->get_where("stud",array("roll_no"=>$roll_no)); $data['records'] = $query->result(); $data['old_roll_no'] = $roll_no; $this->load->view('Stud_edit',$data); } public function update_student(){ $this->load->model('Stud_Model');
			
         $data = array( 'roll_no' => $this->input->post('roll_no'), 
            'name' => $this->input->post('name') ); $old_roll_no = $this->input->post('old_roll_no'); $this->Stud_Model->update($data,$old_roll_no); 
			
         $query = $this->db->get("stud"); 
         $data['records'] = $query->result(); 
         $this->load->view('Stud_view',$data); 
      } 
  
      public function delete_student() { 
         $this->load->model('Stud_Model'); $roll_no = $this->uri->segment('3'); $this->Stud_Model->delete($roll_no); $query = $this->db->get("stud"); $data['records'] = $query->result(); $this->load->view('Stud_view',$data); 
      } 
   } 
?>

สร้างคลาสโมเดลที่เรียกว่า Stud_Model.php และบันทึกไว้ใน application/models/Stud_Model.php

<?php 
   class Stud_Model extends CI_Model {
	
      function __construct() { 
         parent::__construct(); 
      } 
   
      public function insert($data) { 
         if ($this->db->insert("stud", $data)) { 
            return true; 
         } 
      } 
   
      public function delete($roll_no) { if ($this->db->delete("stud", "roll_no = ".$roll_no)) { return true; } } public function update($data,$old_roll_no) { $this->db->set($data); $this->db->where("roll_no", $old_roll_no); $this->db->update("stud", $data); 
      } 
   } 
?>

สร้างไฟล์มุมมองที่เรียกว่า Stud_add.php และบันทึกไว้ใน application/views/Stud_add.php

<!DOCTYPE html> 
<html lang = "en">
 
   <head> 
      <meta charset = "utf-8"> 
      <title>Students Example</title> 
   </head> 
	
   <body> 
      <form method = "" action = "">
		
         <?php 
            echo form_open('Stud_controller/add_student');
            echo form_label('Roll No.'); 
            echo form_input(array('id'=>'roll_no','name'=>'roll_no')); 
            echo "<br/>"; 
			
            echo form_label('Name'); 
            echo form_input(array('id'=>'name','name'=>'name')); 
            echo "<br/>"; 
			
            echo form_submit(array('id'=>'submit','value'=>'Add')); 
            echo form_close(); 
         ?> 
		
      </form> 
   </body>
	
</html>

สร้างไฟล์มุมมองที่เรียกว่า Stud_edit.php และบันทึกไว้ใน application/views/Stud_edit.php

<!DOCTYPE html> 
<html lang = "en">
 
   <head> 
      <meta charset = "utf-8"> 
      <title>Students Example</title> 
   </head> 
	
   <body> 
      <form method = "" action = "">
		
         <?php 
            echo form_open('Stud_controller/update_student'); 
            echo form_hidden('old_roll_no',$old_roll_no); 
            echo form_label('Roll No.'); 
            echo form_input(array('id'⇒'roll_no',
               'name'⇒'roll_no','value'⇒$records[0]→roll_no)); echo " "; echo form_label('Name'); echo form_input(array('id'⇒'name','name'⇒'name', 'value'⇒$records[0]→name)); 
            echo "
            "; 

            echo form_submit(array('id'⇒'sub mit','value'⇒'Edit')); 
            echo form_close();
         ?> 
			
      </form> 
   </body>
	
</html>

สร้างไฟล์มุมมองที่เรียกว่า Stud_view.php และบันทึกไว้ใน application/views/Stud_view.php

<!DOCTYPE html> 
<html lang = "en">
 
   <head> 
      <meta charset = "utf-8"> 
      <title>Students Example</title> 
   </head>
	
   <body> 
      <a href = "<?php echo base_url(); ?>
         index.php/stud/add_view">Add</a>
		
      <table border = "1"> 
         <?php 
            $i = 1; echo "<tr>"; echo "<td>Sr#</td>"; echo "<td>Roll No.</td>"; echo "<td>Name</td>"; echo "<td>Edit</td>"; echo "<td>Delete</td>"; echo "<tr>"; foreach($records as $r) { echo "<tr>"; echo "<td>".$i++."</td>"; 
               echo "<td>".$r->roll_no."</td>"; echo "<td>".$r->name."</td>"; 
               echo "<td><a href = '".base_url()."index.php/stud/edit/"
                  .$r->roll_no."'>Edit</a></td>"; echo "<td><a href = '".base_url()."index.php/stud/delete/" .$r->roll_no."'>Delete</a></td>"; 
               echo "<tr>"; 
            } 
         ?>
      </table> 
		
   </body>
	
</html>

ทำการเปลี่ยนแปลงต่อไปนี้ในไฟล์เส้นทางที่ application/config/routes.php และเพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์

$route['stud'] = "Stud_controller"; $route['stud/add'] = 'Stud_controller/add_student'; 
$route['stud/add_view'] = 'Stud_controller/add_student_view'; $route['stud/edit/(\d+)'] = 'Stud_controller/update_student_view/$1'; $route['stud/delete/(\d+)'] = 'Stud_controller/delete_student/$1';

ตอนนี้ให้เราดำเนินการตัวอย่างนี้โดยไปที่ URL ต่อไปนี้ในเบราว์เซอร์ แทนที่ yoursite.com ด้วย URL ของคุณ

http://yoursite.com/index.php/stud

ส่วนสำคัญของกรอบงาน CodeIgniter คือไลบรารี มีชุดไลบรารีที่หลากหลายซึ่งช่วยเพิ่มความเร็วในการพัฒนาแอปพลิเคชันทางอ้อม ไลบรารีระบบตั้งอยู่ที่ระบบ / ไลบรารี สิ่งที่เราต้องทำคือโหลดไลบรารีที่เราต้องการใช้ สามารถโหลดไลบรารีได้ตามที่แสดงด้านล่าง -

$this->load->library('class name');

ที่ไหน class nameคือชื่อไลบรารีที่เราต้องการโหลด หากเราต้องการโหลดหลายไลบรารีเราก็สามารถส่งอาร์เรย์เป็นอาร์กิวเมนต์ไปlibrary() ฟังก์ชันดังแสดงด้านล่าง -

$this->load->library(array('email', 'table'));

ชั้นเรียนห้องสมุด

ชั้นเรียนของห้องสมุดตั้งอยู่ใน system/libraries. แต่ละคลาสมีฟังก์ชั่นต่าง ๆ เพื่อลดความซับซ้อนของงานที่กำลังพัฒนา ตารางต่อไปนี้แสดงชื่อของคลาสไลบรารีและคำอธิบาย

SN คลาสห้องสมุดและคำอธิบาย
1

Benchmarking Class

คลาสการเปรียบเทียบจะทำงานอยู่เสมอทำให้สามารถคำนวณความแตกต่างของเวลาระหว่างสองจุดที่ทำเครื่องหมายไว้ได้

2

Caching Class

คลาสนี้จะแคชเพจเพื่อเข้าถึงความเร็วเพจอย่างรวดเร็ว

3

Calendaring Class

เมื่อใช้คลาสนี้คุณสามารถสร้างปฏิทินแบบไดนามิก

4

Shopping Cart Class

เมื่อใช้คลาสนี้คุณสามารถเพิ่มหรือลบรายการออกจากตะกร้าสินค้าได้ รายการจะถูกบันทึกในเซสชันและจะยังคงใช้งานได้จนกว่าผู้ใช้จะเรียกดูไซต์

5

Config Class

การตั้งค่าคอนฟิกสามารถเรียกดูได้โดยใช้คลาสนี้ คลาสนี้เริ่มต้นโดยอัตโนมัติ

6

Email Class

คลาสนี้มีฟังก์ชันที่เกี่ยวข้องกับอีเมลเช่นส่งหรือตอบกลับอีเมล

7

Encryption Class

คลาสนี้มีฟังก์ชันการเข้ารหัสข้อมูลสองทาง

8

File Uploading Class

คลาสนี้มีฟังก์ชันที่เกี่ยวข้องกับการอัพโหลดไฟล์ คุณสามารถตั้งค่าต่างๆเช่นประเภทของไฟล์ที่จะอัพโหลดขนาดของไฟล์เป็นต้น

9

Form Validation Class

คลาสนี้มีฟังก์ชันต่างๆเพื่อตรวจสอบความถูกต้องของฟอร์ม

10

FTP Class

คลาสนี้มีฟังก์ชันต่างๆที่เกี่ยวข้องกับ FTP เช่นการถ่ายโอนไฟล์เพื่อลบเซิร์ฟเวอร์ย้ายเปลี่ยนชื่อหรือลบไฟล์บนเซิร์ฟเวอร์

11

Image Manipulation Class

การจัดการรูปภาพเช่นการปรับขนาดการสร้างภาพขนาดย่อการครอบตัดการหมุนการสร้างลายน้ำสามารถทำได้ด้วยความช่วยเหลือของคลาสนี้

12

Input Class

คลาสนี้ประมวลผลข้อมูลอินพุตล่วงหน้าด้วยเหตุผลด้านความปลอดภัย

13

Language Class

คลาสนี้ใช้สำหรับการทำให้เป็นสากล

14

Loader Class

คลาสนี้โหลดองค์ประกอบต่างๆเช่นดูไฟล์ไดรเวอร์ตัวช่วยโมเดล ฯลฯ

15

Migrations Class

คลาสนี้มีฟังก์ชันที่เกี่ยวข้องกับการย้ายฐานข้อมูล

16

Output Class

คลาสนี้ส่งเอาต์พุตไปยังเบราว์เซอร์และแคชหน้าเว็บนั้นด้วย

17

Pagination Class

คลาสนี้เพิ่มฟังก์ชันการแบ่งหน้าในหน้าเว็บ

18

Template Parser Class

Template Parser Class สามารถทำการแทนที่ข้อความอย่างง่ายสำหรับตัวแปรหลอกที่อยู่ในไฟล์มุมมองของคุณ สามารถแยกวิเคราะห์ตัวแปรอย่างง่ายหรือคู่แท็กตัวแปร

19

Security Class

คลาสนี้มีฟังก์ชันที่เกี่ยวข้องกับความปลอดภัยเช่น XSS Filtering, CSRF เป็นต้น

20

Session Library

คลาสนี้มีฟังก์ชันเพื่อรักษาเซสชันของแอปพลิเคชันของคุณ

21

HTML Table

คลาสนี้ใช้เพื่อสร้างตาราง HTML โดยอัตโนมัติจากผลลัพธ์ของอาร์เรย์หรือฐานข้อมูล

22

Trackback Class

Trackback Class มีฟังก์ชันที่ช่วยให้คุณสามารถส่งและรับข้อมูล Trackback

23

Typography Class

Typography Class มีวิธีการที่ช่วยในการจัดรูปแบบข้อความ

24

Unit Testing Class

คลาสนี้มีฟังก์ชันสำหรับการทดสอบหน่วยแอปพลิเคชันของคุณและสร้างผลลัพธ์

25

URI Class

URI Class มีวิธีการที่ช่วยคุณดึงข้อมูลจากสตริง URI ของคุณ หากคุณใช้การกำหนดเส้นทาง URI คุณยังสามารถดึงข้อมูลเกี่ยวกับเซ็กเมนต์ที่กำหนดเส้นทางใหม่ได้

26

User Agent Class

User Agent Class มีฟังก์ชันที่ช่วยระบุข้อมูลเกี่ยวกับเบราว์เซอร์อุปกรณ์เคลื่อนที่หรือหุ่นยนต์ที่เข้าเยี่ยมชมไซต์ของคุณ นอกจากนี้คุณสามารถรับข้อมูลผู้อ้างอิงตลอดจนภาษาและข้อมูลชุดอักขระที่รองรับ

27

XML-RPC and XML-RPC Server Classes

คลาส XML-RPC ของ CodeIgniter อนุญาตให้คุณส่งคำขอไปยังเซิร์ฟเวอร์อื่นหรือตั้งค่าเซิร์ฟเวอร์ XML-RPC ของคุณเองเพื่อรับคำขอ

28

Zip Encoding Class

คลาสนี้ใช้เพื่อสร้างไฟล์ zip ของข้อมูลของคุณ

การสร้างไลบรารี

CodeIgniter มีไลบรารีมากมายซึ่งคุณสามารถค้นหาได้ system/libraries โฟลเดอร์ แต่ CodeIgniter ไม่ได้ จำกัด เพียงแค่ไลบรารีระบบเท่านั้นคุณสามารถสร้างไลบรารีของคุณเองได้เช่นกันซึ่งสามารถเก็บไว้ใน application/librariesโฟลเดอร์ คุณสามารถสร้างไลบรารีได้สามวิธี

  • สร้างห้องสมุดใหม่
  • ขยายไลบรารีดั้งเดิม
  • แทนที่ไลบรารีดั้งเดิม

สร้างห้องสมุดใหม่

ในขณะที่สร้างห้องสมุดใหม่ควรคำนึงถึงสิ่งต่อไปนี้ -

  • ชื่อไฟล์ต้องขึ้นต้นด้วยอักษรตัวใหญ่เช่น Mylibrary.php
  • ชื่อคลาสต้องขึ้นต้นด้วยอักษรตัวใหญ่เช่นคลาส Mylibrary
  • ชื่อของคลาสและชื่อของไฟล์ต้องตรงกัน

Mylibrary.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
   
   class Mylibrary {
	
      public function some_function() {
      }
   }
	
/* End of file Mylibrary.php */

Loading the Custom Library

คุณสามารถโหลดไลบรารีข้างต้นได้โดยดำเนินการตามบรรทัดต่อไปนี้ในคอนโทรลเลอร์ของคุณ

$this->load->library(‘mylibrary’);

mylibrary เป็นชื่อห้องสมุดของคุณและคุณสามารถเขียนเป็นตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ได้ ใช้ชื่อของไลบรารีที่ไม่มีนามสกุล“ .php” หลังจากโหลดไลบรารีแล้วคุณยังสามารถเรียกใช้ฟังก์ชันของคลาสนั้นได้ตามที่แสดงด้านล่าง

$this->mylibrary->some_function();

ขยาย Native Library

บางครั้งคุณอาจต้องเพิ่มฟังก์ชันการทำงานของคุณเองในไลบรารีที่ CodeIgniter จัดเตรียมไว้ให้ CodeIgniter จัดเตรียมสิ่งอำนวยความสะดวกที่คุณสามารถขยายไลบรารีดั้งเดิมและเพิ่มฟังก์ชันของคุณเองได้ เพื่อให้บรรลุสิ่งนี้คุณต้องขยายคลาสของคลาสไลบรารีดั้งเดิม ตัวอย่างเช่นหากคุณต้องการขยายไลบรารีอีเมลก็สามารถทำได้ดังที่แสดงด้านล่าง -

Class MY_Email extends CI_Email { 
}

ในตัวอย่างข้างต้นคลาส MY_Email กำลังขยายคลาสอีเมลของไลบรารีดั้งเดิม CI_Email ไลบรารีนี้สามารถโหลดได้โดยวิธีมาตรฐานในการโหลดไลบรารีอีเมล บันทึกรหัสด้านบนในไฟล์ My_Email.php

แทนที่ Native Library

ในบางสถานการณ์คุณไม่ต้องการใช้ไลบรารีเนทีฟในแบบที่มันทำงานและต้องการแทนที่ด้วยวิธีของคุณเอง ซึ่งสามารถทำได้โดยการแทนที่ไลบรารีเนทีฟ เพื่อให้บรรลุสิ่งนี้คุณเพียงแค่ต้องตั้งชื่อคลาสเดียวกันกับชื่อในไลบรารีดั้งเดิม ตัวอย่างเช่นหากคุณต้องการแทนที่ไฟล์Email classจากนั้นใช้รหัสตามที่แสดงด้านล่าง บันทึกชื่อไฟล์ของคุณด้วยEmail.php และตั้งชื่อชั้นเรียนให้ CI_Email.

Email.php

Class CI_Email { 
}

หลายครั้งขณะใช้แอปพลิเคชันเราพบข้อผิดพลาด เป็นเรื่องที่น่ารำคาญมากสำหรับผู้ใช้หากข้อผิดพลาดไม่ได้รับการจัดการอย่างเหมาะสม CodeIgniter มีกลไกการจัดการข้อผิดพลาดที่ง่ายดาย

คุณต้องการให้ข้อความแสดงเมื่อแอปพลิเคชันอยู่ในโหมดกำลังพัฒนาแทนที่จะอยู่ในโหมดการใช้งานจริงเนื่องจากข้อความแสดงข้อผิดพลาดสามารถแก้ไขได้อย่างง่ายดายในขั้นตอนการพัฒนา

สภาพแวดล้อมของแอปพลิเคชันของคุณสามารถเปลี่ยนแปลงได้โดยการเปลี่ยนบรรทัดที่ระบุด้านล่างจาก index.phpไฟล์. สามารถตั้งค่าเป็นอะไรก็ได้ แต่โดยปกติจะมีค่าสามค่า (การพัฒนาการทดสอบการผลิต) ที่ใช้เพื่อจุดประสงค์นี้

define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');

สภาพแวดล้อมที่แตกต่างกันจะต้องมีการรายงานข้อผิดพลาดในระดับที่แตกต่างกัน ตามค่าเริ่มต้นโหมดการพัฒนาจะแสดงข้อผิดพลาดและการทดสอบและโหมดสดจะซ่อนไว้ CodeIgniter มีฟังก์ชันสามอย่างที่แสดงด้านล่างเพื่อจัดการข้อผิดพลาด

  • show_error() ฟังก์ชันแสดงข้อผิดพลาดในรูปแบบ HTML ที่ด้านบนของหน้าจอ

Syntax

show_error ( ข้อความ $,$status_code, $หัวเรื่อง = 'พบข้อผิดพลาด' )

Parameters

  • $message( ผสม ) - ข้อความแสดงข้อผิดพลาด

  • $status_code( int ) - รหัสสถานะการตอบกลับ HTTP

  • $heading( สตริง ) - ส่วนหัวของหน้าข้อผิดพลาด

Return Type

ผสม
  • show_404() ฟังก์ชันแสดงข้อผิดพลาดหากคุณพยายามเข้าถึงเพจที่ไม่มีอยู่

Syntax

show_404 ( $ page = '', $ log_error = TRUE )

Parameters

  • $page( สตริง ) - สตริง URI

  • $log_error( bool ) - บันทึกข้อผิดพลาดหรือไม่

Return Type

เป็นโมฆะ
  • log_message()ฟังก์ชันใช้ในการเขียนข้อความบันทึก สิ่งนี้มีประโยชน์เมื่อคุณต้องการเขียนข้อความแบบกำหนดเอง

Syntax

log_message ( ระดับ $,$message, $php_error = FALSE )

Parameters

  • $level( สตริง ) - ระดับบันทึก: 'error', 'debug' หรือ 'info'

  • $message( สตริง ) - ข้อความที่จะบันทึก

  • $php_error( bool ) - เรากำลังบันทึกข้อความแสดงข้อผิดพลาด PHP ดั้งเดิมหรือไม่

Return Type

เป็นโมฆะ

สามารถเปิดใช้งานการบันทึกใน application/config/config.phpไฟล์. ด้านล่างนี้เป็นภาพหน้าจอของไฟล์ config.php ซึ่งคุณสามารถตั้งค่า threshold ได้

/*
|--------------------------------------------------------------------------------
|   Error Logging Threshold
|--------------------------------------------------------------------------------
| You can enable error logging by setting a threshold over zero. The 
| threshold determines what gets logged. Threshold options are:
|
|   0 = Disable logging, Error logging TURNED OFF
|   1 = Error Message (including PHP errors)
|   2 = Debug Message
|   3 = Informational Messages
|   4 = All Messages
|
| You can also pass an array with threshold levels to show individual error types
|
|   array(2) = Debug Message, without Error Messages
| For a live site you'll usually only enable Errors (1) to be logged otherwise 
| your log files will fill up very fast.
|
*/
$config['log_threshold'] = 0;

คุณสามารถค้นหาข้อความบันทึกใน application/log/. ตรวจสอบให้แน่ใจว่าไดเร็กทอรีนี้สามารถเขียนได้ก่อนที่คุณจะเปิดใช้งานล็อกไฟล์

เทมเพลตต่างๆสำหรับข้อความแสดงข้อผิดพลาดสามารถพบได้ใน application/views/errors/cli หรือ application/views/errors/html.

การใช้คลาสการอัปโหลดไฟล์เราสามารถอัปโหลดไฟล์และเรายังสามารถ จำกัด ประเภทและขนาดของไฟล์ที่จะอัปโหลด ทำตามขั้นตอนที่แสดงในตัวอย่างที่กำหนดเพื่อทำความเข้าใจกระบวนการอัพโหลดไฟล์ใน CodeIgniter

ตัวอย่าง

คัดลอกรหัสต่อไปนี้และเก็บไว้ที่ application/view/Upload_form.php.

<html>
 
   <head> 
      <title>Upload Form</title> 
   </head>
	
   <body> 
      <?php echo $error;?> 
      <?php echo form_open_multipart('upload/do_upload');?> 
		
      <form action = "" method = "">
         <input type = "file" name = "userfile" size = "20" /> 
         <br /><br /> 
         <input type = "submit" value = "upload" /> 
      </form> 
		
   </body>
	
</html>

คัดลอกรหัสที่ระบุด้านล่างและเก็บไว้ที่ application/view/Upload_success.php

<html>
 
   <head> 
      <title>Upload Form</title> 
   </head>
	
   <body>  
      <h3>Your file was successfully uploaded!</h3>  
		
      <ul> 
         <?phpforeach ($upload_data as $item => $value):?> 
         <li><?php echo $item;?>: <?php echo $value;?></li> 
         <?phpendforeach; ?>
      </ul>  
		
      <p><?php echo anchor('upload', 'Upload Another File!'); ?></p>  
   </body>
	
</html>

คัดลอกรหัสที่ระบุด้านล่างและเก็บไว้ที่ application/controllers/Upload.php. สร้าง“uploads” ที่รากของ CodeIgniter เช่นที่ไดเร็กทอรีหลักของโฟลเดอร์แอปพลิเคชัน

<?php
  
   class Upload extends CI_Controller {
	
      public function __construct() { 
         parent::__construct(); 
         $this->load->helper(array('form', 'url')); } public function index() { $this->load->view('upload_form', array('error' => ' ' )); 
      } 
		
      public function do_upload() { 
         $config['upload_path'] = './uploads/'; $config['allowed_types'] = 'gif|jpg|png'; 
         $config['max_size'] = 100; $config['max_width']     = 1024; 
         $config['max_height'] = 768; $this->load->library('upload', $config); if ( ! $this->upload->do_upload('userfile')) {
            $error = array('error' => $this->upload->display_errors()); 
            $this->load->view('upload_form', $error); 
         }
			
         else { 
            $data = array('upload_data' => $this->upload->data()); 
            $this->load->view('upload_success', $data); 
         } 
      } 
   } 
?>

ทำการเปลี่ยนแปลงต่อไปนี้ในไฟล์เส้นทางใน application/config/routes.php และเพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์

$route['upload'] = 'Upload';

ตอนนี้ให้เราดำเนินการตัวอย่างนี้โดยไปที่ URL ต่อไปนี้ในเบราว์เซอร์ แทนที่ yoursite.com ด้วย URL ของคุณ

http://yoursite.com/index.php/upload

มันจะสร้างหน้าจอต่อไปนี้ -

หลังจากอัปโหลดไฟล์สำเร็จคุณจะเห็นหน้าจอต่อไปนี้ -

การส่งอีเมลใน CodeIgniter นั้นง่ายกว่ามาก คุณยังกำหนดการตั้งค่าเกี่ยวกับอีเมลใน CodeIgniter CodeIgniter มีคุณสมบัติดังต่อไปนี้สำหรับการส่งอีเมล -

  • หลายโปรโตคอล - Mail, Sendmail และ SMTP
  • การเข้ารหัส TLS และ SSL สำหรับ SMTP
  • ผู้รับหลายคน
  • CC และ BCC
  • อีเมล HTML หรือ Plaintext
  • Attachments
  • การตัดคำ
  • Priorities
  • BCC Batch Mode ช่วยให้สามารถแบ่งรายชื่ออีเมลขนาดใหญ่ออกเป็นชุด BCC ขนาดเล็กได้
  • เครื่องมือแก้ไขข้อบกพร่องอีเมล

คลาสอีเมลมีฟังก์ชั่นต่อไปนี้เพื่อลดความซับซ้อนในการส่งอีเมล

SN ไวยากรณ์ พารามิเตอร์ กลับ ประเภทผลตอบแทน
1 จาก ( $ from [, $ name = '' [, $ return_path = NULL ]])

$from( สตริง ) - ที่อยู่อีเมล“ จาก”

$name( สตริง ) - ชื่อที่แสดง“ จาก”

$return_path( สตริง ) - ที่อยู่อีเมลที่เป็นทางเลือกในการเปลี่ยนเส้นทางอีเมลที่ไม่ได้ส่งไปยัง

อินสแตนซ์ CI_Email (วิธีการเชื่อมโยง) CI_Email
2 reply_to ( $ replyto [, $ name = '' ])

$replyto( สตริง ) - ที่อยู่อีเมลสำหรับการตอบกลับ

$name( สตริง ) - ชื่อที่แสดงสำหรับที่อยู่อีเมลตอบกลับ

อินสแตนซ์ CI_Email (วิธีการเชื่อมโยง) CI_Email
2 ถึง ( $ ถึง )

$to( ผสม ) - สตริงที่คั่นด้วยจุลภาคหรืออาร์เรย์ของที่อยู่อีเมล

อินสแตนซ์ CI_Email (วิธีการเชื่อมโยง) CI_Email
3 ซีซี ( $ cc )

$cc( ผสม ) - สตริงที่คั่นด้วยจุลภาคหรืออาร์เรย์ของที่อยู่อีเมล

อินสแตนซ์ CI_Email (วิธีการเชื่อมโยง) CI_Email
4 สำเนาลับ ( $ bcc [, $ limit = '' ])

$bcc( ผสม ) - สตริงที่คั่นด้วยจุลภาคหรืออาร์เรย์ของที่อยู่อีเมล

$limit( int ) - จำนวนอีเมลสูงสุดที่จะส่งต่อชุด

อินสแตนซ์ CI_Email (วิธีการเชื่อมโยง) CI_Email
5 เรื่อง ( $ subject )

$subject( สตริง ) - บรรทัดหัวเรื่องอีเมล

อินสแตนซ์ CI_Email (วิธีการเชื่อมโยง) CI_Email
6 ข้อความ ( $ body )

$body( สตริง ) - เนื้อหาข้อความอีเมล

อินสแตนซ์ CI_Email (วิธีการเชื่อมโยง) CI_Email
7 set_alt_message ( $ str )

$str( สตริง ) - เนื้อหาข้อความอีเมลทางเลือก

อินสแตนซ์ CI_Email (วิธีการเชื่อมโยง) CI_Email
8 set_header ( $ header, $ value )

$header( สตริง ) - ชื่อส่วนหัว

$value( สตริง ) - ค่าส่วนหัว

อินสแตนซ์ CI_Email (วิธีการเชื่อมโยง) CI_Email
9 ชัดเจน ([ $ clear_attachments = FALSE ])

$clear_attachments( bool ) - ล้างไฟล์แนบหรือไม่

อินสแตนซ์ CI_Email (วิธีการเชื่อมโยง) CI_Email
10 ส่ง ([ $ auto_clear = TRUE ])

$auto_clear( บูล ) - ล้างข้อมูลข้อความโดยอัตโนมัติหรือไม่

อินสแตนซ์ CI_Email (วิธีการเชื่อมโยง) CI_Email
11 แนบ ($ filename [, $disposition = ''[, $newname = NULL [, $ mime = '']]])

$filename( สตริง ) - ชื่อไฟล์

$disposition( สตริง ) - 'การจัดการ' ของไฟล์แนบ ไคลเอนต์อีเมลส่วนใหญ่ตัดสินใจด้วยตนเองโดยไม่คำนึงถึงข้อกำหนด MIME ที่ใช้ที่นี่ iana

$newname( สตริง ) - ชื่อไฟล์ที่กำหนดเองเพื่อใช้ในอีเมล

$mime( สตริง ) - ประเภท MIME ที่จะใช้ (มีประโยชน์สำหรับข้อมูลที่บัฟเฟอร์)

อินสแตนซ์ CI_Email (วิธีการเชื่อมโยง) CI_Email
12 attachment_cid ( ชื่อไฟล์ $ )

$filename( สตริง ) - ชื่อไฟล์ไฟล์แนบที่มีอยู่

เอกสารแนบ Content-ID หรือ FALSE หากไม่พบ สตริง

การส่งอีเมล

ในการส่งอีเมลโดยใช้ CodeIgniter ก่อนอื่นคุณต้องโหลดไลบรารีอีเมลโดยใช้สิ่งต่อไปนี้ -

$this->load->library('email');

หลังจากโหลดไลบรารีเพียงเรียกใช้ฟังก์ชันต่อไปนี้เพื่อตั้งค่าองค์ประกอบที่จำเป็นในการส่งอีเมล from() ฟังก์ชันใช้ในการตั้งค่า - จากตำแหน่งที่ส่งอีเมลและ to()ใช้ฟังก์ชัน - ผู้ที่กำลังส่งอีเมล subject() และ message() ฟังก์ชั่นใช้เพื่อตั้งหัวเรื่องและข้อความของอีเมล

$this->email->from('[email protected]', 'Your Name'); $this->email->to('[email protected]');
 
$this->email->subject('Email Test'); $this->email->message('Testing the email class.');

หลังจากนั้นให้รันไฟล์ send() ตามที่แสดงด้านล่างเพื่อส่งอีเมล

$this->email->send();

ตัวอย่าง

สร้างไฟล์คอนโทรลเลอร์ Email_controller.php และบันทึกไว้ใน application/controller/Email_controller.php.

<?php 
   class Email_controller extends CI_Controller { 
 
      function __construct() { 
         parent::__construct(); 
         $this->load->library('session'); 
         $this->load->helper('form'); } public function index() { $this->load->helper('form'); 
         $this->load->view('email_form'); } public function send_mail() { $from_email = "[email protected]"; 
         $to_email = $this->input->post('email'); 
   
         //Load email library 
         $this->load->library('email'); $this->email->from($from_email, 'Your Name'); $this->email->to($to_email); $this->email->subject('Email Test'); 
         $this->email->message('Testing the email class.'); //Send mail if($this->email->send()) 
         $this->session->set_flashdata("email_sent","Email sent successfully."); else $this->session->set_flashdata("email_sent","Error in sending Email."); 
         $this->load->view('email_form'); 
      } 
   } 
?>

สร้างไฟล์มุมมองที่เรียกว่า email_form.php และบันทึกไว้ที่ application/views/email_form.php

<!DOCTYPE html> 
<html lang = "en"> 

   <head> 
      <meta charset = "utf-8"> 
      <title>CodeIgniter Email Example</title> 
   </head>
	
   <body> 
      <?php 
         echo $this->session->flashdata('email_sent'); 
         echo form_open('/Email_controller/send_mail'); 
      ?> 
		
      <input type = "email" name = "email" required /> 
      <input type = "submit" value = "SEND MAIL"> 
		
      <?php 
         echo form_close(); 
      ?> 
   </body>
	
</html>

ทำการเปลี่ยนแปลงในไฟล์ routes.php ไฟล์ใน application/config/routes.php และเพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์

$route['email'] = 'Email_Controller';

ดำเนินการตามตัวอย่างข้างต้นโดยไปที่ลิงค์ต่อไปนี้ แทนที่ yoursite.com ด้วย URL ของไซต์ของคุณ

http://yoursite.com/index.php/email

การตรวจสอบความถูกต้องเป็นกระบวนการที่สำคัญในขณะที่สร้างเว็บแอปพลิเคชัน เพื่อให้แน่ใจว่าข้อมูลที่เราได้รับนั้นเหมาะสมและถูกต้องในการจัดเก็บหรือประมวลผล CodeIgniter ทำให้งานนี้ง่ายมาก ให้เราเข้าใจกระบวนการนี้ด้วยตัวอย่างง่ายๆ

ตัวอย่าง

สร้างไฟล์ดู myform.php และบันทึกรหัสด้านล่างไว้ใน application/views/myform.php. หน้านี้จะแสดงแบบฟอร์มที่ผู้ใช้สามารถส่งชื่อของเขาและเราจะตรวจสอบความถูกต้องของหน้านี้เพื่อให้แน่ใจว่าไม่ควรว่างเปล่าในขณะที่ส่ง

<html>
 
   <head> 
      <title>My Form</title> 
   </head>
	
   <body>
      <form action = "" method = "">
         <?php echo validation_errors(); ?>  
         <?php echo form_open('form'); ?>  
         <h5>Name</h5> 
         <input type = "text" name = "name" value = "" size = "50" />  
         <div><input type = "submit" value = "Submit" /></div>  
      </form>  
   </body>
	
</html>

สร้างไฟล์ดู formsuccess.php และบันทึกไว้ใน application/views/formsuccess.php. หน้านี้จะปรากฏขึ้นหากตรวจสอบแบบฟอร์มสำเร็จ

<html>
 
   <head> 
      <title>My Form</title>
   </head> 
	
   <body>  
      <h3>Your form was successfully submitted!</h3>  
      <p><?php echo anchor('form', 'Try it again!'); ?></p>  
   </body>
	
</html>

สร้างไฟล์คอนโทรลเลอร์ Form.php และบันทึกไว้ใน application/controller/Form.php. แบบฟอร์มนี้จะแสดงข้อผิดพลาดหากไม่ได้รับการตรวจสอบอย่างถูกต้องหรือเปลี่ยนเส้นทางไปที่formsuccess.php หน้า.

<?php
  
   class Form extends CI_Controller { 
	
      public function index() { 
         /* Load form helper */ 
         $this->load->helper(array('form'));
			
         /* Load form validation library */ 
         $this->load->library('form_validation'); /* Set validation rule for name field in the form */ $this->form_validation->set_rules('name', 'Name', 'required'); 
			
         if ($this->form_validation->run() == FALSE) { $this->load->view('myform'); 
         } 
         else { 
            $this->load->view('formsuccess'); 
         } 
      }
   }
?>

เพิ่มบรรทัดต่อไปนี้ใน application/config/routes.php.

$route['validation'] = 'Form';

ให้เราดำเนินการตามตัวอย่างนี้โดยไปที่ URL ต่อไปนี้ในเบราว์เซอร์ URL นี้อาจแตกต่างกันไปตามไซต์ของคุณ

http://yoursite.com/index.php/validation

มันจะสร้างหน้าจอต่อไปนี้ -

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

หลังจากป้อนชื่อสำเร็จคุณจะถูกนำไปยังหน้าจอดังที่แสดงด้านล่าง

ในตัวอย่างข้างต้นเราได้ใช้การตั้งค่ากฎที่จำเป็น มีกฎมากมายใน CodeIgniter ซึ่งอธิบายไว้ด้านล่าง

การอ้างอิงกฎการตรวจสอบ

ต่อไปนี้เป็นรายการของกฎพื้นฐานทั้งหมดที่พร้อมใช้งาน -

กฎ พารามิเตอร์ คำอธิบาย ตัวอย่าง

required

ไม่ ส่งคืนค่า FALSE หากองค์ประกอบของฟอร์มว่างเปล่า

matches

ใช่ ส่งคืนค่า FALSE หากองค์ประกอบของฟอร์มไม่ตรงกับองค์ประกอบในพารามิเตอร์ ตรงกับ [form_item]

regex_match

ใช่ ส่งคืนค่า FALSE หากองค์ประกอบของฟอร์มไม่ตรงกับนิพจน์ทั่วไป regex_match [/ regex /]

differs

ใช่ ส่งกลับค่า FALSE หากองค์ประกอบของฟอร์มไม่แตกต่างจากองค์ประกอบในพารามิเตอร์ แตกต่าง [form_item]

is_unique

ใช่ ส่งคืนค่า FALSE หากองค์ประกอบฟอร์มไม่ซ้ำกับตารางและชื่อฟิลด์ในพารามิเตอร์ หมายเหตุ - กฎนี้กำหนดให้ต้องเปิดใช้Query Builderเพื่อให้ทำงานได้ is_unique [table.field]

min_length

ใช่ ส่งคืนค่า FALSE หากองค์ประกอบฟอร์มสั้นกว่าค่าพารามิเตอร์ min_length [3]

max_length

ใช่ ส่งคืนค่า FALSE หากองค์ประกอบฟอร์มยาวกว่าค่าพารามิเตอร์ max_length [12]

exact_length

ใช่ ส่งคืนค่า FALSE หากองค์ประกอบของฟอร์มไม่ตรงกับค่าพารามิเตอร์ ความยาวที่แน่นอน [8]

greater_than

ใช่ ส่งคืนค่า FALSE หากองค์ประกอบของฟอร์มน้อยกว่าหรือเท่ากับค่าพารามิเตอร์หรือไม่ใช่ตัวเลข มากกว่า [8]

greater_than_equal_to

ใช่ ส่งคืนค่า FALSE หากองค์ประกอบของฟอร์มน้อยกว่าค่าพารามิเตอร์หรือไม่ใช่ตัวเลข มากขึ้น_than_equal_to [8]

less_than

ใช่ ส่งคืนค่า FALSE หากองค์ประกอบฟอร์มมากกว่าหรือเท่ากับค่าพารามิเตอร์หรือไม่ใช่ตัวเลข น้อยกว่า [8]

less_than_equal_to

ใช่ ส่งคืนค่า FALSE หากองค์ประกอบฟอร์มมากกว่าค่าพารามิเตอร์หรือไม่ใช่ตัวเลข less_than_equal_to [8]

in_list

ใช่ ส่งคืนค่า FALSE หากองค์ประกอบฟอร์มไม่อยู่ในรายการที่กำหนดไว้ล่วงหน้า in_list [แดงน้ำเงินเขียว]

alpha

ไม่ ส่งกลับค่า FALSE หากองค์ประกอบฟอร์มมีสิ่งอื่นนอกเหนือจากอักขระตามตัวอักษร

alpha_numeric

ไม่ ส่งกลับค่า FALSE หากองค์ประกอบฟอร์มมีสิ่งอื่นนอกเหนือจากอักขระที่เป็นตัวอักษรและตัวเลข

alpha_numeric_spaces

ไม่ ส่งกลับค่า FALSE หากองค์ประกอบฟอร์มมีสิ่งอื่นนอกเหนือจากอักขระที่เป็นตัวอักษรและตัวเลขคละกันหรือช่องว่าง ควรใช้หลังการตัดแต่งเพื่อหลีกเลี่ยงช่องว่างที่จุดเริ่มต้นหรือจุดสิ้นสุด

alpha_dash

ไม่ ส่งคืนค่า FALSE หากองค์ประกอบฟอร์มมีสิ่งอื่นนอกเหนือจากอักขระที่เป็นตัวเลขและตัวอักษรขีดล่างหรือขีดกลาง

numeric

ไม่ ส่งกลับค่า FALSE หากองค์ประกอบฟอร์มมีสิ่งอื่นที่ไม่ใช่อักขระตัวเลข

integer

ไม่ ส่งคืนค่า FALSE หากองค์ประกอบฟอร์มมีสิ่งอื่นที่ไม่ใช่จำนวนเต็ม

decimal

ไม่ ส่งคืนค่า FALSE หากองค์ประกอบฟอร์มมีสิ่งอื่นนอกเหนือจากตัวเลขทศนิยม

is_natural

ไม่ ส่งคืนค่า FALSE หากองค์ประกอบฟอร์มมีสิ่งอื่นนอกเหนือจากจำนวนธรรมชาติ - 0, 1, 2, 3 เป็นต้น

is_natural_no_zero

ไม่ ส่งคืนค่า FALSE หากองค์ประกอบฟอร์มมีสิ่งอื่นที่ไม่ใช่จำนวนธรรมชาติ แต่ไม่ใช่ศูนย์ - 1, 2, 3 เป็นต้น

valid_url

ไม่ ส่งคืนค่า FALSE หากองค์ประกอบฟอร์มไม่มี URL ที่ถูกต้อง

valid_email

ไม่ ส่งกลับค่า FALSE หากองค์ประกอบฟอร์มไม่มีที่อยู่อีเมลที่ถูกต้อง

valid_emails

ไม่ ส่งคืน FALSE หากค่าใด ๆ ที่ระบุในรายการที่คั่นด้วยจุลภาคไม่ใช่อีเมลที่ถูกต้อง

valid_ip

ไม่ ส่งกลับค่า FALSE หาก IP ที่ให้มาไม่ถูกต้อง ยอมรับพารามิเตอร์ทางเลือกของ 'ipv4' หรือ 'ipv6' เพื่อระบุรูปแบบ IP

valid_base64

ไม่ ส่งคืน FALSE หากสตริงที่ให้มามีสิ่งอื่นนอกเหนือจากอักขระ Base64 ที่ถูกต้อง

เมื่อสร้างเว็บไซต์เรามักจะต้องติดตามกิจกรรมและสถานะของผู้ใช้และเพื่อจุดประสงค์นี้เราจึงต้องใช้ session. CodeIgniter มีคลาสเซสชั่นสำหรับวัตถุประสงค์นี้

การเริ่มต้นเซสชัน

ข้อมูลเซสชันมีให้บริการทั่วโลกผ่านทางไซต์ แต่ในการใช้ข้อมูลเหล่านั้นเราต้องเริ่มต้นเซสชันก่อน เราสามารถทำได้โดยดำเนินการบรรทัดต่อไปนี้ในตัวสร้าง

$this->load->library('session');

หลังจากโหลดไลบรารีเซสชันคุณสามารถใช้วัตถุเซสชันดังที่แสดงด้านล่าง

$this->session

เพิ่มข้อมูลเซสชัน

ใน PHP เราใช้ไฟล์ $_SESSION อาร์เรย์เพื่อตั้งค่าข้อมูลใด ๆ ในเซสชันดังที่แสดงด้านล่าง

$_SESSION[‘key’] = value;

ที่ไหน 'key'เป็นกุญแจสำคัญของอาร์เรย์และ value ถูกกำหนดทางด้านขวาของเท่ากับเครื่องหมาย

สิ่งเดียวกันสามารถทำได้ใน CodeIgniter ดังที่แสดงด้านล่าง

$this->session->set_userdata('some_name', 'some_value');

set_userdata()ฟังก์ชันรับสองอาร์กิวเมนต์ อาร์กิวเมนต์แรกsome_nameคือชื่อของตัวแปรเซสชันซึ่งอยู่ภายใต้ some_value จะถูกเก็บไว้

set_userdata() ฟังก์ชั่นยังรองรับไวยากรณ์อื่นซึ่งคุณสามารถส่งอาร์เรย์เพื่อจัดเก็บค่าดังที่แสดงด้านล่าง

$newdata = array( 
   'username'  => 'johndoe', 
   'email'     => '[email protected]', 
   'logged_in' => TRUE
);  

$this->session->set_userdata($newdata);

ลบข้อมูลเซสชัน

ใน PHP เราสามารถลบข้อมูลที่เก็บไว้ในเซสชันโดยใช้ไฟล์ unset() ฟังก์ชันดังที่แสดงด้านล่าง

unset($_SESSION[‘some_name’]);

การลบข้อมูลเซสชันใน CodeIgniter ทำได้ง่ายมากดังที่แสดงด้านล่าง เวอร์ชันด้านล่างของunset_userdata() ฟังก์ชันจะลบตัวแปรเดียวจากเซสชัน

$this->session->unset_userdata('some_name');

หากคุณต้องการลบค่าเพิ่มเติมจากเซสชันหรือลบอาร์เรย์ทั้งหมดคุณสามารถใช้เวอร์ชันด้านล่างของ unset_userdata() ฟังก์ชัน

$this->session->unset_userdata($array_items);

ดึงข้อมูลเซสชัน

หลังจากตั้งค่าข้อมูลในเซสชันแล้วเรายังสามารถดึงข้อมูลดังกล่าวได้ตามที่แสดงด้านล่าง Userdata()ฟังก์ชันจะถูกใช้เพื่อจุดประสงค์นี้ ฟังก์ชันนี้จะกลับมาNULL หากข้อมูลที่คุณพยายามเข้าถึงไม่มีอยู่

$name = $this->session->userdata('name');

ตัวอย่าง

สร้างคลาสคอนโทรลเลอร์ที่เรียกว่า Session_controller.php และบันทึกไว้ใน application/controller/Session_controller.php.

<?php 
   class Session_controller extends CI_Controller {
	
      public function index() { 
         //loading session library 
         $this->load->library('session'); //adding data to session $this->session->set_userdata('name','virat');
			
         $this->load->view('session_view'); } public function unset_session_data() { //loading session library $this->load->library('session');
			
         //removing session data 
         $this->session->unset_userdata('name'); $this->load->view('session_view'); 
      } 
		
   } 
?>

สร้างไฟล์มุมมองที่เรียกว่า session_view.php และบันทึกไว้ใน application/views/session_view.php

<!DOCTYPE html> 
<html lang = "en">
 
   <head> 
      <meta charset = "utf-8"> 
      <title>CodeIgniter Session Example</title> 
   </head>
	
   <body> 
      Welcome <?php echo $this->session->userdata('name'); ?> 
      <br> 
      <a href = 'http://localhost:85/CodeIgniter-3.0.1/CodeIgniter3.0.1/index.php/sessionex/unset'>
         Click Here</a> to unset session data. 
   </body>
	
</html>

ทำการเปลี่ยนแปลงในไฟล์ routes.php ไฟล์ใน application/config/routes.php และเพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์

$route['sessionex'] = 'Session_Controller';

ดำเนินการตามตัวอย่างข้างต้นโดยใช้ที่อยู่ต่อไปนี้ แทนที่yoursite.com ด้วย URL ของไซต์ของคุณ

http://yoursite.com/index.php/sessionex

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

เพิ่ม Flashdata

เราสามารถจัดเก็บ flashdata ได้ตามภาพด้านล่าง

$this->session->mark_as_flash('item');
  • mark_as_flash()ฟังก์ชันถูกใช้เพื่อจุดประสงค์นี้ซึ่งจะเก็บอาร์กิวเมนต์ของค่าเดียวเท่านั้น เรายังสามารถส่งอาร์เรย์เพื่อเก็บค่าหลาย ๆ

  • set_flashdata()นอกจากนี้ยังสามารถใช้ฟังก์ชันซึ่งใช้อาร์กิวเมนต์ชื่อและค่าสองค่าดังที่แสดงด้านล่าง เรายังสามารถส่งผ่านอาร์เรย์

$this->session->set_flashdata('item','value');

ดึงข้อมูล Flashdata

สามารถดึงข้อมูล Flashdata ได้โดยใช้ฟังก์ชัน flashdata () ซึ่งใช้เวลาหนึ่งอาร์กิวเมนต์ของรายการที่จะดึงข้อมูลดังที่แสดงด้านล่าง ฟังก์ชัน flashdata () ทำให้แน่ใจว่าคุณได้รับข้อมูลแฟลชเท่านั้นไม่ใช่ข้อมูลอื่น ๆ

$this->session->flashdata('item');

หากคุณไม่ผ่านอาร์กิวเมนต์ใด ๆ คุณจะได้รับอาร์เรย์ที่มีฟังก์ชันเดียวกัน

ตัวอย่าง

สร้างคลาสที่เรียกว่า FlashData_Controller.php และบันทึกไว้ที่ application/controller/FlashData_Controller.php.

<?php 
   class FlashData_Controller extends CI_Controller {
	
      public function index() { 
         //Load session library 
         $this->load->library('session');
			
         //redirect to home page 
         $this->load->view('flashdata_home'); } public function add() { //Load session library $this->load->library('session'); 
         $this->load->helper('url'); //add flash data $this->session->set_flashdata('item','item-value'); 
   
         //redirect to home page 
         redirect('flashdata'); 
      } 
   } 
?>

สร้างไฟล์มุมมองที่เรียกว่า flashdata_home.php และบันทึกไว้ใน application/views/ flashdata_home.php

<!DOCTYPE html> 
<html lang = "en">
 
   <head> 
      <meta charset = "utf-8"> 
      <title>CodeIgniter Flashdata Example</title> 
   </head>
	
   <body> 
      Flash Data Example 
      <h2><?php echo $this->session->flashdata('item'); ?></h2> 
      <a href = 'flashdata/add'>Click Here</a> to add flash data. 
   </body>
	
</html>

ทำการเปลี่ยนแปลงในไฟล์ routes.php ไฟล์ใน application/config/routes.php และเพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์

$route['flashdata'] = 'FlashData_Controller'; 
$route['flashdata/add'] = 'FlashData_Controller/add';

ดำเนินการตามตัวอย่างข้างต้นโดยไปที่ลิงค์ต่อไปนี้ แทนที่ yoursite.com ด้วย URL ของไซต์ของคุณ

http://yoursite.com/index.php/flashdata

หลังจากเข้าไปที่ URL ด้านบนคุณจะพบหน้าจอดังที่แสดงด้านล่าง

คลิกที่ "Click Here” แล้วคุณจะเห็นหน้าจอดังที่แสดงด้านล่าง ที่นี่ในหน้าจอนี้คุณจะเห็นค่าของตัวแปรข้อมูลแฟลช รีเฟรชหน้าอีกครั้งและคุณจะเห็นหน้าจอเหมือนด้านบนและตัวแปรข้อมูลแฟลชจะถูกลบโดยอัตโนมัติ

ในบางสถานการณ์ที่คุณต้องการลบข้อมูลที่จัดเก็บไว้ในเซสชันหลังจากช่วงเวลาที่กำหนดสามารถทำได้โดยใช้ tempdata ฟังก์ชันการทำงานใน CodeIgniter

เพิ่ม Tempdata

ในการเพิ่มข้อมูลเป็น tempdataเราต้องใช้ mark_as_tempdata()ฟังก์ชัน ฟังก์ชันนี้ใช้เวลาสองรายการอาร์กิวเมนต์หรือรายการที่จะจัดเก็บเป็นtempdata และเวลาหมดอายุของรายการเหล่านั้นเป็นไปตามที่แสดงด้านล่าง

// 'item' will be erased after 300 seconds(5 minutes) 
$this->session->mark_as_temp('item',300);

คุณยังสามารถส่งอาร์เรย์เพื่อจัดเก็บข้อมูลหลาย ๆ รายการทั้งหมดที่เก็บไว้ด้านล่างจะหมดอายุหลังจาก 300 วินาที

$this->session->mark_as_temp(array('item','item2'),300);

คุณยังสามารถกำหนดเวลาหมดอายุที่แตกต่างกันสำหรับแต่ละรายการดังที่แสดงด้านล่าง

// 'item' will be erased after 300 seconds, while 'item2' 
// will do so after only 240 seconds 

$this->session->mark_as_temp(array( 
   'item'=>300, 
   'item2'=>240 
));

ดึงข้อมูล Tempdata

เราสามารถดึงข้อมูลชั่วคราวโดยใช้ไฟล์ tempdata()ฟังก์ชัน ฟังก์ชันนี้ช่วยให้มั่นใจได้ว่าคุณจะได้รับเฉพาะข้อมูลชั่วคราวเท่านั้นไม่ใช่ข้อมูลอื่น ๆ ดูตัวอย่างที่ให้ไว้ด้านล่างเพื่อดูวิธีการดึงข้อมูล tempdatatempdata() ฟังก์ชันจะใช้อาร์กิวเมนต์หนึ่งรายการเพื่อดึงข้อมูล

$this->session->tempdata('item');

หากคุณละเว้นอาร์กิวเมนต์คุณสามารถดึงข้อมูล tempdata ที่มีอยู่ทั้งหมดได้

ลบ Tempdata

Tempdata จะถูกลบออกโดยอัตโนมัติหลังจากเวลาหมดอายุ แต่ถ้าคุณต้องการลบ tempdata ก่อนหน้านั้นคุณสามารถทำได้ดังที่แสดงด้านล่างโดยใช้ unset_tempdata() ซึ่งใช้เวลาหนึ่งอาร์กิวเมนต์ของรายการที่จะถูกลบออก

$this->session->unset_tempdata('item');

ตัวอย่าง

สร้างคลาสที่เรียกว่า Tempdata_controller.php และบันทึกไว้ใน application/controller/Tempdata_controller.php.

<?php 
   class Tempdata_controller extends CI_Controller {
	
      public function index() { 
         $this->load->library('session'); $this->load->view('tempdata_view'); 
      } 
  
      public function add() { 
         $this->load->library('session'); $this->load->helper('url'); 
   
         //tempdata will be removed after 5 seconds 
         $this->session->set_tempdata('item','item-value',5); 
   
         redirect('tempdata'); 
      } 
   } 
?>

สร้างไฟล์ชื่อ tempdata_view.php และบันทึกไว้ใน application/views/tempdata_view.php

<!DOCTYPE html> 
<html lang = "en">
 
   <head> 
      <meta charset = "utf-8"> 
      <title>CodeIgniter Tempdata Example</title> 
   </head>
	
   <body> 
      Temp Data Example 
      <h2><?php echo $this->session->tempdata('item'); ?></h2>
      <a href = 'tempdata/add'>Click Here</a> to add temp data. 
   </body>
	
</html>

ทำการเปลี่ยนแปลงในไฟล์ routes.php ไฟล์ใน application / config / route.php และเพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์

$route['tempdata'] = "Tempdata_controller"; $route['tempdata/add'] = "Tempdata_controller/add";

ดำเนินการตามตัวอย่างข้างต้นโดยไปที่ลิงค์ต่อไปนี้ แทนที่ yoursite.com ด้วย URL ของไซต์ของคุณ

http://yoursite.com/index.php/tempdata

หลังจากเข้าไปที่ URL ด้านบนคุณจะพบหน้าจอดังที่แสดงด้านล่าง

คลิกที่ “Click Here” แล้วจะเจอหน้าจอดังรูปด้านล่าง

ที่นี่ในหน้าจอนี้คุณจะเห็นค่าของตัวแปรข้อมูลชั่วคราว รีเฟรชหน้าเดิมหลังจากห้าวินาทีอีกครั้งเนื่องจากเราได้ตั้งค่าข้อมูลอุณหภูมิเป็นเวลาห้าวินาทีและคุณจะเห็นหน้าจอดังเช่นด้านบนและตัวแปรข้อมูลอุณหภูมิจะถูกลบโดยอัตโนมัติหลังจากผ่านไปห้าวินาที หากคุณรีเฟรชหน้าเดิมก่อน 5 วินาทีข้อมูลชั่วคราวจะไม่ถูกลบออกเนื่องจากช่วงเวลายังไม่สิ้นสุด

ทำลายเซสชัน

ใน PHP เราใช้ไฟล์ session_destroy() ฟังก์ชั่นทำลายเซสชันและใน CodeIgniter เราสามารถทำลายฟังก์ชันดังที่แสดงด้านล่าง

$this->session->sess_destroy();

หลังจากเรียกใช้ฟังก์ชันนี้ข้อมูลเซสชันทั้งหมดรวมถึงไฟล์ flashdata และ tempdata จะถูกลบอย่างถาวรและไม่สามารถเรียกกลับคืนมาได้

คุกกี้คือข้อมูลชิ้นเล็ก ๆ ที่ส่งจากเว็บเซิร์ฟเวอร์ไปเก็บไว้ในคอมพิวเตอร์ของลูกค้า CodeIgniter มีตัวช่วยหนึ่งที่เรียกว่า“ Cookie Helper” สำหรับการจัดการคุกกี้

Syntax

set_cookie ( $ name [, $ value = '' [, $ expire = '' [, $ domain = '' [, $ path = '/' [, $ prefix = '' [, $ secure = FALSE [, $ httponly = FALSE ]]]]]]])

Parameters

  • $name( ผสม ) - ชื่อคุกกี้หรืออาร์เรย์ที่เชื่อมโยงของพารามิเตอร์ทั้งหมดที่มีให้สำหรับฟังก์ชันนี้

  • $value( สตริง ) - ค่าคุกกี้

  • $expire( int ) - จำนวนวินาทีจนกว่าจะหมดอายุ

  • $domain( สตริง ) - โดเมนคุกกี้ (โดยปกติคือ: .yourdomain.com)

  • $path( สตริง ) - เส้นทางคุกกี้

  • $prefix( สตริง ) - คำนำหน้าชื่อคุกกี้

  • $secure( bool ) - ระบุว่าจะส่งคุกกี้ผ่าน HTTPS หรือไม่

  • $httponly( bool ) - ซ่อนคุกกี้จาก JavaScript หรือไม่

Return Type

เป็นโมฆะ

ใน set_cookie()ฟังก์ชันเราสามารถส่งผ่านค่าทั้งหมดโดยใช้สองวิธี ในวิธีแรกสามารถส่งผ่านอาร์เรย์ได้เท่านั้นและในวิธีที่สองสามารถส่งผ่านพารามิเตอร์แต่ละตัวได้

Syntax

get_cookie ( $ index [, $ xss_clean = NULL ]])

Parameters

  • $index( สตริง ) - ชื่อคุกกี้

  • $xss_clean( bool ) - จะใช้การกรอง XSS กับค่าที่ส่งคืนหรือไม่

Return

ค่าคุกกี้หรือค่า NULL หากไม่พบ

Return Type

ผสม

get_cookie() ฟังก์ชันใช้เพื่อรับคุกกี้ที่ตั้งค่าโดยใช้ฟังก์ชัน set_cookie ()

Syntax

delete_cookie ( $ name [, $ domain = '' [, $ path = '/' [, $ prefix = '' ]]])

Parameters

  • $name( สตริง ) - ชื่อคุกกี้

  • $domain( สตริง ) - โดเมนคุกกี้ (โดยปกติคือ: .yourdomain.com)

  • $path( สตริง ) - เส้นทางคุกกี้

  • $prefix( สตริง ) - คำนำหน้าชื่อคุกกี้

Return Type

เป็นโมฆะ

delete_cookie() ฟังก์ชันใช้ในการลบคุกกี้ ()

ตัวอย่าง

สร้างตัวควบคุมที่เรียกว่า Cookie_controller.php และบันทึกไว้ที่ application/controller/Cookie_controller.php

<?php 
   class Cookie_controller extends CI_Controller { 
	
      function __construct() { 
         parent::__construct(); 
         $this->load->helper(array('cookie', 'url')); 
      } 
  
      public function index() { 
         set_cookie('cookie_name','cookie_value','3600'); 
         $this->load->view('Cookie_view'); } public function display_cookie() { echo get_cookie('cookie_name'); $this->load->view('Cookie_view');
      } 
  
      public function deletecookie() { 
         delete_cookie('cookie_name'); 
         redirect('cookie/display'); 
      } 
		
   } 
?>

สร้างไฟล์มุมมองที่เรียกว่า Cookie_view.php และบันทึกไว้ที่ application/views/Cookie_view.php

<!DOCTYPE html> 
<html lang = "en">
 
   <head> 
      <meta charset = "utf-8"> 
      <title>CodeIgniter View Example</title> 
   </head> 
	
   <body> 
      <a href = 'display'>Click Here</a> to view the cookie.<br> 
      <a href = 'delete'>Click Here</a> to delete the cookie. 
   </body>
	
</html>

เปลี่ยนไฟล์ route.php ใน application / config / route.php เพื่อเพิ่มเส้นทางสำหรับคอนโทรลเลอร์ด้านบนและเพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์

$route['cookie'] = "Cookie_controller"; $route['cookie/display'] = "Cookie_controller/display_cookie"; 
$route['cookie/delete'] = "Cookie_controller/deletecookie";

หลังจากนั้นคุณสามารถเรียกใช้ URL ต่อไปนี้ในเบราว์เซอร์เพื่อดำเนินการตามตัวอย่าง

http://yoursite.com/index.php/cookie

มันจะสร้างผลลัพธ์ดังที่แสดงในภาพหน้าจอต่อไปนี้

ฟังก์ชันไลบรารี CodeIgniter และฟังก์ชันตัวช่วยจำเป็นต้องได้รับการเตรียมใช้งานก่อนจึงจะใช้งานได้ แต่มีฟังก์ชันทั่วไปบางอย่างซึ่งไม่จำเป็นต้องเริ่มต้น

ฟังก์ชันทั่วไปเหล่านี้และคำอธิบายได้รับด้านล่าง

ไวยากรณ์ is_php ( เวอร์ชัน $ )
พารามิเตอร์

$version( สตริง ) - หมายเลขเวอร์ชัน

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

$file( สตริง ) - เส้นทางไฟล์

กลับ TRUE ถ้าเส้นทางนั้นเขียนได้ FALSE ถ้าไม่ใช่
ประเภทผลตอบแทน บูล
คำอธิบาย ตรวจสอบเพื่อดูว่าไฟล์สามารถเขียนได้หรือไม่
ไวยากรณ์ config_item ( คีย์ $ )
พารามิเตอร์

$key( สตริง ) - คีย์รายการกำหนดค่า

กลับ ค่าคีย์การกำหนดค่าหรือค่า NULL หากไม่พบ
ประเภทผลตอบแทน ผสม
คำอธิบาย ฟังก์ชันนี้ใช้เพื่อรับรายการคอนฟิกูเรชัน
ไวยากรณ์ set_status_header ( $ code [, $ text = '' ])
พารามิเตอร์

$code( int ) - รหัสสถานะการตอบกลับ HTTP

$text( สตริง ) - ข้อความที่กำหนดเองเพื่อตั้งค่าด้วยรหัสสถานะ

กลับ
ประเภทผลตอบแทน เป็นโมฆะ
คำอธิบาย ฟังก์ชันนี้อนุญาตให้คุณตั้งค่าส่วนหัวสถานะเซิร์ฟเวอร์ด้วยตนเอง
ไวยากรณ์ remove_invisible_characters ( $ str [, $ url_encoded = TRUE ])
พารามิเตอร์

$str( สตริง ) - สตริงอินพุต

$url_encoded( bool ) - ระบุว่าจะลบอักขระที่เข้ารหัส URL ด้วยหรือไม่

กลับ สตริง Sanitized
ประเภทผลตอบแทน สตริง
คำอธิบาย ฟังก์ชันนี้ป้องกันการแทรกอักขระ NULL ระหว่างอักขระ ASCII
ไวยากรณ์ html_escape ( $ var )
พารามิเตอร์

$var( ผสม ) - ตัวแปรที่จะหลีกเลี่ยง (สตริงหรืออาร์เรย์)

กลับ สตริงที่หลีกเลี่ยง HTML
ประเภทผลตอบแทน ผสม
คำอธิบาย ฟังก์ชันนี้ทำหน้าที่เป็นฟังก์ชัน PHP htmlspecialchars () ดั้งเดิม
ไวยากรณ์ get_mimes ()
กลับ อาร์เรย์ที่เชื่อมโยงของประเภทไฟล์
ประเภทผลตอบแทน อาร์เรย์
คำอธิบาย ฟังก์ชั่นนี้จะส่งกลับการอ้างอิงไปยังอาร์เรย์ใบ้จากapplication / config / mimes.php
ไวยากรณ์ is_https ()

กลับ TRUE หากกำลังใช้ HTTP-over-SSL อยู่ถ้าไม่เป็น FALSE
ประเภทผลตอบแทน บูล
คำอธิบาย ส่งคืนค่า TRUE หากใช้การเชื่อมต่อที่ปลอดภัย (HTTPS) และเป็นเท็จในกรณีอื่น ๆ (รวมถึงคำขอที่ไม่ใช่ HTTP)
ไวยากรณ์ is_cli ()
กลับ TRUE หากกำลังทำงานภายใต้ CLI ไม่เช่นนั้น FALSE
ประเภทผลตอบแทน บูล
คำอธิบาย ส่งคืนค่า TRUE หากแอปพลิเคชันทำงานผ่านบรรทัดคำสั่งและ FALSE ถ้าไม่
ไวยากรณ์ function_usable ( $ function_name )
พารามิเตอร์

$function_name( สตริง ) - ชื่อฟังก์ชัน

ประเภทผลตอบแทน บูล
คำอธิบาย ส่งคืนค่า TRUE หากมีฟังก์ชันอยู่และใช้งานได้ไม่เช่นนั้นจะเป็น FALSE

ให้ด้านล่างเป็นตัวอย่างซึ่งแสดงให้เห็นถึงฟังก์ชันข้างต้นทั้งหมด

ตัวอย่าง

ที่นี่เราได้สร้างคอนโทรลเลอร์เพียงตัวเดียวซึ่งเราจะใช้ฟังก์ชันข้างต้น คัดลอกรหัสที่ระบุด้านล่างและบันทึกที่ application/controller/CommonFun_Controller.php.

<?php 
   class CommonFun_Controller extends CI_Controller { 
	
      public function index() {
         set_status_header(200); 
         echo is_php('5.3')."<br>"; 
         var_dump(is_really_writable('./Form.php')); 
			
         echo config_item('language')."<br>"; 
         echo remove_invisible_characters('This is a ‌test','UTF8')."<br>"; 
			
         $str = '< This > is \' a " test & string'; 
         echo html_escape($str)."<br>"; 
         echo "is_https():".var_dump(is_https())."<br>"; 
         echo "is_cli():".var_dump(is_cli())."<br>"; 
			
         var_dump(function_usable('test'))."<br>"; 
         echo "get_mimes():".print_r(get_mimes())."<br>"; 
      } 
  
      public function test() { 
         echo "Test function"; 
      } 
		
   } 
?>

เปลี่ยน routes.php ไฟล์ที่ application / config / route.php เพื่อเพิ่มเส้นทางสำหรับคอนโทรลเลอร์ด้านบนและเพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์

$route['commonfunctions'] = 'CommonFun_Controller';

พิมพ์ URL ต่อไปนี้ในแถบที่อยู่ของเบราว์เซอร์ของคุณเพื่อดำเนินการตามตัวอย่าง

http://yoursite.com/index.php/commonfunctions

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

ไฟล์แคชจะถูกเก็บไว้ใน application/cacheโฟลเดอร์ สามารถเปิดใช้งานการแคชแบบต่อหน้า ในขณะที่เปิดใช้งานแคชเราต้องตั้งเวลาจนกว่าจะต้องอยู่ในโฟลเดอร์แคชและหลังจากช่วงเวลาดังกล่าวจะถูกลบโดยอัตโนมัติ

เปิดใช้งานการแคช

สามารถเปิดใช้งานการแคชได้โดยดำเนินการบรรทัดต่อไปนี้ในวิธีการใด ๆ ของคอนโทรลเลอร์

$this->output->cache($n);

ที่ไหน $n คือจำนวน minutes, คุณต้องการให้เพจยังคงแคชระหว่างการรีเฟรช

ปิดการใช้งานการแคช

ไฟล์แคชจะถูกลบเมื่อหมดอายุ แต่เมื่อคุณต้องการลบด้วยตนเองคุณต้องปิดการใช้งาน คุณสามารถปิดใช้งานการแคชได้โดยดำเนินการตามบรรทัดต่อไปนี้

// Deletes cache for the currently requested URI 
$this->output->delete_cache();
  
// Deletes cache for /foo/bar 
$this->output->delete_cache('/foo/bar');

ตัวอย่าง

สร้างตัวควบคุมที่เรียกว่า Cache_controller.php และบันทึกไว้ใน application/controller/Cache_controller.php

<?php 
   class Cache_controller extends CI_Controller { 
	
      public function index() { 
         $this->output->cache(1); 
         $this->load->view('test'); } public function delete_file_cache() { $this->output->delete_cache('cachecontroller'); 
      } 
   } 
?>

สร้างไฟล์มุมมองที่เรียกว่า test.php และบันทึกไว้ใน application/views/test.php

<!DOCTYPE html> 
<html lang = "en">
 
   <head> 
      <meta charset = "utf-8"> 
      <title>CodeIgniter View Example</title> 
   </head>
	
   <body> 
      CodeIgniter View Example 
   </body>
	
</html>

เปลี่ยน routes.php ไฟล์ใน application/config/routes.php เพื่อเพิ่มเส้นทางสำหรับคอนโทรลเลอร์ด้านบนและเพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์

$route['cachecontroller'] = 'Cache_controller'; $route['cachecontroller/delete'] = 'Cache_controller/delete_file_cache';

พิมพ์ URL ต่อไปนี้ในเบราว์เซอร์เพื่อดำเนินการตามตัวอย่าง

http://yoursite.com/index.php/cachecontroller

หลังจากไปที่ URL ด้านบนคุณจะเห็นว่าไฟล์แคชสำหรับสิ่งนี้จะถูกสร้างขึ้นใน application/cacheโฟลเดอร์ หากต้องการลบไฟล์ให้ไปที่ URL ต่อไปนี้

http://yoursite.com/index.php/cachecontroller/delete

ในขณะที่สร้างเว็บแอปพลิเคชันเรามักจะต้องเปลี่ยนเส้นทางผู้ใช้จากหน้าหนึ่งไปยังอีกหน้าหนึ่ง CodeIgniter ทำให้งานนี้ง่ายสำหรับเรา redirect() ฟังก์ชันถูกใช้เพื่อวัตถุประสงค์นี้

Syntax

เปลี่ยนเส้นทาง ($uri = '', $method = 'auto', $ code = NULL )

Parameters

  • $uri( สตริง ) - สตริง URI

  • $method( สตริง ) - วิธีการเปลี่ยนเส้นทาง ('auto', 'location' หรือ 'refresh')

  • $code( สตริง ) - รหัสตอบกลับ HTTP (โดยปกติคือ 302 หรือ 303)

Return type

เป็นโมฆะ

อาร์กิวเมนต์แรกสามารถมี URI ได้สองประเภท เราสามารถส่ง URL ของไซต์แบบเต็มหรือส่วน URI ไปยังตัวควบคุมที่คุณต้องการกำหนดได้

พารามิเตอร์ทางเลือกที่สองสามารถมีค่าใดก็ได้จากสามค่าจากอัตโนมัติตำแหน่งหรือรีเฟรช ค่าเริ่มต้นคืออัตโนมัติ

พารามิเตอร์ทางเลือกที่สามมีให้เฉพาะกับการเปลี่ยนเส้นทางตำแหน่งและอนุญาตให้คุณส่งรหัสตอบกลับ HTTP เฉพาะ

ตัวอย่าง

สร้างตัวควบคุมที่เรียกว่า Redirect_controller.php และบันทึกไว้ใน application/controller/Redirect_controller.php

<?php 
   class Redirect_controller extends CI_Controller { 
	
      public function index() { 
         /*Load the URL helper*/ 
         $this->load->helper('url'); /*Redirect the user to some site*/ redirect('http://www.tutorialspoint.com'); } public function computer_graphics() { /*Load the URL helper*/ $this->load->helper('url'); 
         redirect('http://www.tutorialspoint.com/computer_graphics/index.htm'); 
      } 
  
      public function version2() { 
         /*Load the URL helper*/ 
         $this->load->helper('url'); 
   
         /*Redirect the user to some internal controller’s method*/ 
         redirect('redirect/computer_graphics'); 
      } 
		
   } 
?>

เปลี่ยน routes.php ไฟล์ใน application/config/routes.php เพื่อเพิ่มเส้นทางสำหรับคอนโทรลเลอร์ด้านบนและเพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์

$route['redirect'] = 'Redirect_controller'; 
$route['redirect/version2'] = 'Redirect_controller/version2'; $route['redirect/computer_graphics'] = 'Redirect_controller/computer_graphics';

พิมพ์ URL ต่อไปนี้ในเบราว์เซอร์เพื่อดำเนินการตามตัวอย่าง

http://yoursite.com/index.php/redirect

URL ด้านบนจะเปลี่ยนเส้นทางคุณไปยังเว็บไซต์ tutorialspoint.com และหากคุณไปที่ URL ต่อไปนี้ระบบจะเปลี่ยนเส้นทางคุณไปยังบทเรียนคอมพิวเตอร์กราฟิกที่ tutorialspoint.com

http://yoursite.com/index.php/redirect/computer_graphics

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

เปิดใช้งานการทำโปรไฟล์

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

$this->output->enable_profiler(TRUE);

คุณสามารถดูรายงานการสร้างโปรไฟล์ได้ที่ด้านล่างของหน้าหลังจากเปิดใช้งาน

ปิดการใช้งานการทำโปรไฟล์

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

$this->output->enable_profiler(FALSE);

เปิด / ปิดส่วนโปรไฟล์

การทำโปรไฟล์สามารถทำได้ตามส่วน คุณสามารถเปิดหรือปิดการทำโปรไฟล์ของส่วนได้โดยตั้งค่าบูลีนเป็น TRUE หรือ FALSE หากคุณต้องการตั้งค่าโปรไฟล์ในแอปพลิเคชันคุณสามารถทำได้ในไฟล์ที่อยู่ในapplication/config/profiler.php

ตัวอย่างเช่นคำสั่งต่อไปนี้จะเปิดใช้งานการสอบถามการทำโปรไฟล์สำหรับแอปพลิเคชันทั้งหมด

$config['queries'] = TRUE;

ในตารางต่อไปนี้คีย์คือพารามิเตอร์ซึ่งสามารถตั้งค่าในอาร์เรย์การกำหนดค่าเพื่อเปิดหรือปิดใช้งานโปรไฟล์เฉพาะ

สำคัญ คำอธิบาย ค่าเริ่มต้น

benchmarks

เวลาที่ผ่านไปของคะแนนเกณฑ์มาตรฐานและเวลาดำเนินการทั้งหมด จริง

config

ตัวแปร CodeIgniterConfig จริง

controller_info

คลาส Controller และวิธีการร้องขอ จริง

get

ข้อมูล GET ใด ๆ ที่ส่งผ่านในคำขอ จริง

http_headers

ส่วนหัว HTTP สำหรับคำขอปัจจุบัน จริง

memory_usage

จำนวนหน่วยความจำที่ใช้โดยคำขอปัจจุบันเป็นไบต์ จริง

post

ข้อมูล POST ใด ๆ ที่ส่งผ่านในคำขอ จริง

queries

รายการของการสืบค้นฐานข้อมูลทั้งหมดที่ดำเนินการรวมถึงเวลาดำเนินการ จริง

uri_string

URI ของคำขอปัจจุบัน จริง

session_data

ข้อมูลที่จัดเก็บในเซสชันปัจจุบัน จริง

query_toggle_count

จำนวนคิวรีที่บล็อกคิวรีจะเริ่มต้นเป็นซ่อน 25

ผู้สร้างโปรไฟล์ตั้งค่าในไฟล์ในรูปแบบ application/config/profiler.php สามารถแทนที่ได้โดยใช้ไฟล์ set_profiler_sections() ฟังก์ชันในคอนโทรลเลอร์ดังแสดงด้านล่าง

$sections = array( 
   'config'  => TRUE, 
   'queries' => TRUE 
); 
 
$this->output->set_profiler_sections($sections);

การตั้งค่า Benchmark Points

หากคุณต้องการวัดเวลาที่ใช้ในการดำเนินการชุดของบรรทัดหรือการใช้หน่วยความจำคุณสามารถคำนวณได้โดยใช้ Benchmarking points ใน CodeIgniter มี“ แยกต่างหากBenchmarking” สำหรับจุดประสงค์นี้ใน CodeIgniter

คลาสนี้โหลดโดยอัตโนมัติ คุณไม่ต้องโหลด สามารถใช้ได้ทุกที่ในคลาสคอนโทรลเลอร์มุมมองและโมเดลของคุณ สิ่งที่คุณต้องทำคือทำเครื่องหมายจุดเริ่มต้นและจุดสิ้นสุดจากนั้นเรียกใช้ไฟล์elapsed_time() ฟังก์ชันระหว่างจุดที่ทำเครื่องหมายทั้งสองนี้และคุณจะได้รับเวลาที่ใช้ในการรันโค้ดดังที่แสดงด้านล่าง

<?php 
   $this->benchmark->mark('code_start'); // Some code happens here $this->benchmark->mark('code_end');
  
   echo $this->benchmark->elapsed_time('code_start', 'code_end'); 
?>

หากต้องการแสดงการใช้งานหน่วยความจำให้ใช้ฟังก์ชัน memory_usage() ดังแสดงในรหัสต่อไปนี้

<?php 
   echo $this->benchmark->memory_usage(); 
?>

ตัวอย่าง

สร้างตัวควบคุมที่เรียกว่า Profiler_controller.php และบันทึกไว้ใน application/controller/Profiler_controller.php

<?php 
   class Profiler_controller extends CI_Controller {
  
      public function index() {
	
         //enable profiler
         $this->output->enable_profiler(TRUE); $this->load->view('test'); 
      } 
  
      public function disable() {
	
         //disable profiler 
         $this->output->enable_profiler(FALSE); $this->load->view('test'); 
      }
		
   } 
?>

สร้างไฟล์มุมมองที่เรียกว่า test.php และบันทึกไว้ที่ application/views/test.php

<!DOCTYPE html> 
<html lang = "en">
 
   <head> 
      <meta charset = "utf-8"> 
      <title>CodeIgniter View Example</title> 
   </head>
	
   <body> 
      CodeIgniter View Example 
   </body>
	
</html>

เปลี่ยนไฟล์ route.php ที่ application/config/routes.php เพื่อเพิ่มเส้นทางสำหรับคอนโทรลเลอร์ด้านบนและเพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์

$route['profiler'] = "Profiler_controller"; $route['profiler/disable'] = "Profiler_controller/disable"

หลังจากนั้นคุณสามารถพิมพ์ URL ต่อไปนี้ในแถบที่อยู่ของเบราว์เซอร์ของคุณเพื่อดำเนินการตามตัวอย่าง

http://yoursite.com/index.php/profiler

URL ด้านบนจะเปิดใช้งาน profiler และจะสร้างผลลัพธ์ดังที่แสดงในภาพหน้าจอต่อไปนี้

หากต้องการปิดใช้งานการสร้างโปรไฟล์ให้เรียกใช้ URL ต่อไปนี้

http://yoursite.com/index.php/profiler/disable

การเพิ่มไฟล์ JavaScript และ CSS (Cascading Style Sheet) ใน CodeIgniter นั้นง่ายมาก คุณต้องสร้างโฟลเดอร์ JS และ CSS ในไดเรกทอรีรากและคัดลอกไฟล์. js ทั้งหมดในโฟลเดอร์ JS และไฟล์. css ในโฟลเดอร์ CSS ดังที่แสดงในรูป

ตัวอย่างเช่นสมมติว่าคุณได้สร้างไฟล์ JavaScript หนึ่งไฟล์ sample.js และไฟล์ CSS หนึ่งไฟล์ style.css. ตอนนี้หากต้องการเพิ่มไฟล์เหล่านี้ในมุมมองของคุณให้โหลดตัวช่วย URL ในตัวควบคุมของคุณดังที่แสดงด้านล่าง

$this->load->helper('url');

หลังจากโหลดตัวช่วย URL ในตัวควบคุมแล้วเพียงแค่เพิ่มบรรทัดที่กำหนดด้านล่างในไฟล์มุมมองเพื่อโหลดไฟล์ sample.js และ style.css ในมุมมองดังที่แสดงด้านล่าง

<link rel = "stylesheet" type = "text/css" 
   href = "<?php echo base_url(); ?>css/style.css">

<script type = 'text/javascript' src = "<?php echo base_url(); 
   ?>js/sample.js"></script>

ตัวอย่าง

สร้างตัวควบคุมที่เรียกว่า Test.php และบันทึกไว้ใน application/controller/Test.php

<?php 
   class Test extends CI_Controller {
	
      public function index() { 
         $this->load->helper('url'); 
         $this->load->view('test'); 
      } 
   } 
?>

สร้างไฟล์มุมมองที่เรียกว่า test.php และบันทึกไว้ที่ application/views/test.php

<!DOCTYPE html> 
<html lang = "en">
 
   <head> 
      <meta charset = "utf-8"> 
      <title>CodeIgniter View Example</title> 
      <link rel = "stylesheet" type = "text/css" 
         href = "<?php echo base_url(); ?>css/style.css"> 
      <script type = 'text/javascript' src = "<?php echo base_url(); 
         ?>js/sample.js"></script> 
   </head>
	
   <body> 
      <a href = 'javascript:test()'>Click Here</a> to execute the javascript function. 
   </body>
	
</html>

สร้างไฟล์ CSS ชื่อ style.css และบันทึกไว้ที่ css/style.css

body { 
   background:#000; 
   color:#FFF; 
}

สร้างไฟล์ JS ชื่อ sample.js และบันทึกไว้ที่ js/sample.js

function test() { 
   alert('test'); 
}

เปลี่ยน routes.php ไฟล์ใน application/config/routes.php เพื่อเพิ่มเส้นทางสำหรับคอนโทรลเลอร์ด้านบนและเพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์

$route['profiler'] = "Profiler_controller"; 
$route['profiler/disable'] = "Profiler_controller/disable"

ใช้ URL ต่อไปนี้ในเบราว์เซอร์เพื่อดำเนินการตามตัวอย่างข้างต้น

http://yoursite.com/index.php/test

คลาสภาษาใน CodeIgniter มีวิธีง่ายๆในการรองรับหลายภาษาสำหรับการทำให้เป็นสากล ในระดับหนึ่งเราสามารถใช้ไฟล์ภาษาต่างๆเพื่อแสดงข้อความในภาษาต่างๆ

เราสามารถใส่ไฟล์ภาษาต่างๆในไดเร็กทอรีแอปพลิเคชัน / ภาษา ไฟล์ภาษาระบบสามารถพบได้ที่ไดเร็กทอรีระบบ / ภาษา แต่หากต้องการเพิ่มภาษาของคุณเองในแอปพลิเคชันของคุณคุณควรสร้างโฟลเดอร์แยกสำหรับแต่ละภาษาในไดเร็กทอรีแอปพลิเคชัน / ภาษา

การสร้างไฟล์ภาษา

ในการสร้างไฟล์ภาษาคุณต้องลงท้ายด้วย _lang.php. ตัวอย่างเช่นคุณต้องการสร้างไฟล์ภาษาสำหรับภาษาฝรั่งเศสจากนั้นคุณต้องบันทึกด้วยไฟล์french_lang.php. ภายในไฟล์นี้คุณสามารถจัดเก็บข้อความภาษาทั้งหมดของคุณในคีย์การรวมค่าในรูปแบบ$lang อาร์เรย์ดังที่แสดงด้านล่าง

$lang[‘key’] = ‘val’;

กำลังโหลดไฟล์ภาษา

ในการใช้ภาษาใด ๆ ในแอปพลิเคชันของคุณก่อนอื่นคุณต้องโหลดไฟล์ของภาษานั้น ๆ เพื่อดึงข้อความต่างๆที่เก็บไว้ในไฟล์นั้น คุณสามารถใช้รหัสต่อไปนี้เพื่อโหลดไฟล์ภาษา

$this->lang->load('filename', 'language');
  • filename- เป็นชื่อไฟล์ที่คุณต้องการโหลด อย่าใช้นามสกุลของไฟล์ที่นี่ แต่เป็นเพียงชื่อไฟล์เท่านั้น

  • Language - เป็นชุดภาษาที่มี

กำลังดึงข้อความภาษา

ในการดึงบรรทัดจากไฟล์ภาษาให้ดำเนินการตามรหัสต่อไปนี้

$this->lang->line('language_key');

ที่ไหน language_key เป็นพารามิเตอร์หลักที่ใช้ในการดึงค่าของคีย์ในไฟล์ภาษาที่โหลด

Autoload ภาษา

หากคุณต้องการบางภาษาทั่วโลกคุณสามารถโหลดอัตโนมัติได้ application/config/autoload.php ไฟล์ดังที่แสดงด้านล่าง

| -----------------------------------------------------------------------
|  Auto-load Language files
| -----------------------------------------------------------------------
| Prototype:
|   $autoload['config'] = array('config1', 'config2');
|
| NOTE: Do not include the "_lang" part of your file. For example
| "codeigniter_lang.php" would be referenced as array('codeigniter');
|
*/
$autoload['language'] = array();

เพียงแค่ส่งผ่านภาษาต่างๆเพื่อให้ CodeIgniter โหลดอัตโนมัติ

ตัวอย่าง

สร้างตัวควบคุมที่เรียกว่า Lang_controller.php และบันทึกไว้ใน application/controller/Lang_controller.php

<?php
   class Lang_controller extends CI_Controller {

      public function index(){
         //Load form helper
         $this->load->helper('form');

         //Get the selected language
         $language = $this->input->post('language');
		
         //Choose language file according to selected lanaguage
         if($language == "french") $this->lang->load('french_lang','french');
         else if($language == "german") $this->lang->load('german_lang','german');
         else
         $this->lang->load('english_lang','english'); //Fetch the message from language file. $data['msg'] = $this->lang->line('msg'); $data['language'] = $language; //Load the view file $this->load->view('lang_view',$data);
      }
   }
?>

สร้างไฟล์มุมมองที่เรียกว่า lang_view.php และบันทึกไว้ที่ application/views/ lang_view.php

<!DOCTYPE html>
<html lang = "en"> 

   <head>
      <meta charset = "utf-8">
      <title>CodeIgniter Internationalization Example</title>
   </head>
	
   <body>
      <?php
         echo form_open('/lang');
      ?>
		
      <select name = "language" onchange = "javascript:this.form.submit();">
         <?php
            $lang = array('english'=>"English",'french'=>"French",'german'=>"German");
				
            foreach($lang as $key=>$val) { if($key == $language) echo "<option value = '".$key."' selected>".$val."</option>"; else echo "<option value = '".$key."'>".$val."</option>"; } ?> </select> <br> <?php form_close(); echo $msg;
      ?>
		
   </body>
	
</html>

สร้างโฟลเดอร์สามโฟลเดอร์ชื่ออังกฤษฝรั่งเศสและเยอรมันใน application/language ดังแสดงในรูปด้านล่าง

คัดลอกรหัสที่ระบุด้านล่างและบันทึกไว้ english_lang.php ไฟล์ใน application/language/english โฟลเดอร์

<?php
   $lang['msg'] = "CodeIgniter Internationalization example.";
?>

คัดลอกรหัสที่ระบุด้านล่างและบันทึกไว้ french_lang.php ไฟล์ใน application/language/French โฟลเดอร์

<?php
   $lang['msg'] = "Exemple CodeIgniter internationalisation.";
?>

คัดลอกรหัสที่ระบุด้านล่างและบันทึกไว้ german_lang.php ไฟล์ใน application/language/german โฟลเดอร์

<?php
   $lang['msg'] = "CodeIgniter Internationalisierung Beispiel.";
?>

เปลี่ยน routes.php ไฟล์ใน application/config/routes.php เพื่อเพิ่มเส้นทางสำหรับคอนโทรลเลอร์ด้านบนและเพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์

$route['lang'] = "Lang_controller";

ดำเนินการ URL ต่อไปนี้ในเบราว์เซอร์เพื่อดำเนินการตามตัวอย่างข้างต้น

http://yoursite.com/index.php/lang

มันจะสร้างผลลัพธ์ดังที่แสดงในภาพหน้าจอต่อไปนี้ หากคุณเปลี่ยนภาษาในรายการแบบเลื่อนลงภาษาของประโยคที่เขียนด้านล่างรายการแบบเลื่อนลงก็จะเปลี่ยนตามไปด้วย

การป้องกัน XSS

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

$data = $this->security->xss_clean($data);

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

การป้องกันการฉีด SQL

การแทรก SQL เป็นการโจมตีที่เกิดขึ้นกับแบบสอบถามฐานข้อมูล ใน PHP เราใช้ไฟล์mysql_real_escape_string() เพื่อป้องกันสิ่งนี้พร้อมกับเทคนิคอื่น ๆ แต่ CodeIgniter มีฟังก์ชันและไลบรารีในตัวเพื่อป้องกันสิ่งนี้

เราสามารถป้องกัน SQL Injection ใน CodeIgniter ได้สามวิธีดังต่อไปนี้ -

  • การหลีกเลี่ยงแบบสอบถาม
  • สอบถามการประมูล
  • คลาส Active Record

การหลีกเลี่ยงแบบสอบถาม

<?php
   $username = $this->input->post('username'); $query = 'SELECT * FROM subscribers_tbl WHERE user_name = '.
      $this->db->escape($email);
   $this->db->query($query);
?>

$this->db->escape() ฟังก์ชันจะเพิ่มเครื่องหมายคำพูดเดี่ยวรอบ ๆ ข้อมูลโดยอัตโนมัติและกำหนดชนิดข้อมูลเพื่อให้สามารถหลีกเลี่ยงเฉพาะข้อมูลสตริงได้

สอบถามการประมูล

<?php
   $sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?";
   $this->db->query($sql, array(3, 'live', 'Rick'));
?>

ในตัวอย่างข้างต้นเครื่องหมายคำถาม (?) จะถูกแทนที่ด้วยอาร์เรย์ในพารามิเตอร์ที่สองของฟังก์ชัน query () ข้อได้เปรียบหลักของการสร้างแบบสอบถามด้วยวิธีนี้คือค่าจะถูกหลีกเลี่ยงโดยอัตโนมัติซึ่งสร้างการสืบค้นที่ปลอดภัย เครื่องยนต์ CodeIgniter ทำเพื่อคุณโดยอัตโนมัติดังนั้นคุณไม่จำเป็นต้องจำมัน

คลาส Active Record

<?php
   $this->db->get_where('subscribers_tbl',array
      ('status'=> active','email' => '[email protected]'));
?>

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

การซ่อนข้อผิดพลาด PHP

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

มีไฟล์ CodeIgniter สามไฟล์ที่เกี่ยวข้องกับข้อผิดพลาด

ระดับการรายงานข้อผิดพลาดของ PHP

สภาพแวดล้อมที่แตกต่างกันต้องการการรายงานข้อผิดพลาดในระดับที่แตกต่างกัน โดยค่าเริ่มต้นการพัฒนาจะแสดงข้อผิดพลาด แต่การทดสอบและการใช้งานจริงจะซ่อนไว้ มีไฟล์ที่เรียกว่าindex.phpในไดเร็กทอรีรากของ CodeIgniter ซึ่งใช้เพื่อจุดประสงค์นี้ ถ้าเราส่งค่าศูนย์เป็นอาร์กิวเมนต์ไปerror_reporting() ซึ่งจะซ่อนข้อผิดพลาดทั้งหมด

ฐานข้อมูลผิดพลาด

แม้ว่าคุณจะปิดข้อผิดพลาด PHP ข้อผิดพลาด MySQL ยังคงเปิดอยู่ คุณสามารถปิดได้ในapplication/config/database.php. ตั้งค่าdb_debug ตัวเลือกใน $db อาร์เรย์ถึง FALSE ดังแสดงด้านล่าง

$db['default']['db_debug'] = FALSE;

บันทึกข้อผิดพลาด

อีกวิธีหนึ่งคือการถ่ายโอนข้อผิดพลาดไปยังไฟล์บันทึก ดังนั้นจะไม่แสดงให้ผู้ใช้บนไซต์เห็น เพียงแค่ตั้งค่าไฟล์log_threshold มูลค่าใน $config อาร์เรย์ถึง 1 นิ้ว application/cofig/config.php ไฟล์ดังที่แสดงด้านล่าง

$config['log_threshold'] = 1;

การป้องกัน CSRF

CSRF ย่อมาจากการปลอมแปลงคำขอข้ามไซต์ คุณสามารถป้องกันการโจมตีนี้ได้โดยเปิดใช้งานในไฟล์application/config/config.php ไฟล์ดังที่แสดงด้านล่าง

$config['csrf_protection'] = TRUE;

เมื่อคุณสร้างแบบฟอร์มโดยใช้ form_open()มันจะแทรก CSRF เป็นฟิลด์ที่ซ่อนโดยอัตโนมัติ คุณยังสามารถเพิ่ม CSRF ด้วยตนเองโดยใช้ไฟล์get_csrf_token_name() และ get_csrf_hash()ฟังก์ชัน get_csrf_token_name() ฟังก์ชันจะส่งคืนชื่อของ CSRF และ get_csrf_hash() จะส่งคืนค่าแฮชของ CSRF

โทเค็น CSRF สามารถสร้างใหม่ได้ทุกครั้งสำหรับการส่งหรือคุณสามารถเก็บไว้เหมือนเดิมตลอดอายุของคุกกี้ CSRF โดยกำหนดค่าTRUEใน config array พร้อมคีย์ ‘csrf_regenerate’ จะสร้างโทเค็นใหม่ตามที่แสดงด้านล่าง

$config['csrf_regenerate'] = TRUE;

คุณยังสามารถกำหนด URL ที่อนุญาตพิเศษจากการป้องกัน CSRF ได้โดยตั้งค่าในอาร์เรย์กำหนดค่าโดยใช้คีย์ ‘csrf_exclude_uris’ดังแสดงด้านล่าง คุณยังสามารถใช้นิพจน์ทั่วไป

$config['csrf_exclude_uris'] = array('api/person/add');

การจัดการรหัสผ่าน

นักพัฒนาหลายคนไม่ทราบวิธีจัดการรหัสผ่านในเว็บแอปพลิเคชันซึ่งอาจเป็นสาเหตุที่แฮกเกอร์จำนวนมากพบว่าการเจาะเข้าสู่ระบบทำได้ง่าย ควรคำนึงถึงประเด็นต่อไปนี้ในขณะจัดการรหัสผ่าน -

  • อย่าเก็บรหัสผ่านในรูปแบบข้อความธรรมดา

  • แฮชรหัสผ่านของคุณเสมอ

  • อย่าใช้ Base64 หรือการเข้ารหัสที่คล้ายกันในการจัดเก็บรหัสผ่าน

  • อย่าใช้อัลกอริทึมการแฮชที่อ่อนแอหรือเสียเช่น MD5 หรือ SHA1 ใช้เฉพาะอัลกอริธึมการแฮชรหัสผ่านที่คาดเดายากเช่น BCrypt ซึ่งใช้ในฟังก์ชัน Password Hashing ของ PHP

  • อย่าแสดงหรือส่งรหัสผ่านในรูปแบบข้อความธรรมดา

  • อย่า จำกัด รหัสผ่านของผู้ใช้โดยไม่จำเป็น