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

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

    פורום PHP
    5
    18
    667
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגיבו כנושא
    התחברו בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • ש
      שמואל ש. @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
                            • פוסט ראשון
                              פוסט אחרון