הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   לא לאפשר רענון דף עם אותו מידע של POST, איך? (https://hosts.co.il/forums/showthread.php?t=29005)

Alon.R 17-08-06 12:33

לא לאפשר רענון דף עם אותו מידע של POST, איך?
 
שלום,

יש לי טופס כלשהו, אחרי שהוא נשלח אני לא רוצה שהם יוכלו לעשות F5 ולשלוח את הform מחדש, איך מונעים מהם את זה? :)

תודה :D

בניה 17-08-06 12:38

ב"ה

אחרי קבלת הנתונים תעשה header location לאותו דף.
ואז ריענון רק יטען את הדף מחדש ולא ישלח נתונים.

eLad 17-08-06 12:43

אתה יכול גם לשרשר מס' מסויים ל action של הטופס: handle_with_care.asp?nRandom=0734503956 ולתקוע ב session ובעת רפרש לבדוק אם זה קיים או לא ולפעול בהתאם.

Alon.R 17-08-06 13:21

eLad

לא הבנתי את הרעיון...

בניה

לא הבנתי איך יעזור אם אני יעשה Header("Location: page.php")....

Elad-A 17-08-06 13:24

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

ani 17-08-06 13:32

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

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

מקווה שעזרתי, ושמה שאמרתי לא שטויות חח.

amirs_5 17-08-06 17:52

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

Elad-A 17-08-06 18:11

עוד לא הבנתי בשביל מה כל זה? אחרי שנשלח הפוסט עושים header וזהו מה יותר פשוט מזה?

Alon.R 17-08-06 23:01

amirs_5

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

ואתם נראה לי לא מבינים.
אם למשל יש לי כזה דבר:

page?act=showform
שמה יש לי טופס שנשלח לי ל
page.php?act=send
ואז שעושים submit לטופס הוא נשלח ללינק הזה ושולח אימייל לכתובת מסויימת

עכשיו שהם הולכים לpage.php?act=send
וזה כבר שלח פעם אחת אימייל, הם יכולים ללחוץ על F5 ולתת לדפדפן לרענן את הדף + המשתנים שנשלחו אליו בPOST... ואז הם יכולים לשלוח המון אימיילים עם רענון...
אני בעצם רוצה לחסום שהם לא יוכלו לעשות רענון עם הנתונים הקודמים..

עריכה:

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

לזה התכוונת אלעד?

AFI 17-08-06 23:14

אחרי שאתה מעבד ושולח את המייל אתה מעביר את המשתמש לדף אחר ויוצר גם סישן, מהו הדף האחר?!? אותו הדף page.php?act=send ...
תעשה בדיקה בדף הזה אם קיים סישן ואם הוא קיים אז במקום שזה ישלח מייל זה יכתוב המייל נשלח בהצלחה...


כל הזמנים הם GMT +2. הזמן כעת הוא 07:49.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