Manual: UA web application development using PHP

จาก Wiki_EAI
รุ่นแก้ไขเมื่อ 15:15, 6 ตุลาคม 2564 โดย Photchanan (คุย | มีส่วนร่วม)
(ต่าง) ←รุ่นแก้ไขก่อนหน้า | รุ่นแก้ไขล่าสุด (ต่าง) | รุ่นแก้ไขถัดไป→ (ต่าง)
ไปยังการนำทาง ไปยังการค้นหา
ภาษาอื่น ๆ:
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.


Preparing to Support UA in PHP

Related systems

  1. Database system
    • MySQL
    • PHPMyAdmin
  2. Web application
    • Registration system
    • Login system
    • User profile system
  3. Email system
    • PHPMailer

Required software

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

Source code

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 ^(.+)@(.+)$