ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: eregi() ครับ  (อ่าน 1653 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
absolutex
สมุนแก๊งเสียว
*

พลังน้ำใจ: 10
ออฟไลน์ ออฟไลน์

กระทู้: 516



ดูรายละเอียด เว็บไซต์
« เมื่อ: 18 กันยายน 2008, 20:30:27 »

พี่ครับ ถ้าเรา check

อ้างถึง
   if ( strlen( $email) == 0 )
      {
         $error_email = '<font class="error">กรุณากรอกอีเมล์</font>';
         $error = true;
      }
      else if ( !eregi("^.+@.+\..+$", $email) )
      {
         $error_email = '<font class="error">อีเมล์ไม่ถูกต้อง</font>';
         $error = true;
      }

แล้วถ้าเราจะ check website ให้ตรงตาม domain เราเช่น  ชื่ออะไรก้ได้อังกิดกับตัวเลข.xxx.com

.xxx.com อันนี้จำเป็นต้องมีอะครับ แก้ยังไงดีครับพี่ๆ
« แก้ไขครั้งสุดท้าย: 18 กันยายน 2008, 20:33:24 โดย absolutex » บันทึกการเข้า
Kazamatsuri
ก๊วนเสียว
*

พลังน้ำใจ: 5
ออฟไลน์ ออฟไลน์

กระทู้: 319



ดูรายละเอียด
« ตอบ #1 เมื่อ: 18 กันยายน 2008, 22:02:27 »

โค๊ด:
^[a-z0-9]+\.xxx\.com$

eregi มัน case-insensitive ป่ะ Tongue
บันทึกการเข้า

ball6847
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 212
ออฟไลน์ ออฟไลน์

กระทู้: 4,174



ดูรายละเอียด
« ตอบ #2 เมื่อ: 18 กันยายน 2008, 22:30:20 »

น่าจะตามอันบนนี่แหละคับ แต่ น่าจะเปลี่ยนนิดหน่อย โดยเปลี่ยนมาใช้ preg_match ดีกว่า ความรู้สึกส่วนตัว(และจากการทดลอง) มันเร็วกว่านะ

โค๊ด:
<?php

preg_match
("|^[a-z0-9]+\.xxx\.com$|" $text);

?>

ถ้าต้องการเช็คแบบ case insensitive ก็

โค๊ด:
<?php

preg_match
("|^[a-z0-9]+\.xxx\.com$|i" $text);

?>

แต่ผมงงอ่ะ ตาม โค้ดที่มานี่เช็คอีเมลล์ไม่ใช่หรอ

ถ้างั้นก็แบบนี้

โค๊ด:
<?php

preg_match
("|^[a-z0-9]+@xxx\.com$|i" $email);

?>


งงป่ะ ผมยังงงเลย ตอบไปมั่วๆ 555+
บันทึกการเข้า

absolutex
สมุนแก๊งเสียว
*

พลังน้ำใจ: 10
ออฟไลน์ ออฟไลน์

กระทู้: 516



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 18 กันยายน 2008, 22:54:20 »

ขอบคุณคร๊าฟฟฟฟฟฟ  Cry
บันทึกการเข้า
Kazamatsuri
ก๊วนเสียว
*

พลังน้ำใจ: 5
ออฟไลน์ ออฟไลน์

กระทู้: 319



ดูรายละเอียด
« ตอบ #4 เมื่อ: 18 กันยายน 2008, 22:54:51 »

ไม่รู้อ่ะ เค้าบอกชื่อเวบไซต์ผมก็เลยจัดไปแค่นั้น Embarrassed
บันทึกการเข้า

EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 321
ออฟไลน์ ออฟไลน์

กระทู้: 12,518



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 19 กันยายน 2008, 10:06:30 »

บอกเป็นความรู้นิดๆ

อีเมล์ต้องขึ้นต้นด้วยตัวอักษร ห้ามตัวเลขนะครับ ดังนั้นเวลาเขียนเช็คต้องเป็น

โค๊ด:
preg_match("|^[a-z][a-z0-9]+@xxx\.com$|i" , $email);

 Smiley
บันทึกการเข้า

absolutex
สมุนแก๊งเสียว
*

พลังน้ำใจ: 10
ออฟไลน์ ออฟไลน์

กระทู้: 516



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 28 กันยายน 2008, 18:25:55 »

else if ( !eregi("^.+\.xxx\.com$", $website) ) {
$error = '<font class="error"> ไม่ถูกต้อง !</font>';



แล้วถ้าคนใส่ มี http:// มาด้วย ทำไงดีครับ ให้ขึ้น "ไม่ถูกต้อง" เหมือนกันอะครับ

ไม่ต้องการให้มี http:// เลยครับ ใช้แทรกเข้าไปยังไงดีครับ

สามารถแทรกให้อยู่ใน บรรทัด ( !eregi("^.+\.xxx\.com$", $website) )  นี้ได้รึป่าวครับ  Tongue

ขอบคุณครับผม
บันทึกการเข้า
kengz
คนรักเสียว
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 169



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 28 กันยายน 2008, 21:38:25 »

คือผมเขียน perl มาก่อนนะครับ ผมจึงใช้ preg_match
วิธีการ check   *.domain.com ให้ทำแบบนี้ครับ

if(preg_match("/^[A-Za-z0-9](-?[0-9a-zA-Z]+)*\.xxx\.com$/",$string))
{
   // match
}

ชื่อ sub domain จะเป็นอะไรก็ได้ ตัวเลข ตัวอักษร และ ขีด ซึ่งตัวแรกและตัวสุดท้ายต้องไม่ใช่ขีด
ซึ่งแบบนี้ หากป้อน http:// มาด้วย ก็จะไม่ match นะครับ

หากมีข้อสงสัยเกี่ยวกับ regular express ถามได้ฮะ

อ้างถึง
บอกเป็นความรู้นิดๆ

อีเมล์ต้องขึ้นต้นด้วยตัวอักษร ห้ามตัวเลขนะครับ ดังนั้นเวลาเขียนเช็คต้องเป็น

โค๊ด:
preg_match("|^[a-z][a-z0-9]+@xxx\.com$|i" , $email);



เสริมครับ email ไม่จำเป็นต้องขึ้นต้นด้วยตัวอักษรครับ
ขึ้นต้นด้วยตัวเลข และ อักขระ  !#$%&'*+-/=?^_`.{|}~ ได้ครับ
แต่ห้ามลงท้ายด้วย . เช่น [email protected]
บันทึกการเข้า
absolutex
สมุนแก๊งเสียว
*

พลังน้ำใจ: 10
ออฟไลน์ ออฟไลน์

กระทู้: 516



ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: 28 กันยายน 2008, 21:52:15 »

คือผมเขียน perl มาก่อนนะครับ ผมจึงใช้ preg_match
วิธีการ check   *.domain.com ให้ทำแบบนี้ครับ

if(preg_match("/^[A-Za-z0-9](-?[0-9a-zA-Z]+)*\.xxx\.com$/",$string))
{
   // match
}

ชื่อ sub domain จะเป็นอะไรก็ได้ ตัวเลข ตัวอักษร และ ขีด ซึ่งตัวแรกและตัวสุดท้ายต้องไม่ใช่ขีด
ซึ่งแบบนี้ หากป้อน http:// มาด้วย ก็จะไม่ match นะครับ

หากมีข้อสงสัยเกี่ยวกับ regular express ถามได้ฮะ


แล้วถ้าตัวแรกและท้ายมีขีดได้ด้วยอะครับ ^^'

« แก้ไขครั้งสุดท้าย: 28 กันยายน 2008, 22:01:14 โดย absolutex » บันทึกการเข้า
kengz
คนรักเสียว
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 169



ดูรายละเอียด เว็บไซต์
« ตอบ #9 เมื่อ: 29 กันยายน 2008, 16:53:05 »

คือผมเขียน perl มาก่อนนะครับ ผมจึงใช้ preg_match
วิธีการ check   *.domain.com ให้ทำแบบนี้ครับ

if(preg_match("/^[A-Za-z0-9](-?[0-9a-zA-Z]+)*\.xxx\.com$/",$string))
{
   // match
}

ชื่อ sub domain จะเป็นอะไรก็ได้ ตัวเลข ตัวอักษร และ ขีด ซึ่งตัวแรกและตัวสุดท้ายต้องไม่ใช่ขีด
ซึ่งแบบนี้ หากป้อน http:// มาด้วย ก็จะไม่ match นะครับ

หากมีข้อสงสัยเกี่ยวกับ regular express ถามได้ฮะ


แล้วถ้าตัวแรกและท้ายมีขีดได้ด้วยอะครับ ^^'





จัดไปครับ
if(preg_match("/^[A-Za-z0-9\-]+\.xxx\.com$/",$string))
{
   // match
}
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์