php / שיעור 3 / אימות לא-כל-כך-פשוט
שיעור 3
אימות לא-כל-כך-פשוט
בואו נדבר קצת על שימוש בביטויים רגילים עם הפונקציות ()ereg ו- ()eregi.
כפי שאמרתי קודם לכן, אלה יכולים להיות די פשוטים או די מורכבים, זה תלוי
בצרכים שלכם.
בשימוש בביטויים רגילים, אתם יכולים לבדוק מחרוזת ובצורה חכמה לחפש בה
תבניות ושינויים כדי לראות אם היא מתאימה לקריטריונים שלכם. הדוגמא הנפוצה
ביותר לכך היא בדיקת תקינות כתובת אימייל (למרות שאין, כמובן, דרך "הרמטית"
לוודא את זה).
במקום לצלול לנבכי הביטויים הרגילים, אני אספק מספר דוגמאות. אתם יכולים
להשתמש באותו טופס בו עשינו שימוש בעמוד הקודם - פשוט הדביקו את השורות
למטה כדי לראות אותן בפעולה.
דבר ראשון, בואו נוודא שלתוך מרכיב הטופס הוכנס טקסט בלבד. הביטוי הזה
מאמת במקרה שהמשתמש הכניס אחת או יותר אותיות קטנות, מ-a ל-z.
אסורה הכנסת מספרים:
if (!ereg("[a-Z]", $first) || !ereg("[a-Z]", $last)) {
עכשיו, בואו נרחיב את הביטוי הזה ונבדוק האם המחרוזת היא בת 4 או 6 תווים.
שימוש ב-[[:alpha:]] היא שיטה פשוטה לבדוק את אמיתותם של תווי טקסט.
המספרים בסוגריים בודקים את מספר ההופעות. ושימו לב ש-^ ו-$ מציינים את
התחלתה וסיומה של מחרוזת.
if (!ereg("^[[:alpha:]]{4,6}$", $first) ||
!ereg("^[[:alpha:]]{4,6}$", $last)) {
לסיום, בואו נבנה ביטוי רגיל שבודק את תקיפותה של כתובת אימייל. יש הרבה
ויכוחים על יעילות השיטה הזאת לבדיקת הנושא. שום דבר הוא לא חסין בפני
טעויות, אבל מה שיש לי כאן הוא לא רע בכלל.
לקחתי את הפנינה הזאת מרשימת הדואר
) http://marc.theaimsgroup.com/?!=php-general)
של PHP. זהו מקור מצוין - השתמשו בו.
וכן, זה מפחיד כמו שזה נראה.
if (!ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.
'@'.
'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.
'[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', $last)) {
אז אל תבלו יותר מדי זמן בבהייה בזה. פשוט עברו הלאה לעמוד הבא.
עמוד הבא: פונקציות >>
|