Difference between revisions of "คู่มือการพัฒนาซอฟต์แวร์บนเว็บบราวซ์เซอร์ให้รองรับ UA ด้วยภาษา PHP/th"

From Wiki_EAI
Jump to navigation Jump to search
(กำลังอัพเดตเพื่อทำให้ตรงกันกับรุ่นปรับปรุงใหม่ของหน้่าโค้ดหลัก)
(กำลังอัพเดตเพื่อทำให้ตรงกันกับรุ่นปรับปรุงใหม่ของหน้่าโค้ดหลัก)
Line 2: Line 2:
 
คู่มือนี้ได้จัดทำขึ้นมาเพื่อใช้เป็นแนวทางในการพัฒนาซอฟต์แวร์บนเว็บบราวซ์เซอร์เพื่อให้รองรับโดเมนภาษาไทย (IDN) และอีเมลภาษาไทย (EAI) โดยใช้ภาษา PHP
 
คู่มือนี้ได้จัดทำขึ้นมาเพื่อใช้เป็นแนวทางในการพัฒนาซอฟต์แวร์บนเว็บบราวซ์เซอร์เพื่อให้รองรับโดเมนภาษาไทย (IDN) และอีเมลภาษาไทย (EAI) โดยใช้ภาษา PHP
  
 +
 +
