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

    מה זה סשן ואיך משתמשים בו?

    פורום PHP
    5
    18
    667
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגיבו כנושא
    התחברו בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • ל
      לעזור לכולם מומחה @שמואל ש. נערך לאחרונה על ידי

      @שמואל-ש כתב במה זה סשן ואיך משתמשים בו?:

      @amp-Software-0 קודם כל תודה רבה על התשובה המפורטת!
      שאלתי את GPT והוא ענה לי די מפורט אבל אתה הסברת לי הרבה יותר טוב וברור!
      אבל בעצם כדי לדעת איפה אני בקוד אז אותו דבר אפשר לבדוק על המשתנה שאני רוצה לקבל ב read האם הוא מאותחל או שיש פה מעלה נוספת יותר ממה שהבנתי?

      @amp-Software-0 כתב במה זה סשן ואיך משתמשים בו?:

      ובעיקר, מאפשר גם להסיר את ההקשות הקודמות של המשתמש, כך שאפשר לבצע את אותה פעולה כמה פעמים והמערכת לא 'תזכור' את הבחירה הקודמת.

      ש תגובה 1 תגובה אחרונה תגובה ציטוט 1
      • ש
        שמואל ש. @לעזור לכולם נערך לאחרונה על ידי

        @לעזור-לכולם אוקיי, ומה לגבי זכירת המיקום, זה עוזר במשהו? זה משהו יותר טוב מבדיקה אם משתנה לא מאותחל או אולי יותר קל?

        תגובה 1 תגובה אחרונה תגובה ציטוט 0
        • A
          amp Software 0 @amp Software 0 נערך לאחרונה על ידי

          @amp-Software-0 כתב במה זה סשן ואיך משתמשים בו?:

          זה לא מאפשר לדעת 'איפה אני אוחז', כיון שPHP היא שפה אסינכורנית,

          אם אתה מחפש שפה שתוכל לדעת איפה אתה אוחז תעבור ל NodeJS, זה שפה סינכורנית
          אבל אני חושב שעם המודולים שהבאתי החוייה היא אותו דבר, הקוד נכתב באותו פורמט כמו ב JS
          אם בכל אופן אתה מתמודד עם בעיות יתכן שאתה לא מתכנן \ כותב את הקוד בצורה נכונה ופונקציונלית

          ש תגובה 1 תגובה אחרונה תגובה ציטוט 1
          • ש
            שמואל ש. @amp Software 0 נערך לאחרונה על ידי

            @amp-Software-0 כתב במה זה סשן ואיך משתמשים בו?:

            אבל אני חושב שעם המודולים שהבאתי החוייה היא אותו דבר, הקוד נכתב באותו פורמט כמו ב JS

            איך? עם הוספת כל משתנה לסשן ובדיקת בכל קטע האם המשתנה כבר קיים? או שיש דרך יותר קלה?

            ואגב, אפשר להוסיף לסשן גם מערך JSON?

            A תגובה 1 תגובה אחרונה תגובה ציטוט 0
            • A
              amp Software 0 @שמואל ש. נערך לאחרונה על ידי

              @שמואל-ש כתב במה זה סשן ואיך משתמשים בו?:

              איך? עם הוספת כל משתנה לסשן ובדיקת בכל קטע האם המשתנה כבר קיים? או שיש דרך יותר קלה?

              עם פונקציית read שכתבתי אתה לא מתעסק עם הבדיקות, אלא מקבל את זה כמשתנה לכל דבר, תסתכל בדוגמת הקוד שהבאת אני לא בודק שום דבר פשוט הקוד רץ (אצלי הפונקציות נמצאות בכלל בדפים אחוריים שמשמשים כמחלקות כך שהסקריפט בפועל הוא נקי ופשוט)

              @שמואל-ש כתב במה זה סשן ואיך משתמשים בו?:

              ואגב, אפשר להוסיף לסשן גם מערך JSON?

              בהחלט

              ש 3 תגובות תגובה אחרונה תגובה ציטוט 0
              • ש
                שמואל ש. @amp Software 0 נערך לאחרונה על ידי

                @amp-Software-0 הבעיה היא שאני משתמש בזה לא רק ל read אלא גם לקטעי קוד שאני לא רוצה שיבוצעו פעמיים כך שלענ"ד הקוד שלך לא יעזור לי פה
                או שאני טועה?

                תגובה 1 תגובה אחרונה תגובה ציטוט 0
                • ש
                  שמואל ש. @amp Software 0 נערך לאחרונה על ידי שמואל ש.

                  @amp-Software-0 לא הבנתי, בכל פעם - אם אני מנסה מהדפדפן שאני קורא מחדש ל URL של הקוד אני כותב את המשתנה שממנו הסשן לקח ובתוך המשתנה ההוא אני כותב את אותו ערך שהיה בפעם הראשונה שקראתי ל URL בסיבוב הנוכחי וככה הוא זוכר את כל מה שכבר קיים בסשן?
                  ואם אני משנה את הערך במשתנה של הסשן אז הכל מתחיל מחדש?
                  או משהו אחר?
                  @לעזור-לכולם

                  תגובה 1 תגובה אחרונה תגובה ציטוט 0
                  • ש
                    שמואל ש. @amp Software 0 נערך לאחרונה על ידי

                    @amp-Software-0 @לעזור-לכולם סליחה על ההקפצה - אבל זה באותו נושא...
                    אני רוצה להשתמש בזה לאותו שימוש ש @amp-Software-0 היה צריך - למחוק הקשות
                    עכשיו אני מבין שפשוט אפשר לעשות את כל הבדיקות וכן את כל הפעולות ע"פ הפרמטרים של הסשן ולא של ה GET
                    אבל אני לא מבין - הרי איך ההקשות ייכנסו לסשן? ע"י איתחול של

                    $_SESSION["aaa] = $_GET['aaa'];
                    

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

                    A תגובה 1 תגובה אחרונה תגובה ציטוט 0
                    • A
                      amp Software 0 @שמואל ש. נערך לאחרונה על ידי

                      @שמואל-ש
                      הרעיון הוא שבכל פעם מכניסים לסשן רק את הפרמטר האחרון שנשלח ב GET (מומלץ להשתמש עם QUERY_STRING ולא עם אובייקט GET), ככה שאם מחקת ערך מהסשן, הוא לא יכנס בשליחות הבאות

                      תראה דוגמא:

                      $last_param = substr($QUERY_STRING, strrpos($QUERY_STRING, '&') + 1);
                      $param = explode('=', $last_param);
                      $_SESSION[$param[0]] = $_GET[$param[0]];
                      

                      יכול להיות שיש שיטות אחרות (אפשר גם לרשום באובייקט סשן איזה ערך אתה מצפה לקבל, ולקבל רק אותו], ככה אני נוהג לעשות

                      ש תגובה 1 תגובה אחרונה תגובה ציטוט 1
                      • ש
                        שמואל ש. @amp Software 0 נערך לאחרונה על ידי

                        @amp-Software-0 לא הבנתי
                        אני למשל מדבר עכשיו על הערך id
                        קיבלתי מהמשתמש כבר שזה 147258
                        עכשיו אני רוצה להכניס את זה לסשן אז אני עושה

                        $_SESSION['id'] = $_GET['id'];
                        

                        אח"כ אני רוצה למחוק את הפרמטר, אז אני עושה

                        unset($_SESSION['id']);
                        

                        אז בריצה הבאה הערך של GET לא מוכנס שוב לסשן עם השורה למעלה?

                        A תגובה 1 תגובה אחרונה תגובה ציטוט 0
                        • A
                          amp Software 0 @שמואל ש. נערך לאחרונה על ידי

                          @שמואל-ש
                          לא, אתה לא מכניס את הסשן בצורה כזאת

                          $_SESSION['id'] = $_GET['id'];
                          

                          אלא בצורה שציינתי, שבכל כניסה לדף הוא מכניס את הפרמטר האחרון
                          להלן דוגמא מלאה:

                          
                          
                          session_id($_GET['ApiCallId']);
                          session_start();
                          
                          $last_param = substr($QUERY_STRING, strrpos($QUERY_STRING, '&') + 1);
                          $param = explode('=', $last_param);
                          $_SESSION[$param[0]] = $_GET[$param[0]];
                          
                          
                          if (!isset($_SESSION['param1'])){
                              echo 'read=t-הקלד פרמטר ראשון=param1';
                              exit();
                          }
                          
                          $param1 = $_SESSION['param1'];
                          
                          if (!isset($_SESSION['param2'])){
                              echo "read=t-הקשת $param1 לאישור הקש 1 להקשה מחודשת הקש 2=param2";
                              exit();
                          }
                          
                          $param2 = $_SESSION['param2'];
                          
                          if ($param2 == '2'){
                              unset($_SESSION['param1']);
                              echo 'go_to_folder=' . $_GET['ApiExtension'];
                              exit();
                          }
                          

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

                          <?php
                          
                          session_id($_GET['ApiCallId']);
                          session_start();
                          
                          $last_param = substr($QUERY_STRING, strrpos($QUERY_STRING, '&') + 1);
                          $param = explode('=', $last_param);
                          $_SESSION[$param[0]] = $_GET[$param[0]];
                          
                          $param1 = read("param1", "t-הקלד פרמטר ראשון");
                          
                          $param2 = read("param2", "t-הקלדת $param1 , לאישור הקש 1, להקשה מחודשת הקש 2");
                          
                          if ($param2 == 2) {
                              unset_session_value("param2");
                              reload();
                          }
                          
                          
                          
                          function read($param, $voice)
                          {
                              if (!isset($_SESSION['param2'])) {
                                  echo "read=$voice=$param";
                                  exit();
                              }
                              return $_SESSION[$param];
                          }
                          
                          function unset_session_value($param)
                          {
                              unset($_SESSION[$param]);
                          }
                          
                          function reload()
                          {
                              echo 'go_to_folder=' . $_GET['ApiExtension'];
                              exit();
                          }
                          
                          ש צ 2 תגובות תגובה אחרונה תגובה ציטוט 1
                          • ש
                            שמואל ש. @amp Software 0 נערך לאחרונה על ידי

                            @amp-Software-0 תודה רבה!!!

                            תגובה 1 תגובה אחרונה תגובה ציטוט 0
                            • צ
                              צדיק תמים מומחה @amp Software 0 נערך לאחרונה על ידי צדיק תמים

                              @amp-Software-0 אולי תפרסם את החבילה שלך באמצעות מנהל החבילות של PHP (‫Composer?) או לפחות בצורה מסודרת בגיטאהב?
                              יהיה אפשר לעשות פוסט של "ספריות למודול API" (יש כבר בnodejs, C#, PHP) ולנעוץ אותו

                              ע תגובה 1 תגובה אחרונה תגובה ציטוט 1
                              • הוזכר על-ידי  A amp Software 0 
                              • הוזכר על-ידי  ש שמואל ש. 
                              • הוזכר על-ידי  S soris1989 
                              • ע
                                עידו @צדיק תמים נערך לאחרונה על ידי

                                @צדיק-תמים כתב במה זה סשן ואיך משתמשים בו?:

                                יהיה אפשר לעשות פוסט של "ספריות למודול API" (יש כבר בnodejs, C#, PHP) ולנעוץ אותו

                                איפה יש ספריה לC# וPHP?

                                צ תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                • צ
                                  צדיק תמים מומחה @עידו נערך לאחרונה על ידי צדיק תמים

                                  @עידו לPHP מה ש @amp-Software-0 הביא כאן (בצורה חלקית)
                                  לC# זה כאן https://f2.freeivr.co.il/topic/11523/ספריה-להגדרות-מודול-api-של-ימות-המשיח-באמצעות-net

                                  תגובה 1 תגובה אחרונה תגובה ציטוט 1
                                  • פוסט ראשון
                                    פוסט אחרון