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

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

0xfo7d 25-02-08 16:20

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

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

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


אשמח אם תתנו רעיונות.
תודה רבה.


מתן.

Derey22 25-02-08 16:24

אתה יכול לעשות את התנאי לפני שהמשתמש מתחבר..
או שתריץ פה חיפוש יש מלא נושאים על זה.

Daniel 25-02-08 16:28

ציטוט:

נכתב במקור על ידי Derey22 (פרסם 611710)
אתה יכול לעשות את התנאי לפני שהמשתמש מתחבר..
או שתריץ פה חיפוש יש מלא נושאים על זה.

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

ובקשר לשאלתך - Cron Jobs, למרות שאני מציע לך לחשוב על דרך אחרת.

Derey22 25-02-08 16:30

ציטוט:

נכתב במקור על ידי MasterT (פרסם 611714)
זה מאוד לא חכם, מכיוון שאז משתמש ש"פג תוקפו" ולא מתחבר, תופס מקום על המסד.

ובקשר לשאלתך - Cron Jobs, למרות שאני מציע לך לחשוב על דרך אחרת.

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

CubeS.co.il 25-02-08 16:35

ציטוט:

נכתב במקור על ידי MasterT (פרסם 611714)
זה מאוד לא חכם, מכיוון שאז משתמש ש"פג תוקפו" ולא מתחבר, תופס מקום על המסד.

ובקשר לשאלתך - Cron Jobs, למרות שאני מציע לך לחשוב על דרך אחרת.

כאשר משתמשים בCron Jobs הוא מרענן את העמוד בהתאם לזמן שהגדרנו לו דרך קובץ CGI ששותלים בשרת, אז לא הבנתי למה זה יגרום למשתמשים לא פעילים לתפוס מקום על המסד?

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


וזה לא מצריך ממני גישות מיוחדות לשרת ולהתקין את הסקריפט הזה דרך PUTTY

pirsomet 25-02-08 16:37

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

CubeS.co.il 25-02-08 16:50

ציטוט:

נכתב במקור על ידי pirsomet (פרסם 611719)
יש עוד דרך לא חכמה אחרת. אפשר את הקוד ,שמוחק אחרי התפוגה, לצרף(include) לכל דף. כך, אם מישהו פשוט נכנס לאתר, המערכת מעבירה בדיקה .... זה לא כל כך חכם מבחנת היעילות אבל לא צריך CRON והמשתמשים "טופסים פחות מקום"

למה לכל דף יספיק לו לשים בדף הבית של האתר

DanielS 25-02-08 16:52

ציטוט:

נכתב במקור על ידי pirsomet (פרסם 611719)
יש עוד דרך לא חכמה אחרת. אפשר את הקוד ,שמוחק אחרי התפוגה, לצרף(include) לכל דף. כך, אם מישהו פשוט נכנס לאתר, המערכת מעבירה בדיקה .... זה לא כל כך חכם מבחנת היעילות אבל לא צריך CRON והמשתמשים "טופסים פחות מקום"

ואם יום מסויים לא יהיו כניסות ?

pirsomet 25-02-08 17:21

ציטוט:

נכתב במקור על ידי DanielS (פרסם 611727)
ואם יום מסויים לא יהיו כניסות ?

המשתמשים לא ימחקו ואז יקרה אסון עולמי :-)

קודם כל ,כשה מוחקים, צריך למחוק לא רק את המשתמשים שצריכים להימחק באותו יום אלה אפשר לבדוק אם יש משתמשים שהיו צריכים להימחק לפניי

וגם באתרים בדרך כלל יש לפחות מבקר אחד ביום - המנהל או הבוט של גוגל :-)

Daniel 25-02-08 18:12

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

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

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

DorWD 26-02-08 22:05

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

Shon12 26-02-08 22:07

עוד דרך שחשבתי עלייה לעשות שדה input שה- type שלו יהיה על hidden והערך שלו יהיה השעה.
ואז אתה עושה תנאי אם השעה גדולה מזו שבשדה אז תעשה.....


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

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