<!--
  
 
User/Pass สำหรับเข้าเซิร์ฟเวอร์ใน workshop  [[https://คน.ไทย/วิกิ/list-user-ws.jpg User]]  
 
User/Pass สำหรับเข้าเซิร์ฟเวอร์ใน workshop  [[https://คน.ไทย/วิกิ/list-user-ws.jpg User]]  
Line 8: Line 10:
 
  # user: userX
 
  # user: userX
 
  # pass: eaiuserX
 
  # pass: eaiuserX
 +
 +
-->
  
 
== Preparing to Support UA in PHP ==
 
== Preparing to Support UA in PHP ==
Line 36: Line 40:
  
 
=== [[สร้างฐานข้อมูลที่รองรับ IDN และ EAI]] ===
 
=== [[สร้างฐานข้อมูลที่รองรับ IDN และ EAI]] ===
  '''# CREATE TABLE IF NOT EXISTS accounts ( '''
+
  '''CREATE TABLE IF NOT EXISTS accounts ( '''
 
  '''  `id` int(11) NOT NULL AUTO_INCREMENT,
 
  '''  `id` int(11) NOT NULL AUTO_INCREMENT,
 
  '''  `username` varchar(50) NOT NULL,
 
  '''  `username` varchar(50) NOT NULL,
Line 47: Line 51:
 
=== [[แก้ไขให้ระบบลงทะเบียนรองรับการใส่อีเมล EAI]] ===
 
=== [[แก้ไขให้ระบบลงทะเบียนรองรับการใส่อีเมล EAI]] ===
 
แก้ไขไฟล์ register.html จาก
 
แก้ไขไฟล์ register.html จาก
  '''# <input type=&quot;email&quot; name=&quot;email&quot; placeholder=&quot;Email&quot; id=&quot;email&quot; required>
+
  '''<input type=&quot;email&quot; name=&quot;email&quot; placeholder=&quot;Email&quot; id=&quot;email&quot; required>
  
 
เป็น
 
เป็น
  '''# <input type=[[&quot;text&quot;]] name=&quot;email&quot; placeholder=&quot;Email&quot; id=&quot;email&quot; required>
+
  '''<input type=[[&quot;text&quot;]] name=&quot;email&quot; placeholder=&quot;Email&quot; id=&quot;email&quot; required>
  
 
=== [[แก้ไขให้ระบบลงทะเบียนตรวจสอบอีเมล EAI ได้]] ===
 
=== [[แก้ไขให้ระบบลงทะเบียนตรวจสอบอีเมล EAI ได้]] ===
 
แก้ไขไฟล์ register.php จาก  
 
แก้ไขไฟล์ register.php จาก  
  '''# if (!filter_var($_POST[&apos;email&apos;], FILTER_VALIDATE_EMAIL)) {  
+
  '''if (!filter_var($_POST[&apos;email&apos;], FILTER_VALIDATE_EMAIL)) {  
 
  '''
      exit(&apos;Email is not valid!&apos;);
  
 
  '''
      exit(&apos;Email is not valid!&apos;);
  
 
  '''  }
 
  '''  }
  
 
เป็น
 
เป็น
  '''# if (preg_match(&apos;/^[ก-๙a-zA-Z0-9_+&*-]+(?:\.[ก-๙a-zA-Z0-9_+&*-]+)*@(?:[ก-๙a-zA-Z0-9-]+\.)+[ก-๙a-zA-Z]{2,16}$/u&apos;, $_POST[&apos;email&apos;]) == 0) {
+
  ''' if (preg_match(&apos;/^[ก-๙a-zA-Z0-9_+&*-]+(?:\.[ก-๙a-zA-Z0-9_+&*-]+)*@(?:[ก-๙a-zA-Z0-9-]+\.)+[ก-๙a-zA-Z]{2,16}$/u&apos;, $_POST[&apos;email&apos;]) == 0) {
 
  '''      exit(&apos;Email is not valid!&apos;);
  
 
  '''      exit(&apos;Email is not valid!&apos;);
  
 
  ''' }
 
  ''' }
Line 65: Line 69:
 
=== [[แก้ไขให้ระบบลงทะเบียนสามารถส่งอีเมล EAI ได้ด้วย PHPMailer]] ===
 
=== [[แก้ไขให้ระบบลงทะเบียนสามารถส่งอีเมล EAI ได้ด้วย PHPMailer]] ===
 
แก้ไขไฟล์ PHPMailer/src/PHPMailer.php จาก
 
แก้ไขไฟล์ PHPMailer/src/PHPMailer.php จาก
  '''# case &apos;php&apos;:  
+
  ''' case &apos;php&apos;:  
 
  '''  default:
 
  '''  default:
 
  '''  return filter_var($address, FILTER_VALIDATE_EMAIL) !== false;
 
  '''  return filter_var($address, FILTER_VALIDATE_EMAIL) !== false;
  
 
เป็น
 
เป็น
  '''# case &apos;php&apos;:  
+
  ''' case &apos;php&apos;:  
 
  '''  default:  
 
  '''  default:  
 
  '''  return (bool) preg_match(&quot;/^[ก-๙a-zA-Z0-9_+&*-]+(?:\.[ก-๙a-zA-Z0-9_+&*-]+)*@(?:[ก-๙a-zA-Z0-9-]+\.)+[ก-๙a-zA-Z]{2,16}$/u&quot;, $address);
 
  '''  return (bool) preg_match(&quot;/^[ก-๙a-zA-Z0-9_+&*-]+(?:\.[ก-๙a-zA-Z0-9_+&*-]+)*@(?:[ก-๙a-zA-Z0-9-]+\.)+[ก-๙a-zA-Z]{2,16}$/u&quot;, $address);
 +
 +
Regular expression ข้างต้นสามารถใช้ตรวจสอบรูปแบบ email ภาษาไทยได้ หากต้องการตรวจสอบ email ภาษาอื่นๆอาจต้องพิจารณาใช้ regular expression รูปแบบอื่นที่ไม่เจาะจง เช่น
 +
* something@something  ^(.+)@(.+)$
 +
  
 
[[Category: EAI]]
 
[[Category: EAI]]

Revision as of 09:25, 3 August 2021

Other languages:

คู่มือนี้ได้จัดทำขึ้นมาเพื่อใช้เป็นแนวทางในการพัฒนาซอฟต์แวร์บนเว็บบราวซ์เซอร์เพื่อให้รองรับโดเมนภาษาไทย (IDN) และอีเมลภาษาไทย (EAI) โดยใช้ภาษา PHP


Preparing to Support UA in PHP

ระบบที่ใช้ในการพัฒนา

  1. ระบบฐานข้อมูล
    • MySQL
    • PHPMyAdmin
  2. ระบบบนเว็บบราวซ์เซอร์
    • ระบบลงทะเบียน (Registration)
    • ระบบ Login
    • ระบบแสดงผล Profile
  3. ระบบส่งอีเมล
    • PHPMailer

Software ที่ใช้ในการพัฒนา

  1. Filezilla [Win] [Mac]
  2. Web Browser เช่น Firefox, Chrome, Safari
  3. Text Editor (Code Editor) เช่น Notepad, Atom

Application Architecture

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

Developing Applications to Support UA in PHP

สร้างฐานข้อมูลที่รองรับ IDN และ 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;

แก้ไขให้ระบบลงทะเบียนรองรับการใส่อีเมล EAI

แก้ไขไฟล์ register.html จาก

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

เป็น

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

แก้ไขให้ระบบลงทะเบียนตรวจสอบอีเมล EAI ได้

แก้ไขไฟล์ register.php จาก

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

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

เป็น

  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!');
 
 }

แก้ไขให้ระบบลงทะเบียนสามารถส่งอีเมล EAI ได้ด้วย PHPMailer

แก้ไขไฟล์ PHPMailer/src/PHPMailer.php จาก

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

เป็น

  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);

Regular expression ข้างต้นสามารถใช้ตรวจสอบรูปแบบ email ภาษาไทยได้ หากต้องการตรวจสอบ email ภาษาอื่นๆอาจต้องพิจารณาใช้ regular expression รูปแบบอื่นที่ไม่เจาะจง เช่น

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