ออกแบบระบบ Login อย่างง่ายด้วย CodeIgniter Framework

โดย SONGCHAI SAETERN
โครงสร้างการจัดวางไฟล์

application/
├── controllers/
│   └── Member_login.php
├── models/
│   └── Member_login_model.php
├── views/
│   └── member_login/
│       └── login_view.php



ส่วนของฟอร์ม HTML ( View )

<div class="container">
<h2>Login</h2>
<?php if($this->session->flashdata('error_message')): ?>
<div class="alert alert-danger">
<?php echo $this->session->flashdata('error_message'); ?>
</div>
<?php endif; ?>
<?php echo form_open('member_login/login'); ?>
<div class="form-group">
<label for="username">Username:</label>
<input type="text" class="form-control" id="username" name="username">
</div>
<div class="form-group">
<label for="password">Password:</label>
<input type="password" class="form-control" id="password" name="password">
</div>
<button type="submit" class="btn btn-primary">Login</button>
<?php echo form_close(); ?>
</div>



ส่วนของ Controller

<?php
if (!defined('BASEPATH')) exit('No direct script access allowed');

/**
 * [ Controller File name : Member_login.php ]
 */
class Member_login extends CRUD_Controller
{
private $per_page;
private $another_js;
private $another_css;

public function __construct()
{
parent::__construct();
$this->per_page = 30;
$this->num_links = 6;
$this->uri_segment = 4;
$this->load->model('Member_login_model', 'Login');
$this->data['page_url'] = site_url('member_login');
$this->data['page_title'] = 'PHP CI MANIA';

}

// ------------------------------------------------------------------------

/**
* Index of controller
*/
public function index()
{
$this->login();
}

// ------------------------------------------------------------------------

/**
* Login function
*/
public function login()
{
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'required');
$this->form_validation->set_rules('password', 'Password', 'required');

if ($this->form_validation->run() == TRUE) {
$username = $this->input->post('username');
$password = $this->input->post('password');
// Authenticate user
$user = $this->Login->get_user_by_username($username);
if ($user && password_verify($password, $user['password'])) {
$this->session->set_userdata('user_id', $user['id']);
$this->session->set_userdata('username', $user['username']);
redirect('dashboard'); // Redirect to a dashboard or some other page
} else {
$this->session->set_flashdata('error_message', 'Invalid Username or Password');
redirect('member_login');
}
}

$this->render_view('member_login/login_view');
}

/**
* Logout function
*/
public function logout()
{
$this->session->unset_userdata('user_id');
$this->session->unset_userdata('username');
$this->session->sess_destroy();
redirect('member_login');
}

// ------------------------------------------------------------------------

protected function render_view($path)
{
$this->data['top_navbar'] = $this->parser->parse('template/sb-admin-bs4/top_navbar_view', $this->top_navbar_data, TRUE);
$this->data['left_sidebar'] = $this->parser->parse('template/sb-admin-bs4/left_sidebar_view', $this->left_sidebar_data, TRUE);
$this->data['breadcrumb_list'] = $this->parser->parse('template/sb-admin-bs4/breadcrumb_view', $this->breadcrumb_data, TRUE);
$this->data['page_content'] = $this->parser->parse_repeat($path, $this->data, TRUE);
$this->data['another_css'] = $this->another_css;
$this->data['another_js'] = $this->another_js;
$this->data['utilities_file_time'] = filemtime('assets/js/ci_utilities.js');
$this->parser->parse('template/sb-admin-bs4/homepage_view', $this->data);
}


}


ส่วนของ Model
application/models/Member_login_model.php

<?php
if (!defined('BASEPATH')) exit('No direct script access allowed');

class Member_login_model extends CI_Model
{
public function get_user_by_username($username)
{
$this->db->where('username', $username);
$query = $this->db->get('members');
return $query->row_array();
}
}


คำสั่ง SQL สำหรับสร้างฐานข้อมูล

CREATE TABLE `members` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(50) NOT NULL,
  `password` varchar(255) NOT NULL,
  `email` varchar(100) DEFAULT NULL,
  `created_at` datetime DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;





PHP CI MANIA - PHP Code Generator 

โปรแกรมช่วยสร้างโค้ด "ลดเวลาการเขียนโปรแกรม"
ราคาสุดคุ้ม  
http://www.phpcodemania.com

