![]() |
[PHP] צריך רעיונות בקשר למנגנון הצפה
שלום,
אני רוצה לעשות מעין מנגנון כזה שיאפשר להוסיף תגובה רק אם עברו 30 שניות אך לא עולה לי לראש רעיון. אשמח אם למישהו יש רעיון איך לעשות את זה. תודה, אלעד. |
תעשה ככה, שליפה מהמסד בעת שליחת הודעה:
כל ההודעות של המשתמש UID (USER ID) שגדולות מtime()+30. אם MYSQL_NUM_ROWS שווה ל0 תמשיך, אחרת תציג אזהרה. |
PHP קוד:
|
עשיתי דבר כזה:
PHP קוד:
PHP קוד:
מה הבעיה? עריכה: תומר גם מה שרשמת לא עובד. |
ציטוט:
|
זה רק אני או שמיותר להשתמש במסד נתונים כאן?
|
שיניתי ל time() ולא אומר שגיאה עדיין.
|
ציטוט:
|קורץ| |
איך אפשר בלי מסד באמת??
|
אני כרגע חושב שכן צריך מסד (לא סומך על קוקי לעניין הזה)
מה שכן, יכול להיות שזה צריך להיות time()-30 (במקום +30)? עריכה: במחשבה שניה זה תלוי באיזה אגף זה רשום, הכוונה הייתה לגבי הקוד שניתן למעלה: קוד:
$sql = mysql_query("SELECT time FROM users_msg_tbl WHERE time>=time()-30"); |
ציטוט:
1. נניח נושא ההודעה (או התוכן) 2. שעת שליחת ההודעה לפני הוספת תגובה בפורום, בודקים ב session אם נושא ההודעה שהגולש רוצה להוסיף זהה לנושא ההודעה שב session - ופועלים בהתאם .. אם בכל זאת רוצים לתת הפרש חצי דקה בין הודעה להודעה - לבדוק פשוט לפי השעה שב session אם עברה יותר מחצי דקה. אם עברה - לאפשר כתיבה ולמחוק את ה session .. |
ציטוט:
|
ציטוט:
לדעתי אין טעם בכזה עניין קטן לגשת למסד נתונים - בזבוז של משאבים |
נו יש הצעות?
|
ציטוט:
תלוי עד כמה האדם רוצה להציף. וגם תלוי אם צריכים להיות רשומים ומחוברים כדי לשלוח הודעה. אם לא צריך להיות רשומים ומחוברים: והוא ממש רוצה להציף ומאוד אסור שיציפו תעשה לפי IP ולכל IP מותר לשלוח הודעה פעם ב 30 שניות וגם תשים עוגיה עם הזמן פרסום הודעה האחרון ותבדוק גם לפיה. כמובן שזה במקרה הכי גרוע וזה גם הכי יעיל כי עד שהוא ישנה IP וימחק עוגיה אז זה יקח לו זמן. אם צריכים להיות רשומים ומחוברים וצריך לאמת את ההרשמה במייל ובמיוחד במייל ספקית(שזה אולי הדרך היחידה למנוע את ההצפה ב100%) אז מספיק לעשות כמו שתומר אמר ולעשות תא בטבלת משתמשים עם זמן התגובה האחרונה. |
צריכים להיות רשומים. איך אני מאמת אימייל של ספקיות בלבד?
ואיך אני נותן קוד רנדומלי לכל משתמש שאיתו הוא צריך לאמת? |
ב"ה
לא כדאי להשתמש במייל ספקיות בלבד. מימילא עד שהוא ירשם מחדש יקח לו כמה זמן. תלוי מה ההגדרה להצפה כי אם אסור לפרסם כל 30 שניות אז השיא שהוא יגיד אליו זה תוך 15 שניות במקום 30 ככה שזה לא נורא. |
אה בסדר. ואיך אני עושה קוד אימות לכל אחד שישלח אליו באימייל?
|
ב"ה
צור טבלה שבשם valid נגיד, עם תא לסיסמא ושם משתמש(ועם איזה מידע שאתה רוצה) ולקוד הרנדומאלי (שתצור אותו איך שבא לך, אם str_shafleאו rand או לא יודע מה.) תעשה עוד תא. כשאדם נרשם אתה מכניס את הפרטים שלו לטבלה valid וגם את הקוד הרנדומאלי ושולח לו במייל את הקוד עם קישור לטופס שאפשר להכניס בו את הקוד וכששולחים את הטופס אז אתה בודק אם קיים קוד כזה במסד ואם כן אתה מעביר את המשתמש מהטבלה valid לטבלה הרגילה של המשתמשים. |
אממ אני ינסה ויחזיר פה תשובה, תודה בניה.
|
אולי תעשה שלא יהיה אפשר ללחוץ על הכפתור רק לאחר שלושים שניות
אני מאמין שאפשר לעשות את זה באגקס |
ציטוט:
|
אם זה נגיד אחרי שכותבים הודעה צריך 30 שניות תשתמש בעוגיה...
עוגיה שהאורך שלה 30 שניות ריקה |
כל הזמנים הם GMT +2. הזמן כעת הוא 22:32. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