ผลต่างระหว่างรุ่นของ "คู่มือการพัฒนาซอฟต์แวร์บนเว็บบราวซ์เซอร์ให้รองรับ UA ด้วยภาษา PHP"
ไปยังการนำทาง
ไปยังการค้นหา
Photchanan (คุย | มีส่วนร่วม) (กำหนดให้รุ่นปรับปรุงนี้สำหรับการแปลภาษา) |
Acappella7 (คุย | มีส่วนร่วม) |
||
(ไม่แสดง 8 รุ่นระหว่างกลางโดยผู้ใช้ 2 คน) | |||
แถว 37: | แถว 37: | ||
# Text Editor (Code Editor) เช่น Notepad, Atom | # Text Editor (Code Editor) เช่น Notepad, Atom | ||
− | === Application Architecture | + | === Source code === <!--T:19--> |
+ | * Source code ที่ใช้ใน workshop นี้ [[https://github.com/THNICF/UA-Workshop-12062021 source code]] | ||
+ | |||
+ | == Application Architecture == <!--T:6--> | ||
[[File:App-archetiect-3.png|400px]] | [[File:App-archetiect-3.png|400px]] | ||
[[File:App-archetiect-2.png|400px]] | [[File:App-archetiect-2.png|400px]] | ||
แถว 70: | แถว 73: | ||
<!--T:12--> | <!--T:12--> | ||
เป็น | เป็น | ||
− | ''' if (preg_match( | + | ''' 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!');
| ''' exit('Email is not valid!');
| ||
''' } | ''' } | ||
แถว 84: | แถว 87: | ||
''' case 'php': | ''' case 'php': | ||
''' default: | ''' default: | ||
− | ''' return (bool) preg_match( | + | ''' 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 รูปแบบอื่นที่ไม่เจาะจง เช่น | Regular expression ข้างต้นสามารถใช้ตรวจสอบรูปแบบ email ภาษาไทยได้ หากต้องการตรวจสอบ email ภาษาอื่นๆอาจต้องพิจารณาใช้ regular expression รูปแบบอื่นที่ไม่เจาะจง เช่น | ||
* something@something ^(.+)@(.+)$ | * something@something ^(.+)@(.+)$ | ||
+ | |||
+ | <!--T:15--> | ||
+ | แก้ไขจาก | ||
+ | ''' $this->punyencodeAddress | ||
+ | |||
+ | <!--T:16--> | ||
+ | เป็น | ||
+ | ''' //...$this->punyencodeAddress... | ||
+ | (Comment บรรทัดเหล่านี้เพื่อให้โค้ดไม่ทำงาน) | ||
+ | |||
+ | แก้ไขไฟล์ PHPMailer/src/SMTP.php จาก | ||
+ | ''' 'MAIL FROM:<' . $from . '>' . $useVerp, | ||
<!--T:18--> | <!--T:18--> | ||
+ | เป็น | ||
+ | ''' 'MAIL FROM:<' . $from . '> SMTPUTF8', | ||
+ | |||
+ | |||
+ | <!--T:19--> | ||
[[Category: EAI]] | [[Category: EAI]] | ||
</translate> | </translate> |
รุ่นแก้ไขปัจจุบันเมื่อ 14:17, 24 มีนาคม 2565
คู่มือนี้ได้จัดทำขึ้นมาเพื่อใช้เป็นแนวทางในการพัฒนาซอฟต์แวร์บนเว็บบราวซ์เซอร์เพื่อให้รองรับโดเมนภาษาไทย (IDN) และอีเมลภาษาไทย (EAI) โดยใช้ภาษา PHP
เนื้อหา
Preparing to Support UA in PHP
ระบบที่ใช้ในการพัฒนา
- ระบบฐานข้อมูล
- MySQL
- PHPMyAdmin
- ระบบบนเว็บบราวซ์เซอร์
- ระบบลงทะเบียน (Registration)
- ระบบ Login
- ระบบแสดงผล Profile
- ระบบส่งอีเมล
- PHPMailer
Software ที่ใช้ในการพัฒนา
- Filezilla [Win] [Mac]
- Web Browser เช่น Firefox, Chrome, Safari
- Text Editor (Code Editor) เช่น Notepad, Atom
Source code
- Source code ที่ใช้ใน workshop นี้ [source code]
Application Architecture
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 ^(.+)@(.+)$
แก้ไขจาก
$this->punyencodeAddress
เป็น
//...$this->punyencodeAddress...
(Comment บรรทัดเหล่านี้เพื่อให้โค้ดไม่ทำงาน)
แก้ไขไฟล์ PHPMailer/src/SMTP.php จาก
'MAIL FROM:<' . $from . '>' . $useVerp,
เป็น
'MAIL FROM:<' . $from . '> SMTPUTF8',