สร้างเว็บไซต์จองรถตู้ด้วย CodeIgniter + Bootstrap template

โดย CyberMAN

PHP CI MANIA - PHP Code Generator 

โปรแกรมช่วยสร้างโค้ด "ลดเวลาการเขียนโปรแกรม"
ราคาสุดคุ้ม  
http://www.phpcodemania.com

 

 

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

  1. ติดตั้ง CodeIgniter
  2. ติดตั้ง Bootstrap Template
  3. สร้างฐานข้อมูลสำหรับการจองรถตู้
  4. สร้าง Controller, Model และ View
  5. เพิ่มฟังก์ชันสำหรับการจองรถตู้

ขั้นตอนที่ 1: ติดตั้ง CodeIgniter

  1. ดาวน์โหลด CodeIgniter จาก เว็บไซต์ทางการ
  2. แตกไฟล์ที่ดาวน์โหลดมาและย้ายไปยังโฟลเดอร์ของเว็บเซิร์ฟเวอร์ (เช่น htdocs ของ XAMPP)

ขั้นตอนที่ 2: ติดตั้ง Bootstrap Template

  1. ดาวน์โหลด Bootstrap Template จาก เว็บไซต์ Bootstrap
  2. วางไฟล์ CSS และ JS ของ Bootstrap ในโฟลเดอร์ assets ของโปรเจ็กต์

ขั้นตอนที่ 3: สร้างฐานข้อมูลสำหรับการจองรถตู้

  1. เปิด phpMyAdmin และสร้างฐานข้อมูลใหม่ชื่อ van_booking
  2. สร้างตาราง bookings ด้วยโครงสร้างดังนี้:

CREATE TABLE bookings (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100) NOT NULL,
    phone VARCHAR(20) NOT NULL,
    date DATE NOT NULL,
    time TIME NOT NULL,
    destination VARCHAR(200) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);


ขั้นตอนที่ 4: สร้าง Controller, Model และ View

  1. Controller: สร้างไฟล์ Booking.php ในโฟลเดอร์ application/controllers/:

    <?php
    defined('BASEPATH') OR exit('No direct script access allowed');

    class Booking extends CI_Controller {

        public function __construct() {
            parent::__construct();
            $this->load->model('Booking_model');
            $this->load->helper('url');
            $this->load->library('form_validation');
        }

        public function index() {
            $this->load->view('booking_form');
        }

        public function book() {
            $this->form_validation->set_rules('name', 'Name', 'required');
            $this->form_validation->set_rules('email', 'Email', 'required|valid_email');
            $this->form_validation->set_rules('phone', 'Phone', 'required');
            $this->form_validation->set_rules('date', 'Date', 'required');
            $this->form_validation->set_rules('time', 'Time', 'required');
            $this->form_validation->set_rules('destination', 'Destination', 'required');

            if ($this->form_validation->run() == FALSE) {
                $this->load->view('booking_form');
            } else {
                $data = array(
                    'name' => $this->input->post('name'),
                    'email' => $this->input->post('email'),
                    'phone' => $this->input->post('phone'),
                    'date' => $this->input->post('date'),
                    'time' => $this->input->post('time'),
                    'destination' => $this->input->post('destination')
                );

                $this->Booking_model->insert_booking($data);
                $this->load->view('booking_success');
            }
        }
    }
     



2. Model: สร้างไฟล์ Booking_model.php ในโฟลเดอร์ application/models/:

<?php
class Booking_model extends CI_Model {

    public function __construct() {
        $this->load->database();
    }

    public function insert_booking($data) {
        return $this->db->insert('bookings', $data);
    }
}


3.View: สร้างไฟล์ booking_form.php และ booking_success.php ในโฟลเดอร์ application/views/:

 <!-- booking_form.php -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Van Booking</title>
    <link rel="stylesheet" href="<?php echo base_url('assets/css/bootstrap.min.css'); ?>">
