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

จาก Wiki_EAI
ไปยังการนำทาง ไปยังการค้นหา
Photchanan (คุย | ส่วนร่วม)
สร้างหน้าด้วย "Category: EAI"
Photchanan (คุย | ส่วนร่วม)
สร้างหน้าด้วย "-->"
บรรทัดที่ 22: บรรทัดที่ 22:
=== 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  ===
บรรทัดที่ 43: บรรทัดที่ 43:
== Developing Applications to Support UA in PHP ==
== Developing Applications to Support UA in PHP ==


<div class="mw-translate-fuzzy">
=== [[Cereate database that could handle IDN and EAI]] ===
=== [[Cereate database that could handle IDN and EAI]] ===
  '''# CREATE TABLE IF NOT EXISTS accounts ( '''
  '''# CREATE TABLE IF NOT EXISTS accounts ( '''
บรรทัดที่ 53: บรรทัดที่ 52:
  '''  PRIMARY KEY (`id`)
  '''  PRIMARY KEY (`id`)
  ''' ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;'''
  ''' ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;'''
</div>


<div class="mw-translate-fuzzy">
=== [[modify the registration system to be able to accept EAI email address]] ===
=== [[modify the registration system to be able to accept EAI email address]] ===
modify register.html fronm
modify register.html fronm
  '''# <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>
</div>


<div class="mw-translate-fuzzy">
to
to
  '''# <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>
</div>


<div class="mw-translate-fuzzy">
=== [[modifythe registration system to be able to validate EAI email address]] ===
=== [[modifythe registration system to be able to validate EAI email address]] ===
modify register.php from  
modify register.php from  
บรรทัดที่ 72: บรรทัดที่ 65:
  '''
      exit(&apos;Email is not valid!&apos;);
  
  '''
      exit(&apos;Email is not valid!&apos;);
  
  '''  }
  '''  }
</div>


<div class="mw-translate-fuzzy">
to
to
  '''# 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;);
  
  ''' }
  ''' }
</div>


<div class="mw-translate-fuzzy">
=== [[modify the registration system to be able to send EAI email with PHPMailer]] ===
=== [[modify the registration system to be able to send EAI email with PHPMailer]] ===
modify PHPMailer/src/PHPMailer.php from
modify PHPMailer/src/PHPMailer.php from
บรรทัดที่ 87: บรรทัดที่ 76:
  '''  default:
  '''  default:
  '''  return filter_var($address, FILTER_VALIDATE_EMAIL) !== false;
  '''  return filter_var($address, FILTER_VALIDATE_EMAIL) !== false;
</div>


<div class="mw-translate-fuzzy">
to
to
  '''# 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);
</div>


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:
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:

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

<languages/> 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

  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

Developing Applications to Support UA in PHP

# 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 register.html fronm

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

to

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

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