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

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

Tyler 30-08-13 18:31

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

הקטע הוא שלאחר ביצוע הפעולה, הגדרתי שבמידה והכל תקין הקוד יוציא פלט טקסט רגיל של
echo 'check your mail';

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

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

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

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

הבנתם אותי? קצת הסתבכתי..
תודה לעוזרים

Liorl 30-08-13 21:16

ראש הדף:

PHP קוד:

session_start(); 

לפני כל הקוד שלך תבדוק האם יש למשתמש סשיין, במידה ולא תבצע את הקוד

PHP קוד:

if( !isset ( $_SESSION"recovery" ] ) )
{
   
//---------------------------------------------------------
   // כל הקוד כאן, אין סשיין למשתמש = המשתמש לא שיחזר סיסמא עדיין
   //----------------------------------------------------------


בהודעת הסיום .. לדוגמה

PHP קוד:

if( $complete )
{
    
$_SESSION"recovery" ] = time();



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

ליאור

yonatan 30-08-13 23:37

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

אדיר 30-08-13 23:50

http://stackoverflow.com/questions/5...sh-of-the-page
http://stackoverflow.com/questions/6...reshed-via-php
http://stackoverflow.com/questions/3...m-resubmission

אם הדרך הזו מתאימה לך, היא טובה ופשוטה: http://en.wikipedia.org/wiki/Post/Redirect/Get

Tyler 01-09-13 00:18

תודה חברים!


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

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