</head>
<body>
    <div class="container">
        <h2>Van Booking Form</h2>
        <?php echo validation_errors(); ?>
        <?php echo form_open('booking/book'); ?>
            <div class="form-group">
                <label for="name">Name:</label>
                <input type="text" class="form-control" id="name" name="name">
            </div>
            <div class="form-group">
                <label for="email">Email:</label>
                <input type="email" class="form-control" id="email" name="email">
            </div>
            <div class="form-group">
                <label for="phone">Phone:</label>
                <input type="text" class="form-control" id="phone" name="phone">
            </div>
            <div class="form-group">
                <label for="date">Date:</label>
                <input type="date" class="form-control" id="date" name="date">
            </div>
            <div class="form-group">
                <label for="time">Time:</label>
                <input type="time" class="form-control" id="time" name="time">
            </div>
            <div class="form-group">
                <label for="destination">Destination:</label>
                <input type="text" class="form-control" id="destination" name="destination">
            </div>
            <button type="submit" class="btn btn-primary">Book Now</button>
        <?php echo form_close(); ?>
    </div>
    <script src="<?php echo base_url('assets/js/bootstrap.bundle.min.js'); ?>"></script>
</body>
</html>


 <!-- booking_success.php -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Booking Success</title>
    <link rel="stylesheet" href="<?php echo base_url('assets/css/bootstrap.min.css'); ?>">
</head>
<body>
    <div class="container">
        <h2>Booking Successful</h2>
        <p>Your booking has been made successfully.</p>
        <a href="<?php echo base_url(); ?>" class="btn btn-primary">Back to Home</a>
    </div>
    <script src="<?php echo base_url('assets/js/bootstrap.bundle.min.js'); ?>"></script>
</body>
</html>

 

ขั้นตอนที่ 5: เพิ่มฟังก์ชันสำหรับการจองรถตู้

ตอนนี้คุณสามารถทดสอบเว็บไซต์จองรถตู้ของคุณได้โดยการเรียกดู URL ที่เหมาะสม (http://localhost/your_project/booking)

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

 

การเพิ่มหน้าเว็บสำหรับแพกเกจทัวร์ในเว็บไซต์จองรถตู้ด้วย CodeIgniter และ Bootstrap template สามารถทำได้โดยทำตามขั้นตอนต่อไปนี้:

  1. สร้างฐานข้อมูลสำหรับแพกเกจทัวร์
  2. สร้าง Controller, Model และ View สำหรับแพกเกจทัวร์
  3. อัปเดตหน้าเว็บเพื่อแสดงรายการแพกเกจทัวร์

ขั้นตอนที่ 1: สร้างฐานข้อมูลสำหรับแพกเกจทัวร์

  1. เปิด phpMyAdmin และสร้างตาราง tour_packages ในฐานข้อมูล van_booking ด้วยโครงสร้างดังนี้:

CREATE TABLE tour_packages (
    id INT AUTO_INCREMENT PRIMARY KEY,
    package_name VARCHAR(100) NOT NULL,
    description TEXT NOT NULL,
    price DECIMAL(10, 2) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

 

 

ขั้นตอนที่ 2: สร้าง Controller, Model และ View สำหรับแพกเกจทัวร์

  1. Model: สร้างไฟล์ Tour_model.php ในโฟลเดอร์ application/models/:

 <?php
class Tour_model extends CI_Model {

    public function __construct() {
        $this->load->database();
    }

    public function get_tours() {
        $query = $this->db->get('tour_packages');
        return $query->result_array();
    }

    public function insert_tour($data) {
        return $this->db->insert('tour_packages', $data);
    }
}

 

2.  Controller: สร้างไฟล์ Tour.php ในโฟลเดอร์ application/controllers/:

 <?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Tour extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->model('Tour_model');
        $this->load->helper('url');
        $this->load->library('form_validation');
    }

    public function index() {
        $data['tours'] = $this->Tour_model->get_tours();
        $this->load->view('tour_list', $data);
    }

    public function create() {
        $this->form_validation->set_rules('package_name', 'Package Name', 'required');
        $this->form_validation->set_rules('description', 'Description', 'required');
        $this->form_validation->set_rules('price', 'Price', 'required|numeric');

        if ($this->form_validation->run() == FALSE) {
            $this->load->view('create_tour');
        } else {
            $data = array(
                'package_name' => $this->input->post('package_name'),
                'description' => $this->input->post('description'),
                'price' => $this->input->post('price')
            );

            $this->Tour_model->insert_tour($data);
            redirect('tour');
        }
    }
}

 

3. Views:

  • สร้างไฟล์ tour_list.php ในโฟลเดอร์ application/views/:

 <!-- tour_list.php -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Tour Packages</title>
    <link rel="stylesheet" href="<?php echo base_url('assets/css/bootstrap.min.css'); ?>">
