|
הרשם | ![]() |
שאלות ותשובות | ![]() |
רשימת חברים | ![]() |
לוח שנה | ![]() |
הודעות מהיום | ![]() |
חיפוש | ![]() |
|
![]() |
![]() |
|
כלים לאשכול | תצורת הצגה |
![]() |
# 1 |
חבר מתקדם
|
![]() אוקי אז יש לי מערכת פשוטה שמורכבת מhtml,js וphp
בhtml יש תיבת טקסט שהכותרת שלה היא "נקודות" וכפתור של "שלח". הכפתור שולח את הנתונים שהוקלדו בתיבת טקסט לjs שמעביר אותם לphp. הphp בתחילת הקובץ מוגדר בכך שיש קובץ טקסט מסוים על השרת users.txt, באותו קובץ טקסט יש אלפי שמות משתמשים שמפוצלים בשורות: dan ben eric yosi הphp בודק שקובץ הטקסט אינו ריק, מקבל את הנתון שהוקלד בתיבת הטקסט בHTML, ומתחיל בלולאת foreach עבור כל שם משתמש שבקובץ טקסט, ויוצר קובץ טקסט חדש שמכיל את שם המשתמש ומספר הנקודות שהוא קיבל, ובנוסף גם שולח מספר פקודות לAPI באתר אחר. בסופו של דבר כל המשתמשים אמורים לעבור בAPI + להיות נוכחיים בקובץ טקסט החדש שיווצר שיכלול גם את שם המשתמש וגם את הנקודות שהוקלדו עבור כולם. כלומר אם הקלדתי בדף INDEX כ100 נקודות ולחצתי על "שלח", אז לאחר 10 דקות, יהיה לי קובץ טקסט חדש על השרת בשם .new_users.txt ויכלול בתוכו: dan 100 ben 100 eric 100 yosi 100 ------- עד כאן הכל בסדר. עכשיו בטעות הקלדתי מספר נקודות שלא רציתי, הקלדתי 200 במקום 100 ולחצתי על שלח. הPHP קיבל את הפקודה, התחיל לרוץ ואין לי דרך לעצור אותו אלא רק לחכות שהוא יסתיים ולבזבז המון זמן על יצירת קובץ שאני לא צריך ובזבוז משאבי שרת. לא משנה מה עשיתי: - סגרתי את חלון הדפדפן - שיניתי את שם התיקיה שמכילה את המערכת על השרת - מחקתי את כל התיקיה מהשרת הסקריפט פשוט לא נעצר.. ולא נשאר לי מה לעשות חוץ מלחכות לסיומו. אני מעוניין להוסיף ליד כפתור ה"שלח" עוד כפתור של "עצור" שבמידת הצורך אני אוכל לעצור את הסקריפט כשאני ארצה. כי במידה ואני מוחק את התיקיה שמכילה את המערכת, אז פשוט התיקיה נוצרת מחדש, בתוכה נוצר קובץ הTXT החדש שמכיל את השם משתמש + הנקודות שהולקדו (new_users.txt) וזהו.. ואני לא מבין איך זה הגיוני, הרי אפילו קובץ הPHP נמחק מהשרת וקובץ הTXT הראשי (users.txt) שממנו נלקחים שמות המשתמשים מלכתחילה נמחק מהשרת.. איך אוכל לעצור את התהליך בצורה הכי פשוטה בלי להכנס לעצירת תהליכי שרת בshell וapache וכו'. תודה. Last edited by Tyler; 04-12-15 at 21:43.. |
![]() |
![]() |
# 2 |
חבר בקהילה
|
תעשה כפתור שאם תלחץ עליו הוא יחזיר ערך של EXIT או RETURN או DIE מה שמתאים ללולאה והוא יעצור את כל הלולאה ..
או שתעשה לך הודעת ALERT לאישור השליחה משהו בסגנון: רשמת : 200 נקודות אתה בטוח שברצונך לשלוח טופס זה ? כן / לא רק לאחר בחירת התשובה הפקודות יתחילו לרוץ שזה נראה לי יותר נחמד .
__________________
XHTML - CSS3 - BOOSTRAP - JQUERY - AJAX - PHP - SQL - SECURITY SQL benworksites@gmail.com |
![]() |
![]() |
# 3 |
חבר חדש
|
מהרגע שהרצת את הסקריפט, השרת הוא זה שמקמפל ומריץ אותו,
ולכן לא משנה אם תמחק את הקובץ או תצא מהדפדפן, השרת ממשיך את העבודה שלו. (דוגמא דומה - אם אתה שולח קובץ להדפסה במדפסת, אחרי שהמדפסת מתחילה לעבוד אתה יכול לצאת/למחוק את הקובץ וההדפסה עצמה תמשיך! ![]() בכל מקרה, פיתרון פשוט שאני יכול להציע כדי לפתור את הבעיה זה ליצור קובץ שיודיע לסקריפט להפסיק לרוץ. תוסיף לך כפתור בhtml שישלח פקודה לשרת ליצור קובץ לדוגמא: kill_script. ואז בתוך הלולאה, תבדוק קוד:
if(file_exists("kill_script"){ unlink("kill_script"); die(); } ככה, בכל מעבר של הלולאה, זה יבדוק: אם הקובץ קיים - זה ימחק אותו (כדי שיאפשר לך להריץ שוב בפעמים הבאות) ויעצור לגמרי את הסקריפט. אם הקובץ לא קיים - הלולאה תמשיך לרוץ ![]()
__________________
המשך יום טוב, מתן ![]() אתר חדשות האינטרנט - אפליקציית אנדרואיד אפליקציית לוח שידורים מעודכן |
![]() |
![]() |
# 4 | |
חבר מתקדם
|
ציטוט:
![]() |
|
![]() |
![]() |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
|
|