0015 | PHP Email Validation

บทความนี้อ้างอิง + คัดลอกมาจากเว็บไซต์ต่อไปนี้
Spoono.com – Spoono – PHP Tutorials – Email Validation

แบบว่ากำลังหาตัว validate email เพลินๆ ไปเจอตัวนี้มา ถูกใจครับ (ฮาๆ)
เอามาลง เผื่อเก็บไว้ใช้อีก

0000ff;">function 993300;">checkEmail(008080;">$email) {
0000ff;">if (ff0000;">eregi(ff00ff;">“^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$]”, 008080;">$email)) {
0000ff;">return false;
}

0000ff;">list(008080;">$Username, 008080;">$Domain) = ff0000;">split(ff00ff;">“@”,008080;">$email);

0000ff;">if (ff0000;">getmxrr(008080;">$Domain, 008080;">$MXHost)) {
0000ff;">return true;
} 0000ff;">else {
0000ff;">if (ff0000;">fsockopen(008080;">$Domain, 993300;">25, 008080;">$errno, 008080;">$errstr, 993300;">7)) {
0000ff;">return true;
} 0000ff;">else {
0000ff;">return false;
}
}
}

ปล. ทำ syntax highlight แบบอัตโนมือนี่เหนื่อยนะเนี่ย

Tags: , ,

0014 | MySQL Replicate

* บทความนี้อ้างอิงและประยุกต์มาจากเว็บไซต์ต่อไปนี้
DNSThailand.com – เทคนิคการใช้ Replication ระดับสูงใน MySQL
CATTelecom.com – กิตติชน แม้นสมุทร [ejeepss] » Replicate MySQL 5.x

สืบเนื่องจาก entry ที่แล้ว
ก็เลยลองไปค้นๆ ข้อมูลเพิ่มเติมดูอีกหน่อยว่าเราลืมอะไรไปบ้าง
เพราะนึกได้ว่ายังไม่ได้ลองทำ MySQL Replicate เลย (ฮาๆ)
ประเด็นคือไม่รู้ว่ามันช้าที่ฐานข้อมูลรึเปล่า เพราะ debug ไม่เจอสาเหตุ
ก็เลยต้องลองทำเท่าที่ทำได้ไปก่อน

ขั้นต้นก็ต้องมี server 2 เครื่องขึ้นไปครับ
โดยสมมติเครื่องแรก ชื่อ web-slave
เครื่องที่สอง ชื่อ db-master

ก่อนอื่นมาที่เครื่อง web-slave สั่งติดตั้ง mysql server ตามนี้ครับ
* อ้างอิง Fedora 8 ครอบคลุม Fedora 4 – 9, CentOS 5.x รวมถึงสาย Redhat ทั้งหมดครับ

# yum install mysql-server

เสร็จแล้วเปิดแฟ้ม /etc/my.cnf เพิ่มเติมข้อมูลต่อไปนี้ครับ

server-id=2
master-host=0000ff;">10.0.0.2
master-port=3306
master-user=ff0000;">replicate
master-password=ff0000;">slavepassword
master-connect-retry=30
replicate-wild-do-table= %.%
report-host=008000;">10.0.0.1

(มันมาอีกละ สีฟ้าแดงเขียวนี่)
แก้ ip อะไรพวกนี้ให้ถูกนะครับ แล้วแก้ตัวแดงๆ ด้วย ตามที่ตั้งค่า

เครื่องนี้เสร็จและ กลับไปที่เครื่อง db-master ต่อ ก่อนอื่นต้องตั้งค่า username / password ก่อนครับ
โดยเข้าไปใน mysql query console (หรือที่ไหนก็ได้ที่สามารถตั้ง user ได้) แล้วรัน query ต่อไปนี้

mysql> GRANT REPLICATION SLAVE ON *.*
TO ‘ff0000;">replicate‘@’008000;">10.0.0.1‘ IDENTIFIED BY ‘ff0000;">slavepassword‘;

เสร็จแล้วออกมาสั่ง stop service mysql ได้เลยครับ แล้วก็แก้แฟ้ม /etc/my.cnf อีกนิดหน่อย ตามนี้ครับ

log-bin=ff00ff;">mysql-bin
server-id=1
innodb_flush_log_at_trx_commit=1
sync_binlog=1
expire_logs_days=ff00ff;">3
max_binlog_size=ff00ff;">50M

ตรงนี้ปรับค่าตามความเหมาะสมนะครับ แล้วแต่ว่าจะเก็บ log กี่วันยังไง
โดยบรรทัดแรกสุดจะเป็น path + ชื่อแฟ้มที่ใช้เก็บ log (สามารถใส่ full path ได้ครับ เช่น /var/log/mysqld/binlog)
แล้วก็ย้ำว่าควรจะใส่ option สองบรรทัดด้านล่าง เพื่อป้องกัน hdd เต็ม (ฮา)
เคยเจอมาแล้วครับ เก็บ log เพลินไปหน่อย เศร้าเลย

ต่อจากนี้ก็ copy ข้อมูลจาก db-master ไปยังเครื่อง web-slave ครับ
ถ้าใน fedora/centos default install ก็อยู่ใน /var/lib/mysql
สั่ง tar ไปทั้ง folder เลยก็ยังไหวครับ (แต่ข้อแม้คือต้องเป็น mysql version เดียวกันนะ)

จากนั้นก็สั่ง service mysqld start ทั้งสองเครื่อง
แล้ว connect เข้า mysql ของเครื่อง db-master สั่ง query ต่อไปนี้ครับ

mysql> FLUSH TABLES WITH READ LOCK;

แล้วก็ connect เข้า mysql ของเครื่อง web-slave สั่ง query ต่อไปนี้ครับ

mysql> START SLAVE;

เท่านี้ก็เรียบร้อย ทีนี้ก็รอดูผลงาน… ถ้าเวิร์กจะเอาไปใส่เว็บ bitthai ด้วย (ฮาๆ)

Tags: , , , ,