</head>
<body>
    <div class="container">
        <h2>Tour Packages</h2>
        <a href="<?php echo site_url('tour/create'); ?>" class="btn btn-primary mb-3">Add New Package</a>
        <div class="row">
            <?php foreach ($tours as $tour): ?>
            <div class="col-md-4">
                <div class="card mb-4">
                    <div class="card-body">
                        <h5 class="card-title"><?php echo $tour['package_name']; ?></h5>
                        <p class="card-text"><?php echo $tour['description']; ?></p>
                        <p class="card-text"><strong>Price: </strong><?php echo $tour['price']; ?></p>
                    </div>
                </div>
            </div>
            <?php endforeach; ?>
        </div>
    </div>
    <script src="<?php echo base_url('assets/js/bootstrap.bundle.min.js'); ?>"></script>
</body>
</html>

 สร้างไฟล์ create_tour.php ในโฟลเดอร์ application/views/:

 <!-- create_tour.php -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Create Tour Package</title>
    <link rel="stylesheet" href="<?php echo base_url('assets/css/bootstrap.min.css'); ?>">
</head>
<body>
    <div class="container">
        <h2>Create Tour Package</h2>
        <?php echo validation_errors(); ?>
        <?php echo form_open('tour/create'); ?>
            <div class="form-group">
                <label for="package_name">Package Name:</label>
                <input type="text" class="form-control" id="package_name" name="package_name">
            </div>
            <div class="form-group">
                <label for="description">Description:</label>
                <textarea class="form-control" id="description" name="description"></textarea>
            </div>
            <div class="form-group">
                <label for="price">Price:</label>
                <input type="text" class="form-control" id="price" name="price">
            </div>
            <button type="submit" class="btn btn-primary">Create Package</button>
        <?php echo form_close(); ?>
    </div>
    <script src="<?php echo base_url('assets/js/bootstrap.bundle.min.js'); ?>"></script>
</body>
</html>

 

ขั้นตอนที่ 3: อัปเดตหน้าเว็บเพื่อแสดงรายการแพกเกจทัวร์

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

ตัวอย่างการอัปเดตเมนูใน application/views/booking_form.php:

 

<nav class="navbar navbar-expand-lg navbar-light bg-light">
   <a class="navbar-brand" href="<?php echo base_url(); ?>">Van Booking</a>
   <div class="collapse navbar-collapse" id="navbarNav">
       <ul class="navbar-nav">
           <li class="nav-item">
               <a class="nav-link" href="<?php echo site_url('booking'); ?>">Booking</a>
           </li>
           <li class="nav-item">
               <a class="nav-link" href="<?php echo site_url('tour'); ?>">Tour Packages</a>
           </li>
       </ul>
   </div>
</nav>
 

 

 ตัวอย่างการอัปเดตเมนูใน application/views/booking_success.php:

<nav class="navbar navbar-expand-lg navbar-light bg-light">
   <a class="navbar-brand" href="<?php echo base_url(); ?>">Van Booking</a>
   <div class="collapse navbar-collapse" id="navbarNav">
       <ul class="navbar-nav">
           <li class="nav-item">
               <a class="nav-link" href="<?php echo site_url('booking'); ?>">Booking</a>
           </li>
           <li class="nav-item">
               <a class="nav-link" href="<?php echo site_url('tour'); ?>">Tour Packages</a>
           </li>
       </ul>
   </div>
</nav>

 

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



 



การสร้างเว็บไซต์ในปี 2023 นั้นจะต้องคำนึงถึงอะไรบ้าง

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

1. ใช้ Responsive Design: การออกแบบเว็บไซต์ให้สามารถปรับขนาดได้ตามขนาดของหน้าจอของอุปกรณ์ต่างๆ เช่น โทรศัพท์มือถือ แท็บเล็ต และคอมพิวเตอร์ เพื่อให้ผู้ใช้สามารถเข้าถึงและใช้งานได้ง่ายและสะดวก


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


3. ใช้ CSS Grids หรือ Flexbox: การใช้ CSS Grids หรือ Flexbox จะช่วยให้ง่ายต่อการจัดหน้าเว็บไซต์ และสามารถปรับแต่งรูปแบบของเว็บไซต์ได้ง่ายขึ้น


