לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 10-08-2005, 16:50
  ישראל K ישראל K אינו מחובר  
 
חבר מתאריך: 25.08.03
הודעות: 9,114
המערך GET ו-POST מתאפס לי באמצע ריצת הקוד

במהלך ריצקת קבצים מסויימים אני משתמש בקטע קוד:
קוד PHP:
 if($manager mysql_query("SELECT * FROM config WHERE un='".$un."'")
    or
    
$manager mysql_query("SELECT * FROM permits WHERE un='".$un."'"))
    {
            
// var_dump($_GET) ;
            // echo    "<br />" ;
            // echo    "<br />" ;
            // var_dump($_POST) ;

        
if(mysql_num_rows($manager) == 1)
        {
            
// var_dump($_GET) ;
            // echo    "<br />" ;
            // echo    "<br />" ;
            // var_dump($_POST) ;

            
$manager mysql_fetch_array($manager);

            if(
$pass == $manager['pass'])
            {
                if(
set_permit_cookies($manager));
                    return 
true;
            }
        }
    } 

במהלך העבודה גיליתי שכשאני שולח טופס (ב-POST) המערכים POST ו-GET מתאדים.
כפי שניתן לראות בהערות שבקוד, הדפסתי את המערכים בשלבים שונים של הקוד, עד שעליתי על המקום הבעייתי.
מסתבר שעד השורה:
קוד PHP:
 if(mysql_num_rows($manager) == 1){ 

המערכים עדיין קיימים כפי שנשלחו לשרת, מאחרי שורת הקוד הנ"ל המערכים פשוט רקים.
התקלה קיימת רק כשאני שולח טופס (כשאני שולח נתוני POST), במהלך ריצת הקבצים ללא נתוני POST אין שום תקלה.

מישהו מבין את ההגיון ? מישהו יודע איפה הבאג ?

נערך לאחרונה ע"י ישראל K בתאריך 10-08-2005 בשעה 16:59.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #3  
ישן 10-08-2005, 18:02
  ישראל K ישראל K אינו מחובר  
 
חבר מתאריך: 25.08.03
הודעות: 9,114
בתגובה להודעה מספר 2 שנכתבה על ידי DRagonRage שמתחילה ב "נסה להעביר את המשתנים שאתה צריך מהמערך למשתנה לפני הכל ותראה מה קורה...."

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

בינתיים הסתדרתי (הוספתי תנאי נוסף לאחד מהביצועים), הכל עובד כמו שצריך (לפחות כרגע), אבל הבעיה העיקרית קיימת, ונראה לי שאם מסד נתונים שמכיל סיסמה ריק, או שמסיבה אחרת השאילתה לא החזירה אף לא שורה אחת, יש כשל אבטחה - נכון שקל להאשים אחרים בבעיה, לכן אני לא טוען שהבעיה בטוח לא אצלי, אבל זה צריך בדיקה, כי כבר נתקלתי בזה מס' פעמים.

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

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

כלי אשכול חפש באשכול זה
חפש באשכול זה:

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

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

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 15:24

הדף נוצר ב 0.06 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר