שליחה כפולה

apzer0

New member
שליחה כפולה

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

yuvallb

New member
להשתמש ב post

הדרך המקובלת והפשוטה לתקן את זה שה להשתמש בטופס html שעושה post ולא get ככה הדפדפן ישאל את המשתמש אם הוא בטוח שהוא רוצה לעשות ריפרש. עוד דרך מקובלת זה לעשות את הפעולה עצמה בדף שלא מציג כלום. כלומר: דף של טופס -> הסקריפט שעושה את הפעולה -> redirect לדף אחר אם זה עדיין לא מספיק טוב - לא מזיק לבדוק בהגדרות של השרת מה ה http headers של ה caching ולנסות למנוע caching של הדפים. אבל זה באמת קצת מוגזם לבעיה שאמרת.
 

apzer0

New member
אני משתמש בPOST...

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

apzer0

New member
אמממ...

זה לא ממש עוזר לי =\ אתה יכול אולי להראות לי דוגמא?
 

WebKiller

New member
שמע

כמה דברים שאני רוצה להסביר, את מה שאתה רוצה מבצעים בעזרת הפונקציה header() הינה דוגמה: header("location: bla.php"); חשוב לציין שיש לפונקיצה הזו בעיה כמו לפונקציה setcookie() שהן צריכות לעבור שימוש לפני שליחת הדפסות, לכן יש צורך להשתמש בפונקציה ob_start() בתחילת המסמך, וob_flush_end() לאחר הפונקציה header()/setcookie()
 

nezek2003

New member
מחשבה

אולי תעשה ב PHP שלאחר שאתה שולח את הטופס הוא יאפס את המשתנים ןאז הוא לא ישלח אותו שוב (במידה ואתה עודה IF בתחילת הקובץ לביצוע השליחה ו ELSE לקבלת הנתונים) מה אתה אומר?
 

apzer0

New member
תודה

אבל ידעתי שיש דרך הרבה יותר קלה מלהשתמש בPHP השתמשתי בתג META בשביל הredirect
 
למעלה