4. ใช้ JavaScript Frameworks: การใช้ JavaScript Frameworks เช่น React, Angular, หรือ Vue.js จะช่วยให้สามารถสร้างเว็บไซต์ที่เป็น interactive และมีประสิทธิภาพได้อย่างรวดเร็ว


5. ใช้ Content Management Systems (CMS): การใช้ CMS เช่น WordPress, Joomla, หรือ Drupal จะช่วยให้สามารถสร้างเว็บไซต์ได้อย่างร




PHP CI MANIA - PHP Code Generator 

โปรแกรมช่วยสร้างโค้ด "ลดเวลาการเขียนโปรแกรม"
ราคาสุดคุ้ม  
http://www.phpcodemania.com

PHP array_chunk() เทคนิคการเขียนโปรแกรมแสดงผล แบบแบ่งตารางหลายคอลัมน์ โดยสร้าง TD ในตารางตามจำนวนคอลัมน์ที่ต้องการ

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



สำหรับเทคนิคการแสดงผลแบบแบ่งหลายคอลัมน์นั้น ยังนิยมอย่างมากในการทำแกลอรี่รูปภาพ ซึ่งตัวอย่างที่นำมาให้ดูนี้อาจจะคุ้นตามกันอยู่แล้ว เป็นบทความที่นำมาจากเว็บไซต์ ThaiCreate.Com

PHP MySQL Multiple Column 

จากตัวอย่างกำหนดให้ $intRows นับจำนวนรายการที่ดึงออกมาจากฐานข้อมูล

 จะมีคำสั่งที่ใช้ตรวจสอบจำนวนคอลัมน์ว่าครบหรือยังเพื่อขึ้นบรรทัดใหม่โดยตรวจสอบ

24.
25.if(($intRows)%2==0)
26.{
27.echo"</tr><tr>";
28.}

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

PHP ประมวลผลไฟล์ zip จาก Google Form

โดย SONGCHAI SAETERN
ดาวน์โหลดข้อมูลจาก Google Form เอามาอัพโหลดประมวลผลใน PHP



ตัวอย่างโค้ด
<?php


if( isset($_FILES) && isset($_FILES["FileUpload1"]["name"]) && $_FILES["FileUpload1"]["name"] != '' ){
    $zip = zip_open($_FILES["FileUpload1"]["tmp_name"]);

    if ($zip)
      {
        while ($zip_entry = zip_read($zip))
        {
            echo "<p>";
            echo "<b>ชื่อไฟล์ : </b> <span class='text-primary'>" . zip_entry_name($zip_entry) . "</span><br />";

            if (zip_entry_open($zip, $zip_entry))
            {
                echo "File Contents:<br/>";
             
                $contents = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
                $data = array_map("str_getcsv", preg_split('/\r*\n+|\r+/', $contents));
                echo '<pre>';
                print_r($data);
                echo '</pre>';
                echo '<hr/>';
             
                zip_entry_close($zip_entry);
            }
           
            echo "</p>";
        }

    zip_close($zip);
    }
}

?>

<form enctype="multipart/form-data" action="index.php?page=gfmis&m=satisfaction_process" method="post">
    <div class="panel panel-primary">
        <div class="panel-heading">
            <h2 class="panel-title">
                <b>อัพโหลดข้อมูลแบบฟอร์มสำรวจความพึงพอใจ</b>
            </h2>
        </div>
        <div class="panel-body">
            <table cellspacing="0" cellpadding="0" border="0">
                <tbody>
                    <tr>
                        <td width="20">&nbsp;</td>
                        <td class="title" style="text-align:left">เลือกไฟล์ Excel</td>
                    </tr>
                    <tr>
                        <td></td>
                        <td class="title_content">
                            <input type="file" id="FileUpload1" name="FileUpload1">
                        </td>
                    </tr>
                    <tr>
                        <td colspan="2" class="title_content">
                            <br/>
                            <input type="submit" id="Button1" value="ตรวจสอบข้อมูล" name="Button1">
                        </td>
                    </tr>
                </tbody>
            </table>
        </div>
    </div>
</form>


แหล่งอ้างอิง

PHP zip_entry_read() Function
https://www.w3schools.com/php/func_zip_entry_read.asp

Import CSV zipped file date to mysql
https://www.webmasterworld.com/php/4078430.htm

Converting CSV to array
https://stackoverflow.com/questions/7502370/converting-csv-to-array

