ผลต่างระหว่างรุ่นของ "คู่มือการพัฒนาซอฟต์แวร์บนเว็บบราวซ์เซอร์ให้รองรับ UA ด้วยภาษา PHP/en"

จาก Wiki_EAI
ไปยังการนำทาง ไปยังการค้นหา
(สร้างหน้าด้วย "-->")
แถว 21: แถว 21:
  
 
=== Related systems ===
 
=== Related systems ===
# Database system
+
# Database system
# MySQL
+
# * MySQL
# PHPMyAdmin
+
# * PHPMyAdmin
 
# Web application
 
# Web application
# Registration system
+
# * Registration system
# Login system
+
# * Login system
# User profile system
+
# * User profile system
 
# Email system
 
# Email system
# PHPMailer
+
# * PHPMailer
  
 
=== To be used software  ===
 
=== To be used software  ===

รุ่นแก้ไขเมื่อ 09:31, 3 สิงหาคม 2564

ภาษาอื่น ๆ:
English • ‎ไทย

This manual is a guideline for UA web application development using PHP. The application will be able to accept, validate and process Thai IDN and Thai EAI correctly.


User/Pass for accessing server in the workshop [User]

# HOST: https://ws.kon.in.th
# DB: https://ws.kon.in.th/phpmyadmin/
# user: userX
# pass: eaiuserX

User/Pass สำหรับเข้าเซิร์ฟเวอร์ใน workshop [User]

# HOST: https://ws.kon.in.th
# DB: https://ws.kon.in.th/phpmyadmin/
# user: userX
# pass: eaiuserX

-->

Preparing to Support UA in PHP

Related systems

  1. Database system
  2. * MySQL
  3. * PHPMyAdmin
  4. Web application
  5. * Registration system
  6. * Login system
  7. * User profile system
  8. Email system
  9. * PHPMailer

To be used software

  1. Filezilla [Win] [Mac]
  2. Web Browser e.g. Firefox, Chrome, Safari
  3. Text Editor (Code Editor) e.g. Notepad, Atom

Application Architecture

App-archetiect-3.png App-archetiect-2.png App-archetiect-1.png

Developing Applications to Support UA in PHP

Cereate database that could handle IDN and EAI

# CREATE TABLE IF NOT EXISTS accounts ( 
   `id` int(11) NOT NULL AUTO_INCREMENT,
   `username` varchar(50) NOT NULL,
   `password` varchar(255) NOT NULL,
   `email` varchar(100) NOT NULL,
   `activation_code` varchar(50) DEFAULT '',
   PRIMARY KEY (`id`)
 ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

modify the registration system to be able to accept EAI email address

modify register.html fronm

# <input type="email" name="email" placeholder="Email" id="email" required>

to

# <input type="text" name="email" placeholder="Email" id="email" required>

modifythe registration system to be able to validate EAI email address

modify register.php from

# if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { 

      exit('Email is not valid!');
 
  }

to

# if (preg_match('/^[ก-๙a-zA-Z0-9_+&*-]+(?:\.[ก-๙a-zA-Z0-9_+&*-]+)*@(?:[ก-๙a-zA-Z0-9-]+\.)+[ก-๙a-zA-Z]{2,16}$/u', $_POST['email']) == 0) {
      exit('Email is not valid!');
 
 }

modify the registration system to be able to send EAI email with PHPMailer

modify PHPMailer/src/PHPMailer.php from

# case 'php': 
  default:
  return filter_var($address, FILTER_VALIDATE_EMAIL) !== false;

to

# case 'php': 
  default: 
  return (bool) preg_match("/^[ก-๙a-zA-Z0-9_+&*-]+(?:\.[ก-๙a-zA-Z0-9_+&*-]+)*@(?:[ก-๙a-zA-Z0-9-]+\.)+[ก-๙a-zA-Z]{2,16}$/u", $address);

The regular expression works for Thai email address only. For general email verification for any email addresses in any language, the following expression may be considered:

  • something@something ^(.+)@(.+)$