ABA


"בעיה ב-SESSION - הוא לא מתעדכן"
גירסת הדפסה        
קבוצות דיון בניית אתרים נושא #12879 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 12879
MeToR
חבר מתאריך 26.1.07
11 הודעות
   16:40   05.09.07   
אל הפורום  
  בעיה ב-SESSION - הוא לא מתעדכן  
 
   ערכתי לאחרונה בתאריך 05.09.07 בשעה 16:42 בברכה, MeToR
 
אז ככה...
עשיתי קוד ב-PHP, שמקבל מערך של פרסומות, ועושה שבכל ריענון המשתמש יראה פרסומת אחרת.

דוגמא:


$ad[0]="1.jpg";
$ad[1]="2.jpg";
$ad[2]="3.jpg";

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

עכשיו, הבעיה בקוד היא שה-SESSION מתעדכן רק אם אני לוחץ פעמיים על "רענן" רצוף... אם אני מרענן פעם אחת זה פשוט לא משתנה, לא מתעדכן,
והפרסומת נשארת אותה פרסומת עד שה-SESSION מתעדכן.
הקוד:


$topadv=-1;
if (sizeof($ad)!=0)
{
if (!isset($_SESSION['pimps_topadv']))
$_SESSION['pimps_topadv']="";
$arr=array();
if ($_SESSION['pimps_topadv']!="*")
$arr=explode("|",$_SESSION['pimps_topadv']);
if (sizeof($arr)>sizeof($ad))
$_SESSION['pimps_topadv']="";
if (sizeof($arr)==sizeof($ad))
{
$topadv=array_shift($arr);
$arr[sizeof($arr)]=$topadv;
}
else
{
$random=rand(0,sizeof($ad)-1);
while (in_array($random,$arr))
$random=rand(0,sizeof($ad)-1);
$topadv=$random;
$arr[sizeof($arr)]=$topadv;
}
$_SESSION['pimps_topadv']=implode("|",$arr);
}

נ.ב - ניסיתי גם עם COOKIES - אותה בעיה...

תודה רבה


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  הסתבכת קצת הייתי אומר .. bmaorlo  05.09.07 17:30 1
  הייתי עושה משהו כזה: MoonHunter 05.09.07 20:53 2
     למה לבדוק אם הוא גדול או קטן או לא יודע מה bmaorlo  06.09.07 13:04 5
  באמת קצת הסתבכתי חחח :) MeToR 05.09.07 22:11 3
  אלללה עובד :) MeToR 05.09.07 22:25 4

       
bmaorlo 
חבר מתאריך 13.4.03
4770 הודעות
   17:30   05.09.07   
אל הפורום  
  1. הסתבכת קצת הייתי אומר ..  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 05.09.07 בשעה 17:51 בברכה, bmaorlo
 
נגיד שתחילת העמוד שלך היא כזאת

session_start();
$ad="1.jpg";
$ad="2.jpg";
$ad="3.jpg";

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

$_SESSION?$_SESSION++:$_SESSION=0;
$id_to_show = $_SESSION % sizeof($arr);

בסיום הקוד $id_to_show יחזיק איזה פרסומת אתה צריך להראות.
הסבר על הקוד:
אתה בונה מערך של קבצים.
יש לך SESSION שבו שאם הוא לא קיים אתה מאתחל אותו ל0 אם קיים אתה עושה לו ++ כי את הID הנוכחי שלו כבר הראית.
עכשיו יש לך קאונטר שרץ כל פעם ב1 מה שנשאר לעשות זה מודולו (%) על גודל המערך , וזה יבטיח לך שזה ירוץ בסדר מספרי עוקב אחד אחרי השני.
אם אתה רוצה שזה לא יהיה 0 1 2 אז תעשה SHUFFLE על המערך פעם אחת וזה יערבל לך אותו.
מקווה שהבנת.
לגבי הפעמיים רענון נראה לי שזה בגלל שלא שמת SESSION START או שיש קוד שאתה לא מראה לנו שמפריע לו.
תהנה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
MoonHunter
חבר מתאריך 1.8.02
680 הודעות
   20:53   05.09.07   
אל הפורום  
  2. הייתי עושה משהו כזה:  
בתגובה להודעה מספר 0
 
   *לא קראתי בדיוק מה כתבת, בכל אופן הייתי עושה ככה:
1. מערך שיחזיק את כל המודעות.
2. משתנה שיספור מ0.
בכל רענון אתה נותן ++ למשתנה מסעיף 2, במידה והערך שלו גדול מהגודל של מערך התמונות תציב בו 0.
3. לפי מערך התמונות ובמיקום הנוכחי תציג מודעה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
bmaorlo 
חבר מתאריך 13.4.03
4770 הודעות
   13:04   06.09.07   
אל הפורום  
  5. למה לבדוק אם הוא גדול או קטן או לא יודע מה  
בתגובה להודעה מספר 2
 
   תעשה פשוט % על גודל המערך וזה יחזיר לך כל פעם את המספר הנכון..


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
MeToR
חבר מתאריך 26.1.07
11 הודעות
   22:11   05.09.07   
אל הפורום  
  3. באמת קצת הסתבכתי חחח :)  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 05.09.07 בשעה 22:12 בברכה, MeToR
 
פשוט בהתחלה במערך שבתוך ה-SESSION היו לינקים וזה דרש אחרת, ולא יעלתי את הקוד, וגם תכננתי שבהתחלה זה יהיה רנדומלי עד שכולם יהיו במערך, ואז זה יחזור על עצמו, אבל סתם סיבכתי.
ועשיתי session_start בהתחלה.

תודה לשניכם, אני אבדוק את זה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
MeToR
חבר מתאריך 26.1.07
11 הודעות
   22:25   05.09.07   
אל הפורום  
  4. אלללה עובד :)  
בתגובה להודעה מספר 0
 
   מאור בסוף השתמשתי בקוד שלך, וזה כל פעם קפץ 2 במקום 1, ואז ביטלתי את הנגן מוזיקה שהיה באתר, והכל פתאום עבד פיקס.
אני צריך לבדוק מה הבעיה איתו.

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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net