Cara membuat website dinamis di php langkah demi langkah

Selamat datang di In Pakainfo. com membuat situs Web dinamis. Anda akan Langkah Demi Langkah mempelajari pemrograman web, mudah dan sangat menyenangkan. Situs web ini sebagian besar memberi Anda tutorial pemrograman web lengkap yang disajikan dengan cara yang mudah diikuti. Setiap tutorial pemrograman web memiliki semua contoh praktis dengan konstruktor dan destruktor pemrograman web dalam skrip php dan tangkapan layar yang tersedia

Baca Juga Ini 👉   Dapatkan pencarian DNS Records secara terprogram

indeks. php

[php]


  • cara membuat halaman web dinamis menggunakan php & mysql
  • php menghasilkan halaman html
  • cara membuat halaman dinamis di php
  • cara membuat halaman html secara dinamis menggunakan php
  • konten halaman dinamis php
  • kode sumber situs web dinamis php
  • menggunakan php untuk menghasilkan html
  • cara membuat website dinamis di php langkah demi langkah pdf


“;
fwrite($fh, $stringData);
?>
[/php]

Keluaran. nama file. html

Secara otomatis index. jalankan file php untuk membuat nama file. html atau nama file. php dibuat secara dinamis

Fungsionalitas pembuatan halaman web dinamis membantu membuat konten HTML halaman web dapat dikelola oleh admin/pengguna. Pengguna dapat membuat halaman web HTML dengan konten dinamis dan memodifikasi konten halaman di masa mendatang. Fitur manajemen halaman web HTML terutama digunakan di panel admin aplikasi web, yang memungkinkan admin situs untuk membuat/memperbarui/menghapus halaman web HTML secara dinamis

Fungsi manajemen halaman web HTML dapat diimplementasikan dengan operasi CRUD. Operasi CRUD PHP dapat membantu Anda membuat dan mengelola halaman HTML dinamis dengan MySQL. Dalam tutorial ini, kami akan menunjukkan cara membuat halaman web dan mengelola konten HTML secara dinamis dengan database menggunakan PHP dan MySQL

Dalam skrip contoh ini, fungsionalitas berikut akan diimplementasikan untuk membangun sistem manajemen halaman HTML dinamis dengan PHP dan MySQL

  • Ambil data halaman dari database dan daftarkan di halaman web
  • Buat halaman HTML dengan konten dinamis menggunakan PHP
  • Menambah dan memasukkan data halaman dalam database menggunakan PHP dan MySQL
  • Buat URL dinamis halaman web dan izinkan akses ke halaman web dinamis
  • Edit dan perbarui konten halaman dengan PHP
  • Hapus data halaman dari database dan file HTML dari server

Sebelum mulai membuat aplikasi CRUD dengan pengelolaan halaman HTML dinamis, perhatikan struktur filenya

pages_management_with_php/
├── index.php
├── addEdit.php
├── userAction.php
├── PageDb.class.php
├── config.php
├── common/
│   └── cms.html
├── pages/
└── assets/
    ├── bootstrap/
    │   └── bootstrap.min.css
    ├── css/
    │   └── style.css
    ├── js/
    │   ├── tinymce/
    │   └── jquery.min.js
    └── images/

Buat Tabel Basis Data

Untuk menyimpan informasi halaman diperlukan tabel dalam database. SQL berikut membuat tabel pages dengan beberapa bidang wajib di database MySQL