CodeIgniter 3 เรียนรู้พื้นฐาน MVC กับการประยุกต์ใช้จริงด้วย Shopping Cart (Codeigniter for Beginners)

โดย SONGCHAI SAETERN


CodeIgniter 3 เรียนรู้พื้นฐานกับการประยุกต์ใช้จริง 

บทนำ
            สิ่งที่จะได้หลังจากเรียนรู้จากหนังสือเล่มนี้

บทที่ 1 ทำความรู้จักกับ CodeIgniter 3
            - การเขียน PHP แบบธรรมดา
            - การเขียน PHP แบบใช้ CodeIgniter Framework
            - สรุปความน่าสนใจของ CodeIgniter Framework

บทที่ 2 เริ่มต้นใช้งาน CodeIgniter 3
            - ดาวน์โหลดและติดตั้งใช้งาน
            - MVC คืออะไร (มาลองฝึกเขียนแบบแยกส่วนออกจากกัน)
            - Helper ที่ใช้ต้องรู้จัก ( Functions )
                - File
                - URL
                - การสร้าง Helper ไว้ใช้เอง
            - Library ที่ได้ใช้งานบ่อยๆ
                - Form Validation
                - Database
                - Session
                - Parser
                - File upload
                - E-Mail
                - การสร้าง Library ไว้ใช้เอง
            - การส่งค่าผ่าน Form และ URL
            - การเชื่อมต่อและจัดการฐานข้อมูล MySQL
                - การตั้งค่า Config เพื่อเชื่อมต่อฐานข้อมูล
                - การเพิ่ม/แสดง/แก้ไข/ลบ ข้อมูล ( CRUD )
                - การตรวจสอบค่าซ้ำ / นับจำนวน / หาผลรวม ( UNIQUE / COUNT / SUM)
                - การแสดงข้อมูลเชื่อมกันตั้งแต่ 2 ตารางขึ้นไป ( JOIN )
                - โปรแกรมจัดการฐาน HeidiSQL

บทที่ 3 ดาวน์โหลด Bootstrap Front-End Framework สำหรับสร้างเทมเพลตเว็บไซต์
            - ขั้นตอนการดาวน์โหลด
            - วิธีใช้งานใน CodeIgniter
            - การค้นหา Template มาใช้งาน

บทที่ 4 ออกแบบองค์ประกอบหน้าเว็บสำหรับขายสินค้าโดยใช้ Bootstrap template
            - ออกแบบแผนผังเว็บไซต์ขายของออนไลน์
            - สร้าง Views สำหรับหน้าเว็บส่วนต่างๆ
                - Home
                - Product List
                - Product Detail
                - Cart
                - Checkout
                - Order Tracking
                - Stock Management

บทที่ 5 การออกบบฐานข้อมูล
            - ออกแบบแผนผังข้อมูลอย่างย่อ (Data Flow Diagram)
            - ออกแบบความสัมพันธ์ของข้อมูลแต่ละตาราง (ER Diagram)
            - สร้างฐานข้อมูลตามแผนผังที่ได้ออกแบบไว้

บทที่ 6 เริ่มต้นเขียนโค้ดเชื่อมต่อฐานข้อมูล MySQL
            - ออกแบบฟังก์ชั่นใน Controller ที่จะใช้งานในแต่ละหน้า (ตามแผนผังเว็บไซต์)
            - ออกแบบฟังก์ชั่นใน Model ที่จะต้องใช้ในแต่ละส่วน (ตามฐานข้อมูลที่ออกแบบไว้)
            - นำส่วนต่างๆมารวมเข้าด้วยกันสำหรับเรียกใช้งานในแต่ละเมนู

บทที่ 7 ทดสอบการทำงานของระบบ
            - กำหนดเงื่อนไขที่ต้องการทดสอบ
            - ทดสอบทุกเมนูตามเงื่อนไขที่กำหนดไว้
            - แก้ไขข้อผิดพลาดและทดสอบจนครบทุกเงื่อนไขที่กำหนดเพิ่มเติม

ภาคผนวก ก ติดตั้ง XAMPP ใน Windows แบบ Portable
ภาคผนวก ข รวมข้อความ Error และวิธีการแก้ไข
ภาคผนวก ค รวมรายชื่อ Libraries
            




การเปิด Error Reporting บน Localhost และ Production Server

