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

הוסטס - פורום אחסון האתרים הגדול בישראל (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)

Rom 17-08-06 23:28

תעשה שאחרי שהוא שולח את הטופס אתה יוצר סשן/קוקי חדש ובו רשום שהוא שלח את הטופס כבר
ואז בתחילת הדף אתה בודק אם כבר יש סשן/קוקי כזה

somebody 17-08-06 23:57

ציטוט:

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

..
הרעיון של אלעד(זה כאילו הרעיון שהוא הציעה)

בניה 18-08-06 00:07

ציטוט:

נכתב במקור על ידי Alon.R
amirs_5

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

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

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

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

עריכה:

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

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

ב"ה

תראה מה תעשה.
תעשה ב page.php?act=send בדיקה שאם נתקבלו נתונים מהטופס.
אז שיעשה header location ל page.php?act=send הבדיקה באה כדי שלא יעשה את (ההכוונה שוב ושוב) ואז המשתמש בעצם ביקר בדף בלי להגיע מטופס אז ריענון לא ישלח שוב כלום.

exciter 18-08-06 04:18

תפנה אחרי השליחה לעמוד חדש, אחר.

Alon.R 18-08-06 14:18

בניה

זה לא עוזר, תעשו אתם טופס, תשלחו אותו תעשו F5 ואז OK והוא ישלח בעצם את הנתונים ככה שהדף יחשוב שהוא שלח את הטופס....

eLad 18-08-06 14:26

ציטוט:

נכתב במקור על ידי Alon.R

עריכה:

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

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

נופ |Rolleyes|

התכוונתי שתבצע משהו כזה -

בעת הכניסה לעמוד, הטאגית FORM תראה כך:

HTML קוד:

<form action="some-page.asp?act=send&nRnd=96234986" method="post" name="bah" ...>
ה nRnd זה מספר כלשהו שאתה יוצר רנדומאלית (אתה יכול להדפיס גם את התאריך המלא של היום (כולל שניות בלי סלאשים) שם..

ואז בעמוד some-page, אתה מכניס את ה nRnd ל session ומאפשר את ביצוע העמוד

כשעושים רפרש אתה בודק אם יש session עם המסד שנשלף בטופס (בודק אם nRnd שנשלח שווה לזה שיש ב session ואז לא מאפשר את ביצוע הטופס)

Tomer 18-08-06 14:35

אחרי שליחת הטופס, אמרת שהוא מועבר ל send.php, אני מניח שבעמוד ההוא יש את כל הקטע של הבדיקות...

תעשה שבמידה והאימייל נשלח כמו שצריך תעשה
PHP קוד:

header("Location: thankyou.php"); 

ששם זה יגיד "תודה ששלחת אימייל" ושלום על ישראל.. פתרת את הבעיה.

Art Watch 18-08-06 14:47

אפשר לרשום עוגיה שתמנע את זה :)

eLad 18-08-06 14:48

ציטוט:

נכתב במקור על ידי Gil & Ido
אפשר לרשום עוגיה שתמנע את זה :)

מיותר לרשום עוגיה, עדיף session

Art Watch 18-08-06 15:08

ציטוט:

נכתב במקור על ידי eLad
מיותר לרשום עוגיה, עדיף session

גם אפשרות :)


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

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