CREATE TABLE `pages` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `page_uri` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `content` text COLLATE utf8_unicode_ci DEFAULT NULL,
  `created` datetime NOT NULL DEFAULT current_timestamp(),
  `modified` datetime NOT NULL DEFAULT current_timestamp(),
  `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
_

File konfigurasi (config. php)

Dalam file config.php, pengaturan umum dan variabel konfigurasi database ditentukan

  • $pageDir_ – Tentukan jalur folder tempat file halaman akan disimpan
  • CREATE TABLE `pages` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `page_uri` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
      `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
      `content` text COLLATE utf8_unicode_ci DEFAULT NULL,
      `created` datetime NOT NULL DEFAULT current_timestamp(),
      `modified` datetime NOT NULL DEFAULT current_timestamp(),
      `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    _0 – Tentukan ekstensi file halaman (. html/. php)
  • CREATE TABLE `pages` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `page_uri` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
      `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
      `content` text COLLATE utf8_unicode_ci DEFAULT NULL,
      `created` datetime NOT NULL DEFAULT current_timestamp(),
      `modified` datetime NOT NULL DEFAULT current_timestamp(),
      `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    1 – Batas karakter konten yang ditampilkan di daftar halaman
  • CREATE TABLE `pages` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `page_uri` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
      `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
      `content` text COLLATE utf8_unicode_ci DEFAULT NULL,
      `created` datetime NOT NULL DEFAULT current_timestamp(),
      `modified` datetime NOT NULL DEFAULT current_timestamp(),
      `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    _2 – Inang basis data
  • CREATE TABLE `pages` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `page_uri` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
      `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
      `content` text COLLATE utf8_unicode_ci DEFAULT NULL,
      `created` datetime NOT NULL DEFAULT current_timestamp(),
      `modified` datetime NOT NULL DEFAULT current_timestamp(),
      `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    _3 – Nama pengguna basis data
  • CREATE TABLE `pages` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `page_uri` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
      `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
      `content` text COLLATE utf8_unicode_ci DEFAULT NULL,
      `created` datetime NOT NULL DEFAULT current_timestamp(),
      `modified` datetime NOT NULL DEFAULT current_timestamp(),
      `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    _4 – Kata sandi basis data
  • CREATE TABLE `pages` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `page_uri` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
      `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
      `content` text COLLATE utf8_unicode_ci DEFAULT NULL,
      `created` datetime NOT NULL DEFAULT current_timestamp(),
      `modified` datetime NOT NULL DEFAULT current_timestamp(),
      `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    _5 – Nama basis data

// Common settings
$pageDir = 'pages'; // Folder path to store page files
$pageExtention = '.html'; // File extension
$list_excerpt_length = 100;

// Database configuration
define('DB_HOST', 'MySQL_Database_Host');
define('DB_USERNAME', 'MySQL_Database_Username');
define('DB_PASSWORD', 'MySQL_Database_Password');
define('DB_NAME', 'MySQL_Database_Name');

// Start session
if(!session_id()){
   session_start();
}

?>

_

Kelas CRUD Handler (PageDb. kelas. php)

Kelas PageDb adalah pustaka PHP khusus yang menangani semua operasi terkait CRUD (ambil, sisipkan, perbarui, dan hapus) dengan MySQL

  • CREATE TABLE `pages` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `page_uri` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
      `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
      `content` text COLLATE utf8_unicode_ci DEFAULT NULL,
      `created` datetime NOT NULL DEFAULT current_timestamp(),
      `modified` datetime NOT NULL DEFAULT current_timestamp(),
      `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    6 – Mengambil record dari database menggunakan PHP dan MySQL
  • CREATE TABLE `pages` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `page_uri` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
      `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
      `content` text COLLATE utf8_unicode_ci DEFAULT NULL,
      `created` datetime NOT NULL DEFAULT current_timestamp(),
      `modified` datetime NOT NULL DEFAULT current_timestamp(),
      `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    _7 – Memasukkan data ke dalam database
  • CREATE TABLE `pages` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `page_uri` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
      `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
      `content` text COLLATE utf8_unicode_ci DEFAULT NULL,
      `created` datetime NOT NULL DEFAULT current_timestamp(),
      `modified` datetime NOT NULL DEFAULT current_timestamp(),
      `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    _8 – Perbarui data yang ada di database berdasarkan kondisi yang ditentukan
  • CREATE TABLE `pages` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `page_uri` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
      `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
      `content` text COLLATE utf8_unicode_ci DEFAULT NULL,
      `created` datetime NOT NULL DEFAULT current_timestamp(),
      `modified` datetime NOT NULL DEFAULT current_timestamp(),
      `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    _9 – Hapus catatan dari database dengan ID
  • // Common settings
    $pageDir = 'pages'; // Folder path to store page files
    $pageExtention = '.html'; // File extension
    $list_excerpt_length = 100;

    // Database configuration
    define('DB_HOST', 'MySQL_Database_Host');
    define('DB_USERNAME', 'MySQL_Database_Username');
    define('DB_PASSWORD', 'MySQL_Database_Password');
    define('DB_NAME', 'MySQL_Database_Name');

    // Start session
    if(!session_id()){
       session_start();
    }

    ?>

    0 – Periksa apakah ada record dengan judul halaman yang sama di database
  • // Common settings
    $pageDir = 'pages'; // Folder path to store page files
    $pageExtention = '.html'; // File extension
    $list_excerpt_length = 100;

    // Database configuration
    define('DB_HOST', 'MySQL_Database_Host');
    define('DB_USERNAME', 'MySQL_Database_Username');
    define('DB_PASSWORD', 'MySQL_Database_Password');
    define('DB_NAME', 'MySQL_Database_Name');

    // Start session
    if(!session_id()){
       session_start();
    }

    ?>

    1 – Hasilkan slug URL halaman dari string
/*
 * Page Class
 * This class is used for database related (connect, fetch, insert, update, and delete) operations
 * @author    CodexWorld.com
 * @url        http://www.codexworld.com
 * @license    http://www.codexworld.com/license
 */

class PageDb {
    private $dbHost     = DB_HOST;
    private $dbUsername = DB_USERNAME;
    private $dbPassword = DB_PASSWORD;
    private $dbName     = DB_NAME;
    private $dbTable    = 'pages';

    function __construct(){
        if(!isset($this->db)){
            // Connect to the database
            $conn = new mysqli($this->dbHost, $this->dbUsername, $this->dbPassword, $this->dbName);
            if($conn->connect_error){
                die("Failed to connect with MySQL: " . $conn->connect_error);
            }else{
                $this->db = $conn;
            }
        }
    }

    /*
     * Returns rows from the database based on the conditions
     * @param array select, where, order_by, limit and return_type conditions
     */
    public function getRows($conditions = array()){
        $sql = 'SELECT ';
        $sql .= array_key_exists("select",$conditions)?$conditions['select']:'*';
        $sql .= ' FROM '.$this->dbTable;
        if(array_key_exists("where",$conditions)){
            $sql .= ' WHERE ';
            $i = 0;
            foreach($conditions['where'] as $key => $value){
                $pre = ($i > 0)?' AND ':'';
                $sql .= $pre.$key." = '".$value."'";
                $i++;
            }
        }

        if(array_key_exists("order_by",$conditions)){
            $sql .= ' ORDER BY '.$conditions['order_by'];
        }else{
            $sql .= ' ORDER BY id DESC ';
        }

        if(array_key_exists("start",$conditions) && array_key_exists("limit",$conditions)){
            $sql .= ' LIMIT '.$conditions['start'].','.$conditions['limit'];
        }elseif(!array_key_exists("start",$conditions) && array_key_exists("limit",$conditions)){
            $sql .= ' LIMIT '.$conditions['limit'];
        }

        $stmt = $this->db->prepare($sql);
        $stmt->execute();
        $result = $stmt->get_result();

        if(array_key_exists("return_type",$conditions) && $conditions['return_type'] != 'all'){
            switch($conditions['return_type']){
                case 'count':
                    $data = $result->num_rows;
                    break;
                case 'single':
                    $data = $result->fetch_assoc();
                    break;
                default:
                    $data = '';
            }
        }else{
            if($result->num_rows > 0){
                while($row = $result->fetch_assoc()){
                    $data[] = $row;
                }
            }
        }
        return !empty($data)?$data:false;
    }

    /*
     * Insert data into the database
     * @param array the data for inserting into the table
     */
    public function insert($data){
        if(!empty($data) && is_array($data)){
            if(!array_key_exists('created',$data)){
                $data['created'] = date("Y-m-d H:i:s");
            }
            if(!array_key_exists('modified',$data)){
                $data['modified'] = date("Y-m-d H:i:s");
            }

            $placeholders = array_fill(0, count($data), '?');

            $columns = $values = array();
            foreach($data as $key=>$val){
                $columns[] = $key;
                //$values[] = !empty($val)?$this->db->real_escape_string($val):NULL;
                $values[] = !empty($val)?$val:NULL;
            }

            $sqlQ = "INSERT INTO {$this->dbTable} (".implode(', ', $columns).") VALUES (".implode(', ', $placeholders)."); ";
            $stmt = $this->db->prepare($sqlQ);

            $types  = array(str_repeat('s', count($values)));
            $params = array_merge($types, $values);

            call_user_func_array(array($stmt, 'bind_param'), $params);

               $insert = $stmt->execute();
            return $insert?$this->db->insert_id:false;
        }else{
            return false;
        }
    }

    /*
     * Update data into the database
     * @param array the data for updating into the table
     * @param array where condition on updating data
     */
    public function update($data, $conditions){
        if(!empty($data) && is_array($data)){
            if(!array_key_exists('modified', $data)){
                $data['modified'] = date("Y-m-d H:i:s");
            }

            $placeholders = array_fill(0, count($data), '?');

            $columns = $values = array();
            foreach($data as $key=>$val){
                $columns[] = $key;
                //$values[] = !empty($val)?$this->db->real_escape_string($val):NULL;
                $values[] = !empty($val)?$val:NULL;
            }

            $whr_columns = $whr_values = array();
            $where_columns = '';
            if(!empty($conditions)&& is_array($conditions)){
                foreach($conditions as $key=>$val){
                    $whr_columns[] = $key;
                    $whr_values[] = !empty($val)?$this->db->real_escape_string($val):NULL;
                }

                $where_columns = " WHERE ".implode('=?, ', $whr_columns)."=? ";
            }

            $sqlQ = "UPDATE {$this->dbTable} SET ".implode('=?, ', $columns)."=? $where_columns ";
            $stmt = $this->db->prepare($sqlQ);

            if(!empty($whr_columns)){
                $values_where_arr = array_merge($values, $whr_values);
                $types  = array(str_repeat('s', count($values_where_arr)));
                $params = array_merge($types, $values_where_arr);
            }else{
                $types  = array(str_repeat('s', count($values)));
                $params = array_merge($types, $values);
            }

            call_user_func_array(array($stmt, 'bind_param'), $params);

               $update = $stmt->execute();
            return $update?$this->db->affected_rows:false;
        }else{
            return false;
        }
    }

    /*
     * Delete data from the database
     * @param array where condition on deleting data
     */
    public function delete($id){
        $sqlQ = "DELETE FROM {$this->dbTable} WHERE id=?";
        $stmt = $this->db->prepare($sqlQ);
        $stmt->bind_param("i", $id);
        $delete = $stmt->execute();
        return $delete?true:false;
    }

    public function isPageExists($title, $id=''){
        $sqlQ = "SELECT * FROM {$this->dbTable} WHERE LOWER(title)=?";
        if(!empty($id)){
            $sqlQ .= " AND id != ?";
        }
        $stmt = $this->db->prepare($sqlQ);

        if(!empty($id)){
            $stmt->bind_param("si", $title_lwr, $id);
        }else{
            $stmt->bind_param("s", $title_lwr);
        }
        $title_lwr = strtolower($title);

        $stmt->execute();
        $result = $stmt->get_result();
        return $result->num_rows > 0?true:false;
    }

    public function generatePageUri($string, $wordLimit = 0){
        $separator = '_';

        if($wordLimit != 0){
            $wordArr = explode(' ', $string);
            $string = implode(' ', array_slice($wordArr, 0, $wordLimit));
        }

        $quoteSeparator = preg_quote($separator, '#');

        $trans = array(
            '&.+?;'                 => '',
            '[^\w\d _-]'            => '',
            '\s+'                   => $separator,
            '('.$quoteSeparator.')+'=> $separator
        );

        $string = strip_tags($string);
        foreach ($trans as $key => $val){
            $string = preg_replace('#'.$key.'#iu', $val, $string);
        }

        $string = strtolower($string);

        return trim(trim($string, $separator));
    }
}

Pages Operasi CRUD dengan PHP (userAction. php)

Menggunakan PHP dan MySQL, file

// Common settings
$pageDir = 'pages'; // Folder path to store page files
$pageExtention = '.html'; // File extension
$list_excerpt_length = 100;

// Database configuration
define('DB_HOST', 'MySQL_Database_Host');
define('DB_USERNAME', 'MySQL_Database_Username');
define('DB_PASSWORD', 'MySQL_Database_Password');
define('DB_NAME', 'MySQL_Database_Name');

// Start session
if(!session_id()){
   session_start();
}

?>

_2 melakukan operasi CRUD dengan Handler Class (

// Common settings
$pageDir = 'pages'; // Folder path to store page files
$pageExtention = '.html'; // File extension
$list_excerpt_length = 100;

// Database configuration
define('DB_HOST', 'MySQL_Database_Host');
define('DB_USERNAME', 'MySQL_Database_Username');
define('DB_PASSWORD', 'MySQL_Database_Password');
define('DB_NAME', 'MySQL_Database_Name');

// Start session
if(!session_id()){
   session_start();
}

?>

3). Blok kode dijalankan berdasarkan tindakan yang diminta

Tambahkan/Edit Halaman

  • Formulir dikirimkan oleh userSubmit dengan metode POST
  • Ambil nilai input (judul halaman dan konten) menggunakan metode PHP $_POST
  • Validasi input data dengan PHP
  • Buat slug halaman dari judul menggunakan metode generatePageUri() dari kelas PageDb
  • Dapatkan tata letak umum dari halaman HTML default (

    // Common settings
    $pageDir = 'pages'; // Folder path to store page files
    $pageExtention = '.html'; // File extension
    $list_excerpt_length = 100;

    // Database configuration
    define('DB_HOST', 'MySQL_Database_Host');
    define('DB_USERNAME', 'MySQL_Database_Username');
    define('DB_PASSWORD', 'MySQL_Database_Password');
    define('DB_NAME', 'MySQL_Database_Name');

    // Start session
    if(!session_id()){
       session_start();
    }

    ?>

    4) menggunakan fungsi file_get_contents() di PHP
  • Ganti PAGE_TITLE dan PAGE_CONTENT dengan data halaman dinamis menggunakan PHP
  • Hasilkan halaman HTML secara dinamis dan buat file di server menggunakan fungsi file_put_contents () PHP
  • Jika ID yang ada diberikan, perbarui data dalam database menggunakan metode update() dari kelas PageDb. Jika tidak, masukkan data ke dalam database menggunakan metode insert() dari kelas PageDb

Hapus Catatan

  • Jika penghapusan diminta dalam action_type, hapus data halaman dari database berdasarkan id yang diberikan dalam string kueri
  • Hapus file halaman dari server menggunakan fungsi unlink() PHP

Setelah manipulasi data, status disimpan di SESSION dengan PHP dan dialihkan ke halaman masing-masing

// Include configuration file
require_once 'config.php';

// Include and initialize Page DB class
require_once 'PageDb.class.php';
$pageDb = new PageDb();

// Set default redirect url
$redirectURL = 'index.php';

if(isset($_POST['userSubmit'])){
    // Get form fields value
    $id = $_POST['id'];
    $title = trim(strip_tags($_POST['title']));
    $content = $_POST['content'];

    $id_str = '';
    if(!empty($id)){
        $id_str = '?id='.$id;
    }

    // Fields validation
    $errorMsg = '';
    if(empty($title)){
        $errorMsg .= '

Please enter title.

';
    }elseif($pageDb->isPageExists($title, $id)){
        $errorMsg .= '

The page with the same title already exists.

';
    }

    if(empty($content)){
        $errorMsg .= '

Please enter page content.

';
    }

    // Submitted form data
    $pageData = array(
        'title' => $title,
        'content' => $content
    );

    // Store the submitted field values in the session
    $sessData['userData'] = $pageData;

    // Process the form data
    if(empty($errorMsg)){
        // Create page file
        $page_slug = $pageDb->generatePageUri($title);
        $page_file = $page_slug.$pageExtention;

        $html_file = 'common/cms.html';
        $html_file_content = file_get_contents($html_file);
        $html_file_content = str_replace('[PAGE_TITLE]', $title, $html_file_content);
        $html_file_content = str_replace('[PAGE_CONTENT]', $content, $html_file_content);

        if(!file_exists($pageDir)){
            mkdir($pageDir, 0777);
        }
        $filePath = $pageDir.'/'.$page_file;
        $create_page_file = file_put_contents($filePath, $html_file_content);

        if($create_page_file){
            $pageData['page_uri'] = $page_file;
            if(!empty($id)){
                // Get previous data
                $cond = array(
                    'where' => array(
                        'id' => $id
                    ),
                    'return_type' => 'single'
                );
                $prevPageData = $pageDb->getRows($cond);

                // Update page data
                $cond = array(
                    'id' => $id
                );
                $update = $pageDb->update($pageData, $cond);

                if($update){
                    // Remove old page file
                    if($prevPageData['page_uri'] !== $page_file){
                        $filePath_prev = $pageDir.'/'.$prevPageData['page_uri'];
                        unlink($filePath_prev);
                    }

                    $sessData['status']['type'] = 'success';
                    $sessData['status']['msg'] = 'Page data has been updated successfully.';

                    // Remote submitted fields value from session
                    unset($sessData['userData']);
                }else{
                    $sessData['status']['type'] = 'error';
                    $sessData['status']['msg'] = 'Something went wrong, please try again.';

                    // Set redirect url
                    $redirectURL = 'addEdit.php'.$id_str;
                }
            }else{
                // Insert page data
                $insert = $pageDb->insert($pageData);

                if($insert){
                    $sessData['status']['type'] = 'success';
                    $sessData['status']['msg'] = 'Page data has been added successfully.';

                    // Remote submitted fields value from session
                    unset($sessData['userData']);
                }else{
                    $sessData['status']['type'] = 'error';
                    $sessData['status']['msg'] = 'Something went wrong, please try again.';

                    // Set redirect url
                    $redirectURL = 'addEdit.php'.$id_str;
                }
            }
        }else{
            $sessData['status']['msg'] = 'Page creation failed! Please try again.';
        }
    }else{
        $sessData['status']['type'] = 'error';
        $sessData['status']['msg'] = '

Please fill all the mandatory fields.

'.$errorMsg;

        // Set redirect url
        $redirectURL = 'addEdit.php'.$id_str;
    }

    // Store status into the session
    $_SESSION['sessData'] = $sessData;
}elseif(($_REQUEST['action_type'] == 'delete') && !empty($_GET['id'])){
    $id = base64_decode($_GET['id']);

    // Get page data
    $cond = array(
        'where' => array(
            'id' => $id
        ),
        'return_type' => 'single'
    );
    $pageData = $pageDb->getRows($cond);

    // Delete page from database
    $delete = $pageDb->delete($id);

    if($delete){
        // Remove page file
        if(!empty($pageData['page_uri'])){
            $filePath = $pageDir.'/'.$pageData['page_uri'];
            @unlink($filePath);
        }

        $sessData['status']['type'] = 'success';
        $sessData['status']['msg'] = 'Page has been deleted successfully.';
    }else{
        $sessData['status']['type'] = 'error';
        $sessData['status']['msg'] = 'Some problem occurred, please try again.';
    }

    // Store status into the session
    $_SESSION['sessData'] = $sessData;
}

// Redirect to the respective page
header("Location:".$redirectURL);
exit();
?>

Perpustakaan Bootstrap

Kami akan menggunakan pustaka Bootstrap untuk membuat tabel, formulir, dan tombol terlihat lebih baik. Anda dapat mengabaikannya untuk menggunakan lembar gaya khusus untuk tabel HTML, formulir, tombol, dan elemen UI lainnya

Sertakan file CSS dari pustaka Bootstrap

Daftar Halaman dengan Fitur Lihat & Hapus (index. php)

Awalnya, semua halaman diambil dari database dan dicantumkan dalam format tabular dengan opsi Lihat, Tambah, Edit, dan Hapus

  • Tautan Tambahkan mengalihkan ke addEdit. php untuk melakukan operasi pembuatan halaman
  • Tautan Lihat membuka file halaman dan menampilkan konten HTML
  • Tautan Edit dialihkan ke addEdit. php untuk melakukan operasi pembaruan konten halaman
  • Tautan Hapus dialihkan ke userAction. php dengan

    // Common settings
    $pageDir = 'pages'; // Folder path to store page files
    $pageExtention = '.html'; // File extension
    $list_excerpt_length = 100;

    // Database configuration
    define('DB_HOST', 'MySQL_Database_Host');
    define('DB_USERNAME', 'MySQL_Database_Username');
    define('DB_PASSWORD', 'MySQL_Database_Password');
    define('DB_NAME', 'MySQL_Database_Name');

    // Start session
    if(!session_id()){
       session_start();
    }

    ?>

    _5 dan params id. Data halaman dihapus dari database berdasarkan pengidentifikasi unik (id)

Buat dan Perbarui Konten Halaman (addEdit. php)

// Common settings
$pageDir = 'pages'; // Folder path to store page files
$pageExtention = '.html'; // File extension
$list_excerpt_length = 100;

// Database configuration
define('DB_HOST', 'MySQL_Database_Host');
define('DB_USERNAME', 'MySQL_Database_Username');
define('DB_PASSWORD', 'MySQL_Database_Password');
define('DB_NAME', 'MySQL_Database_Name');

// Start session
if(!session_id()){
   session_start();
}

?>

6 menangani pembuatan halaman dan fungsionalitas formulir pembaruan konten

Plugin TinyMCE digunakan untuk mengganti field input textarea dengan WYSIWYG HTML Editor. Ini memungkinkan pengguna untuk memasukkan konten halaman dengan opsi pemformatan HTML
Pertama, sertakan perpustakaan jQuery dan file perpustakaan plugin TinyMCE

Inisialisasi plugin TinyMCE untuk melampirkan editor dengan elemen HTML (

// Common settings
$pageDir = 'pages'; // Folder path to store page files
$pageExtention = '.html'; // File extension
$list_excerpt_length = 100;

// Database configuration
define('DB_HOST', 'MySQL_Database_Host');
define('DB_USERNAME', 'MySQL_Database_Username');
define('DB_PASSWORD', 'MySQL_Database_Password');
define('DB_NAME', 'MySQL_Database_Name');

// Start session
if(!session_id()){
   session_start();
}

?>

7)

Awalnya, formulir HTML ditampilkan untuk memungkinkan input data

  • Jika parameter id ada di URL, data halaman yang ada akan diambil dari database berdasarkan ID ini dan bidang formulir akan diisi sebelumnya
  • Setelah pengiriman formulir, data formulir diposting ke userAction. php untuk menyisipkan/memperbarui konten halaman dalam database

Operasi PHP CRUD dengan File JSON

Kesimpulan

Fungsi Page CRUD sangat berguna saat Anda ingin membuat halaman HTML dan mengelola halaman web secara dinamis. Di sini kami telah mencoba membuat CRUD manajemen halaman sederhana, di mana Anda dapat membuat halaman HTML secara dinamis di PHP. Semua jenis tag dan pemformatan HTML dapat ditambahkan ke konten halaman secara dinamis dengan sistem manajemen halaman PHP CMS. Tidak hanya pembuatan halaman, tetapi juga Anda dapat memperbarui dan menghapus konten halaman secara dinamis menggunakan PHP. Kode contoh ini membantu Anda mengembangkan sistem manajemen konten (CMS) dengan PHP dan MySQL

Apakah Anda ingin mendapatkan bantuan implementasi, atau memodifikasi atau meningkatkan fungsionalitas skrip ini?

Bisakah kita membuat website dinamis dengan PHP?

PHP dan JavaScript adalah bahasa pemrograman yang memberikan hasil dinamis untuk laman web .

Bagaimana cara membuat website dinamis dengan HTML dan PHP?

Buat dan Kelola Laman HTML Secara Dinamis dengan PHP & MySQL .
Ambil data halaman dari database dan daftarkan di halaman web
Buat halaman HTML dengan konten dinamis menggunakan PHP
Menambah dan memasukkan data halaman dalam database menggunakan PHP dan MySQL
Buat URL dinamis halaman web dan izinkan akses ke halaman web dinamis

Bagaimana cara membuat website dinamis?

Ikuti langkah-langkah umum ini agar berhasil merancang dan membuat situs web yang dinamis. .
Desain halaman. Langkah kunci dalam mendesain situs web apa pun—baik statis maupun dinamis—adalah desain visual halaman. .
Buat sumber konten dinamis. .
Tambahkan konten dinamis ke halaman web. .
Tambahkan perilaku server ke halaman. .
Uji dan debug halaman

Apa itu situs web dinamis dalam PHP?

Situs Web Dinamis adalah situs web berisi data yang dapat diubah atau diubah . Itu menggunakan skrip sisi klien atau server untuk menghasilkan konten yang bisa berubah. Seperti situs web statis, ini juga berisi data HTML. Situs web dinamis adalah situs web yang mengubah konten atau tata letak dengan setiap permintaan ke server web.