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

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

daMn 25-02-08 18:19

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

CubeS.co.il 25-02-08 18:27

ציטוט:

נכתב במקור על ידי MasterT (פרסם 611754)
Derey22: אז זה לא יעיל בכלל.
CubeS.co.il: קובץ שידאג לעשות את כל הסידור. וכן, אני אישית נגד הרעיון של הימחקות אחרי יום, אבל..
pirsomet: המון המון המון בזבוז משאבים.
CubeS.co.il: |...|

אני בטוח שיש דרך טובה יותר, אבל מה לעשות - אין לי שמץ. CJ נשמע הכי טוב P:


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


ציטוט:

נכתב במקור על ידי daMn (פרסם 611757)
אל תסתבך סתם, השיטת עבודה שלך לא נכונה.
פשוט כל פעם שהמשתמש שמתחבר אתה עושה בדיקה לגבי התאריך.



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

daMn 25-02-08 20:26

ציטוט:

נכתב במקור על ידי CubeS.co.il (פרסם 611762)
נשמע פשוט אבל מורכב בו זמנית... אשמח לקבל קצת מידע על זה גם איך זה אמור לעבוד מבחינת ההתחברות

מסובך? אני לא חושב..
לפני כל התחברות אתה עושה בדיקה בסגנון הזה:
PHP קוד:

if ($current_date == $db_date)
{
    
mysql_query("DELETE FROM `table` WHERE `id`='$id_user'");
    
header("Location: lala.html");



CubeS.co.il 25-02-08 23:46

ציטוט:

נכתב במקור על ידי daMn (פרסם 611796)
מסובך? אני לא חושב..
לפני כל התחברות אתה עושה בדיקה בסגנון הזה:
PHP קוד:

if ($current_date == $db_date)
{
    
mysql_query("DELETE FROM `table` WHERE `id`='$id_user'");
    
header("Location: lala.html");



לא קראת את כל ההודעה שלי...

ומה קורה עם פספנו ביום את התאריך?

בניה 25-02-08 23:49

אתה עושה תא של תפוגת הרשמה רושם בו את הערך של הפונקציה time בזמן הזה.
כל התחברות, מריץ שאילתא פשוטה עם תנאי שאם הערך הנוכחיי של time גדול מהערך בתא הזה ושונה מ0 שימחק.

CJ מסרבל את המערכת, ולא יחסוך לך משאבים בצורה מורגשת סביר להניח.

0xfo7d 26-02-08 00:01

תודה לכל מי שהגיב....=]

תראה בניה....אני יודע שאפשר לבדוק אם 5 גדול מ 2...(נניח)...
אבל השאלה היא האם אפשר לבדוק אם 25/03/2008 גדול מ 24/03/2008 אתה מבין?
זה כבר עם סלאשים...ולא ערך מספרי נורמלי.

בניה 26-02-08 10:31

ציטוט:

נכתב במקור על ידי 0xfo7d (פרסם 611880)
תודה לכל מי שהגיב....=]

תראה בניה....אני יודע שאפשר לבדוק אם 5 גדול מ 2...(נניח)...
אבל השאלה היא האם אפשר לבדוק אם 25/03/2008 גדול מ 24/03/2008 אתה מבין?
זה כבר עם סלאשים...ולא ערך מספרי נורמלי.

אתה לא שומר במסד תאריך, אתה שומר את הערך של הפונקציה time()
אותו אתה יכול להמיר לתאריך אחרי כן אם אתה רוצה.
היא מחזירה את מספר השניות שעברו מ:
January 1 1970 00:00:00 GMT

http://il2.php.net/time

0xfo7d 26-02-08 11:53

לא הבנתי איך אני הופך את הערך הזה: 25/03/2008
לערך מספרי רגיל...כמו בפונקציה TIME...

קצת הסתבכתי עם מה ששלחת לי...

בניה 26-02-08 12:08

במסד נתונים תעשה תא בשם
ath_expired
שיהיה מסוג int unsinged
בהרשמה תכניס לתוכו את הערך של
strtotime('+1 week')
שזה יביא לך את הערך של time בעוד שבוע, אתה יכול לשנות את זה גם ל day או מספר ימים.

כל התחברות תריץ את השאילתה:
PHP קוד:

'DELETE FROM `users` WHERE `ath_expired` <' time() . ' AND `ath_expired` != 0' 

ואם מישהו אימת את החשבון, תהפוך את הערך של התא הזה ל 0.
את גם יכול לשים עליו index ואז זה יהיה מאוד יעיל.

AlmogBaku 26-02-08 14:55

מקרה הזה רק CRON JOBS


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

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