โดย SONGCHAI SAETERN
สำหรับการพัฒนาเว็บฯสิ่งที่หลีกเลี่ยงไม่ได้คือ Error ดังนั้นการจะ Debug ได้นั้น ก็ต้องทำความเข้าใจกับ Error ให้ได้เสียก่อน (ซึ่ง StackOverflow นั้นช่วยได้เยอะทีเดียว)

วิธีการเปิดข้อความแจ้ง Error บน Localhost นั้นง่ายๆครับ แค่เข้าไปแก้ไขที่ไฟล์ php.ini




แต่ถ้าข้อผิดพลาดเกิดขึ้นบน Production Server เราอาจจะไม่สามารถแก้ไขที่ php.ini ได้โดยตรง เราสามารถเพิ่มคำสั่งในไฟล์หน้านั้นๆ เพื่อแสดง Error ได้ดังนี้

Production Server :
(ส่วนนี้ให้เอาไว้ที่ไฟล์ Controller ที่ต้องการตรวจสอบเป็นไฟล์ๆไปนะครับ ทดสอบเสร็จก็ลบออกด้วย)

<?php
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);


นำคำสั่งสีน้ำเงินไปวางไว้บนสุด หลังเปิดแท็ก PHP
เพียงเท่านี้เราก็จะเห็น Error ที่เกิดขึ้นเมื่อนำไฟล์ไปรันบน Web hosting หรือ Production Server ได้ทันที


PHP CI MANIA - PHP Code Generator 

โปรแกรมช่วยสร้างโค้ด "ลดเวลาการเขียนโปรแกรม"
 http://fastcoding.phpcodemania.com/index.php/#purchase-order
ราคาสุดคุ้ม  4,500  บาท
http://fastcoding.phpcodemania.com

แจกโค้ด PHP Shopping Cart ระบบตะกร้าสินค้า + รีวิวการใช้งาน บน PHP 7.3.9

โดย SONGCHAI SAETERN
รีวิวการใช้งาน ระบบ PHP Shopping Cart ระบบตะกร้าสินค้า บน PHP 7.3.9 (ตอนที่ 1)
ดาวน์โหลด และติดตั้ง



รีวิวการใช้งาน ระบบ PHP Shopping Cart ระบบตะกร้าสินค้า บน PHP 7.3.9 (ตอนที่ 2)
แก้ไข Error หน้าสินค้า



รีวิวการใช้งาน ระบบ PHP Shopping Cart ระบบตะกร้าสินค้า บน PHP 7.3.9 (ตอนที่ 3)
แก้ไขส่วนของ Webboard การแสดงกระทู้และคอมเมนต์




รีวิวการใช้งาน ระบบ PHP Shopping Cart ระบบตะกร้าสินค้า บน PHP 7.3.9 (ตอนที่ 4)
เมนูตั้งกระทู้ใหม่ newtopic.php / ค้นหาแทนที่ mysql_xxxx() เป็น mysqli_xxxx()



รีวิวการใช้งาน ระบบ PHP Shopping Cart ระบบตะกร้าสินค้า บน PHP 7.3.9 (ตอนที่ 5)
เพิ่มความปลอดภัย ป้องกัน XSS + SQL Injection



ติดตามบน Youtube Channel ได้ที่ "PHP FAST CODING"


PHP CI MANIA - PHP Code Generator 

โปรแกรมช่วยสร้างโค้ด "ลดเวลาการเขียนโปรแกรม"
 http://fastcoding.phpcodemania.com/index.php/#purchase-order
ราคาสุดคุ้ม  1,500  บาท
http://fastcoding.phpcodemania.com

mimes file does not appear to contain a valid configuration array.

โดย SONGCHAI SAETERN

An Error Was Encountered

Your ...........mimes.php file does not appear to contain a valid configuration array.



แก้โดยการเปิด extension ของ php.ini เพิ่มเติม






สนับสนุนผลงานของผู้เขียนได้ที่

PHP CI MANIA - PHP Code Generator 

โปรแกรมช่วยสร้างโค้ด "ลดเวลาการเขียนโปรแกรม"
 http://fastcoding.phpcodemania.com/index.php/#purchase-order
ราคาสุดคุ้ม  1,500  บาท
http://fastcoding.phpcodemania.com

อยากสร้างเว็บไซต์ หรือเขียนโปรแกรม PHP ให้ปิดงานได้เร็วขึ้น ต้องลองใช้ PHP CI MANIA

