Notice: Undefined index: premium-vscroll in /home/codespir/domains/codespire.co.il/public_html/wp-content/plugins/premium-addons-for-elementor/includes/class-addons-integration.php on line 140

וולידציות וסניטציות בוורדפרס

אתמול פנה אליי אחד מחברי הקבוצה (בפייסבוק) וביקש עזרה בנוגע לבעיה שהמידע לא נשמר לו במסד נתונים לפעמים. ז״א, ישנם מקרים שהכל עובד תקין וישנם מקרים שהוא לא מבין למה, המידע פשוט לא נשמר כשהוא משתמש במחלקה $wpdb עם המטודה insert.

אחרי שבדקנו יחד מעט מהדברים, ושאלתי אותו מה עם וולידציה בצד שרת? הוא אמר שאין בעיה והכל ענשה בצד לקוח כרגע. מבחינתי המשכתי הלאה. אבל, זוה אבל גדול – מסתבר שהמידע שלא עבד סנטיציה, הגיע למחלקה wpdb שמוודאת שבאמת מה שהתקבל הוא מה שמצופה – והופ, לא עבדה 🙂

חשוב מאוד לעבוד בשיטת ה״וורדפרס״ כשעובדים איתה, חייב לוודא כל מידע שאתם שולחים או מקבלים, במיוחד כשעובדים על מידע שאותו אנו שומרים. למשל על שדה טקסט נריץ את הפונקציה שעושה sanitize_text_field או בשדה אימייל נוודא שהוא אכן אימייל בעזרת הפונקציה is_email שמחזירה למעשה אמת או שקר. כך קל מאוד לוודא שהנתונים שלנו הם מה שאנחנו מצפים שהם יהיו.

אחרת, נמשיך לדבאג ואל להבין איך דברים שנברים ולא עובדים לחלק מהגולשים שלנו.

בנוסף, טיפ קטןכ שאתם מתחילים לדבג דברים שלא נפלטים למסך ב-php אלא עובדים מאחורי הקלעים. מומלץ מאוד מאוד להשתמש ב-error_log. על מנת להפעיל אוות הוסיפו את השורה הבאה לקובץ wp-config.php:

define( 'WP_DEBUG_LOG', true );

כך בעזרת הפונקציה  error_log תוכלו לדבאג דברים, לפלוט שגיאות או משתנים לקובץ ולעבור עליו גם לאחר מכן על מנת להבין תהליכים באתר והיכן הם קרסו. למשל, לפלוט לשם את כל הבקשת post שמגיעה לפונקציה שלי ובכך להצליח להביןב אילו מקרים הפונקציה נפלה ולא ביצעה את הפעולה שלה.

למידע נוסף על אימות הנתונים בוורדרפס קראו בקישור הבא:
https://codex.wordpress.org/Data_Validation

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *