דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. שליחת הודעות שגיה לצד לקוח - בעיה

שליחת הודעות שגיה לצד לקוח - בעיה

מתוזמן נעוץ נעול הועבר תכנות
13 פוסטים 3 כותבים 261 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • dovidD מנותק
    dovidD מנותק
    dovid ניהול
    כתב ב נערך לאחרונה על ידי dovid
    #2

    אתה צריך ללמוד להסתכל בNetwork שבכלי המפתחים.
    מה השורה הזו:

                                console.log('Server response: ', data); // Debugging line
    

    פולטת?

    ההתניה שלך מניחה ש: או שיש אובייקט data.errors עם ערכים, או שיש success. מהקוד של הphp שם רואים שאתה מנסה לשלוח שגיאות לא מוכרח שאין אפשרות שלישית.

    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

    בכל נושא אפשר ליצור קשר dovid@tchumim.com

    ASSA תגובה 1 תגובה אחרונה
    0
    • ASSA מנותק
      ASSA מנותק
      ASS
      השיב לdovid ב נערך לאחרונה על ידי
      #3

      @dovid
      אני יודע היטב להסתכל ב Network .
      הפלט הוא נתוני הטופס, כצפוי.

      תגובה 1 תגובה אחרונה
      0
      • dovidD מנותק
        dovidD מנותק
        dovid ניהול
        כתב ב נערך לאחרונה על ידי dovid
        #4

        אני ביקשתי שתשתף אותי בdata, בשביל שאסביר לך למה שני התאנים לא מתקיימים.
        אתה לא חייב.

        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

        בכל נושא אפשר ליצור קשר dovid@tchumim.com

        ASSA תגובה 1 תגובה אחרונה
        2
        • ASSA מנותק
          ASSA מנותק
          ASS
          השיב לdovid ב נערך לאחרונה על ידי ASS
          #5

          @dovid
          אשמח לשתף.
          זה הפלט, כמה שגיאות שלמיטב ידיעתי לא קשורות ונתוני הטופס:

          VM362:8338 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'facebook.json')
              at getConfig (<anonymous>:8338:42)
              at ClickToLoad.init (<anonymous>:11132:37)
              at ClickToLoad.callInit (<anonymous>:3180:18)
              at <anonymous>:11424:33
              at Array.forEach (<anonymous>)
              at Object.init (<anonymous>:11422:26)
          getConfig @ VM362:8338
          init @ VM362:11132
          callInit @ VM362:3180
          (anonymous) @ VM362:11424
          init @ VM362:11422
          await in init (async)
          apply @ VM362:11490
          (anonymous) @ VM371:3
          (anonymous) @ VM371:5
          inject @ inject.js:114
          (anonymous) @ inject.js:208
          Show 2 more frames
          Show less
          vendor.min.js:24892 Uncaught TypeError: Cannot read properties of undefined (reading 'length')
              at Object.getRegexMask (vendor.min.js:24892:404)
              at l.init (vendor.min.js:24899:27)
              at new n (vendor.min.js:24899:418)
              at HTMLInputElement.k (vendor.min.js:24901:227)
              at Function.each (vendor.min.js:381:19)
              at jQuery.fn.init.each (vendor.min.js:203:17)
              at a.fn.mask (vendor.min.js:24901:253)
              at HTMLInputElement.<anonymous> (app.min.js:1:11969)
              at Function.each (vendor.min.js:381:19)
              at jQuery.fn.init.each (vendor.min.js:203:17)
          getRegexMask @ vendor.min.js:24892
          l.init @ vendor.min.js:24899
          n @ vendor.min.js:24899
          k @ vendor.min.js:24901
          each @ vendor.min.js:381
          each @ vendor.min.js:203
          a.fn.mask @ vendor.min.js:24901
          (anonymous) @ app.min.js:1
          each @ vendor.min.js:381
          each @ vendor.min.js:203
          t.initMask @ app.min.js:1
          t.init @ app.min.js:1
          t.init @ app.min.js:1
          (anonymous) @ app.min.js:1
          (anonymous) @ app.min.js:1
          vendors.js:58 Refused to load the script 'https://js.stripe.com/v3' because it violates the following Content Security Policy directive: "script-src 'self' 'wasm-unsafe-eval' 'inline-speculation-rules'". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback.
          
          (anonymous) @ vendors.js:58
          (anonymous) @ vendors.js:58
          N @ vendors.js:58
          (anonymous) @ vendors.js:58
          Promise.then (async)
          65085 @ vendors.js:58
          o @ content-script.js:7411
          95133 @ vendors.js:58
          o @ content-script.js:7411
          86493 @ vendors.js:401
          o @ content-script.js:7411
          5309 @ content-script.js:1118
          o @ content-script.js:7411
          (anonymous) @ content-script.js:7411
          o.O @ content-script.js:7411
          t @ content-script.js:7411
          (anonymous) @ vendors.js:2
          Show 16 more frames
          Show less
          vendors.js:58 Error: Failed to load Stripe.js
              at HTMLScriptElement.<anonymous> (vendors.js:58:1979)
          (anonymous) @ vendors.js:58
          Promise.catch (async)
          65085 @ vendors.js:58
          o @ content-script.js:7411
          95133 @ vendors.js:58
          o @ content-script.js:7411
          86493 @ vendors.js:401
          o @ content-script.js:7411
          5309 @ content-script.js:1118
          o @ content-script.js:7411
          (anonymous) @ content-script.js:7411
          o.O @ content-script.js:7411
          t @ content-script.js:7411
          (anonymous) @ vendors.js:2
          Show 13 more frames
          Show less
          null:1 
                  
                  
                 GET https://stockermart.com/GOODIES/null 404 (Not Found)
          goodies_enrollment.php:406 Submitting form: first
          goodies_enrollment.php:426 Serialized form data:  (11) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]0: {name: 'Company_Name', value: '%'}1: {name: 'Company_number', value: '955555555'}2: {name: 'type_business', value: 'חנות קמעונאית'}3: {name: 'City', value: 'לוד'}4: {name: 'Address', value: 'יע'}5: {name: 'Zip', value: '0023453'}6: {name: 'contact', value: 'מורדכי'}7: {name: 'Company_phone', value: '055-555-5555'}8: {name: 'Company_phone2', value: '055-555-5555'}9: {name: 'Company_email', value: 'd@gmail.com'}10: {name: 'business_size', value: '31-100'}length: 11[[Prototype]]: Array(0)
          goodies_enrollment.php:406 Submitting form: second
          goodies_enrollment.php:426 Serialized form data:  [{…}]0: {name: 'biz_type', value: 'מזומן'}length: 1[[Prototype]]: Array(0)
          
          

          ניתן לראות ששם החברה אינו תקין, כי רשום %, וסקריפט האימות שלו אינו מאפשר את זה:

          switch ($form) {
              case 'first':
                  $companyName = test_input($parsedData["Company_Name"] ?? '');
                  if ($companyName === '') {
                      $errors['Company_Name'] = "חסר שם חברה";
                  } elseif (!preg_match("/^[A-Za-zא-ת0-9 ]*$/u", $companyName)) {
                      $errors['Company_Name'] = "שם החברה יכול להכיל אותיות ומספרים בלבד";
          

          לכן אמורה להתקבל שגיאה.

          תודה רבה על העזרה

          תגובה 1 תגובה אחרונה
          1
          • dovidD מנותק
            dovidD מנותק
            dovid ניהול
            כתב ב נערך לאחרונה על ידי
            #6

            אינני רואה בפלט שצירפת את המילים Server response ומכאן שהפלט לא כולל את את מה שהשורה הנ"ל אמורה לכתוב.
            אז או שזה בכלל לא מתרחש (תוכל לבדוק עם נקודת עצירה)
            או שלא כללת את כל הפלט.

            מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

            בכל נושא אפשר ליצור קשר dovid@tchumim.com

            ASSA תגובה 1 תגובה אחרונה
            0
            • ASSA מנותק
              ASSA מנותק
              ASS
              השיב לdovid ב נערך לאחרונה על ידי
              #7

              @dovid
              זה כל הפלט, זה מה שכתבתי בפוסט הראשון, אני לא מצליח להבין את זה, כי השגיאה מתרחשת, ובוודאות נוצרת ע"י הסקריפט:

                      // Return any validation errors for the first step without proceeding
                      if(count($errors) > 0) {
                          
                          $parsedDataString = print_r($errors, true);
                          file_put_contents('parsedData.txt', $parsedDataString);
              
                          header('Content-Type: application/json');
                          echo json_encode(['errors' => $errors, 'db_errors' => $db_errors]);
                          exit;
                     
                      }
              

              כפי שניתן לראות הכנסתי כתיבה של השגיאות לקובץ, בתוך הקובץ מופיעה השגיאה, להלן פלט הקובץ:

              Array
              (
                  [Company_Name] => שם החברה יכול להכיל אותיות ומספרים בלבד
              )
              
              

              כלומר, ברור שיש שגיאה, אך אני לא מבין מדוע

              success: function(data) {
                                          console.log('Server response: ', data); // Debugging line
              

              בכלל לא פועל, עוד לפני

              if (data.errors && Object.keys(data.errors).length > 0) {
              
              צדיק תמיםצ תגובה 1 תגובה אחרונה
              0
              • צדיק תמיםצ מנותק
                צדיק תמיםצ מנותק
                צדיק תמים
                השיב לASS ב נערך לאחרונה על ידי
                #8

                @ASS השרת שלך מחזיר תשובה תקינה (HTTP STATUS 200)?
                $.ajax מפעיל את הקאלבק success רק במקרה כזה, אם השרת לא מגיב או מגיב עם קוד שגיאה (לדוגמה HTTP STATUS 500) יופעל הקאלבק error - או במקרה שלך שהוא לא מוגדר, לא יראו כלום...

                Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
                טיפים

                תגובה 1 תגובה אחרונה
                1
                • dovidD מנותק
                  dovidD מנותק
                  dovid ניהול
                  כתב ב נערך לאחרונה על ידי dovid
                  #9

                  ובדיוק בגלל מה שכתב @צדיק-תמים, לך לNetwork ותנקה שמה את כל השורות,
                  ואז תלחץ על ה.next ותראה איך נראית השורה, והאם היא 200 ומה הResponse שלה.

                  מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                  בכל נושא אפשר ליצור קשר dovid@tchumim.com

                  תגובה 1 תגובה אחרונה
                  2
                  • dovidD מנותק
                    dovidD מנותק
                    dovid ניהול
                    כתב ב נערך לאחרונה על ידי
                    #10

                    בקשר למה שאמר @צדיק-תמים תוכל לבדיקה להחליף את המילה success במילה complete ואז זה מופעל גם במקרה של error וגם בהצלחה.

                    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                    בכל נושא אפשר ליצור קשר dovid@tchumim.com

                    ASSA תגובה 1 תגובה אחרונה
                    1
                    • ASSA מנותק
                      ASSA מנותק
                      ASS
                      השיב לdovid ב נערך לאחרונה על ידי ASS
                      #11

                      @dovid @צדיק-תמים
                      תודה, השרת שלי מחזיר שגיאה, הוספתי את זה:

                                          $.ajax({
                                              type: "POST",
                                              url: "validation.php",
                                              data: {
                                                  'form': currentTab,
                                                  'formData': formData
                                              },
                                              success: function(data) {
                                                  console.log('Server response: ', data); // Debugging line
                      
                                                  // Check if there are any errors
                                                  if (data.errors && Object.keys(data.errors).length > 0) {
                                                      // Log the errors for debugging
                                                      console.error('Validation errors:', data.errors);
                      
                                                      // Display each error using the toast plugin
                                                      for(var key in data.errors) {
                                                          if(data.errors.hasOwnProperty(key)) {
                                                              $.toast({
                                                                  heading: 'Error',
                                                                  text: data.errors[key], // get the error message using the key
                                                                  hideAfter: 8000, // in milli seconds
                                                                  showHideTransition: 'slide',
                                                                  stack: 3,
                                                                  position: 'mid-center',
                                                                  icon: 'warning',
                                                                  bgColor: '#FFC800',
                                                                  loaderBg: '#FF9F00', // To change the background
                                                                  textColor: 'white',
                                                                  textAlign: 'left'
                                                              });
                                                          }
                                                      }
                                                  } else if (data.success) {
                                                      // If success is true, display success message and/or move to next tab
                                                      console.log('Form submission successful');
                                                      // Your code to switch to the next tab or show a success message
                                                  }
                                              },
                                              error: function(jqXHR, textStatus, errorThrown) {
                                                  // Handle server errors, network errors, etc
                                                  console.error('AJAX error: ', textStatus, errorThrown);
                                                  $.toast({
                                                      heading: 'Error',
                                                      text: '.אירעה שגיאה בתהליך העיבוד של הטופס, בבקשה נסה שוב',
                                                      hideAfter: 8000,
                                                      showHideTransition: 'slide',
                                                      stack: 3,
                                                      position: 'mid-center',
                                                      icon: 'error',
                                                      bgColor: '#FF0000',
                                                      loaderBg: '#FF9F00',
                                                      textColor: 'white',
                                                      textAlign: 'left'
                                                  });
                                              },
                                              complete: function() {
                                                  // Code to always run after the AJAX call finishes, regardless of success or error
                                                  //console.log('AJAX request completed.');
                                                  // For example, re-enable the submit button if it was disabled
                                              }
                                          });
                      

                      השאלה למה..

                      תגובה 1 תגובה אחרונה
                      0
                      • ASSA מנותק
                        ASSA מנותק
                        ASS
                        כתב ב נערך לאחרונה על ידי ASS
                        #12

                        אני אבדוק ב Network ויעדכן, תודה רבה

                        תגובה 1 תגובה אחרונה
                        0
                        • ASSA מנותק
                          ASSA מנותק
                          ASS
                          כתב ב נערך לאחרונה על ידי ASS
                          #13

                          @dovid @צדיק-תמים
                          הבעיה הייתה

                          "<?php
                          

                          ה " נכנס לתגובה

                          תודה רבה על העזרה

                          תגובה 1 תגובה אחרונה
                          1

                          בא תתחבר לדף היומי!
                          • התחברות

                          • אין לך חשבון עדיין? הרשמה

                          • התחברו או הירשמו כדי לחפש.
                          • פוסט ראשון
                            פוסט אחרון
                          0
                          • דף הבית
                          • קטגוריות
                          • פוסטים אחרונים
                          • משתמשים
                          • חיפוש
                          • חוקי הפורום