โดย SONGCHAI SAETERN
หลายๆครั้งเราก็อยากได้เทคนิคการเรียน Programming อย่างไรให้เขียนเร็วขึ้น หรืออยากได้เคล็ดลับสำคัญในการเรียนรู้วิธีเขียนโปรแกรมให้เร็วยิ่งขึ้น แต่ก็ต้องฝึกฝนอย่างมากทีเดียว

http://fastcoding.phpcodemania.com/



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

PHP CI MANIA โปรแกรมสร้างเว็บแอพพลิเคชั่น PHP สำหรับคนที่ไม่ค่อยมีเวลา
"ลดเวลาเขียนโค้ด เพิ่มเวลาบริหารจัดการส่วนสำคัญอื่นๆได้มากยิ่งขึ้น"

หมดปัญหาการเขียนโค้ดเดิมๆซ้ำๆทั้งวัน ด้วยส่วนของการจัดการ CRUD เสร็จสรรพ ปรับแต่งแบบฟอร์มการป้อนข้อมูลเองได้ไม่ว่าจะเป็น INPUT Text / Checkbox / Radio / Select Box / Datepicker / File upload และยังสามารถปรับแต่งการจัดเรียงข้อมูล การแบ่งหน้า Pagination ได้อีกด้วย

ทดลองใช้ได้ที่
Pass : tobedeveloper

คู่มือการใช้งาน 

วิดีโอ Workshop 


ถ้าดูจนจบและทำความเข้าใจทั้งหมดแล้ว
รับรองว่าการเขียน PHP จะเป็นเรื่องง่ายและสะดวกขึ้นเยอะครับ


หลักการสร้างไฟล์ MVC อัตโนมัติ


การตั้งค่าและสร้างโค้ดในไม่กี่นาที โดยไม่ต้องเขียนโค้ดเอง




👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇

หลักการซื้อง่ายๆ สบายกระเป๋า ด้วยการ "อัพเกรดทีละเวอร์ชั่น"

STEP 1 : สำหรับครั้ง แรก 

สั่งซื้อ BASIC ราคา 1,500 .-

จะได้ฝึกใช้งาน PHP C MAINA กับฟีเจอร์หลักๆ ตั้งแค่ข้อ 1 - 11 ตามคู่มือ
เพื่อให้คุณคุ้นเคยกับการใช้งานเบื้องต้นไปพลางๆก่อน



👌👌👌👌👌👌👌👌👌👌👌👌👌👌👌👌👌👌

STEP 2 : สำหรับครั้งที่ 2

อัพเกรดเป็น PRO +1,490 .-
(ซึ่งจะจ่ายเพียงส่วนต่างจากเวอร์ชั่น Basic จากราคาเต็ม 2,990.-)


จะได้ฟีเจอร์ใหม่ๆ ส่วนของระบบสมาชิก, การใช้งาน SESSION, การคำนวณอัตโนมัติเมื่อกรอกตัวเลข, การสร้าง Running Number, สร้างฟอร์มแบบสอบถาม, การบันทึกการตั้งค่า, การสร้างไฟล์ด้วยการคลิกครั้งเดียว


💓💓💓💓💓💓💓💓💓💓💓💓💓💓

STEP 3 : สำหรับครั้งที่ 3

อัพเกรดเป็น PREMIUM +1,000 .-
(ซึ่งจะจ่ายเพียงส่วนต่างจากเวอร์ชั่น PRO จากราคาเต็ม 3,990.-)

เพิ่มฟีเจอร์การสร้างรายงานรูปแบบ PDF / Excel / Charts
 ซึ่งจะช่วยลดเวลาในการสร้างฟังก์ชั่น เรียกไลบรารี่และเตรียมไฟล์ต่างๆ 
สิ่งที่ต้องทำก็เพียงแค่ปรับแต่แบบฟอร์มให้ตรงกับที่ต้องการเท่านั้นเอง


👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍






สนับสนุนผลงานของผู้เขียนได้ที่

PHP CI MANIA - PHP Code Generator 

โปรแกรมช่วยสร้างโค้ด "ลดเวลาการเขียนโปรแกรม"
http://fastcoding.phpcodemania.com/index.php/#purchase-order
สนใจสั่งซื้อราคาสุดคุ้ม
http://fastcoding.phpcodemania.com