-
שלום לכל החברים.
אז ב"ה סיימתי את הפרוייקט הזה, תודה לכולם על העזרה והייעוץ!והנה הבעיה האחרונה
יש לי קובץ PHP שמבצע Login לשרת של ימות, ועוד הרבה קבצים שכולם מבצעים אליו קריאה באמצעות:<?php include 'C:\wamp64\www\my_php/Login.php'; ?>
הבעיה ששתי קבצים פועלים בו זמנית אני מקבל שגיאה ש Login.php כבר בשימוש, כיצד אפשר לטפל בזה?
חשבתי אולי על קוד שיפעיל אותם אחד אחד, לא כ"כ יודע איך לעשות את זה, או שיש פתרון אחר.
תודה רבה.
-
@ליבל
המבנה של הפרוייקט שלי הוא:
קובץ Login מתחבר לשרת של ימות.
קובץ ראשי שמבצע את כל הפעולות, אך הוא מוגדר עם משתנים ללא ערכים כלומר: אין לן ערכים מוחלטים משל עצמו.
ואז הקבצים האחרים בעצם מבצעים קריאה ל Login, מתחברים, ולקבצים האלה יש ערכים למשנים שבקובץ הראשי, ואז הם מבצעים קריאה לקובץ הראשי שבעצם מקבל את הערכים למשנים שלו מהקבצים האחרים.
הסיבה שזה עובד כך זה משום שיש לי צורך לבצע את אותו הסקריפט עם שינויים שונים. (שכל שינוי אמור לפעול בזמן שונה).
כשאנ מבצע קריאה ל Login בעצם הוא תפוס לקובץ אחד ואז השני לא יכול לבצע קריאה.מקווה שהצלחתי להסביר..
-
@ass אמר בשגיאת Login.php כבר בשימוש:
קובץ ראשי שמבצע את כל הפעולות, אך הוא מוגדר עם משתנים ללא ערכים כלומר: אין לן ערכים מוחלטים משל עצמו.
יפה אבל אם כך השאלה איך הקובץ login עובד הגדרת אותו כפונקציה?
@ass אמר בשגיאת Login.php כבר בשימוש:
כשאנ מבצע קריאה ל Login בעצם הוא תפוס לקובץ אחד ואז השני לא יכול לבצע קריאה.
אתה יודע מה זה "תיכנות מונחה עצמים" ?
-
@ass אמר בשגיאת Login.php כבר בשימוש:
ואז הקבצים האחרים בעצם מבצעים קריאה ל Login,
אם אתה קורא לקובץ כדי להריץ את הקוד בתוכו שוב עם משתנים אחרים ב include זה לא נכון בשום צורה.
אתה.רוצה לעשות משהוא שירוץ כל פעם בצורה דומה - תכתוב פונקציה.
אפשר גם לכתוב class, אבל לא תמיד יש צורך. -
@שמואל4
כל מה שאני עושה את include זה בעיקר בגלל הקובץ הראשי שיש שם סקריפט מאוד ארוך,
מאחר והרבה דפים צריכים להשתמש באותו סקריפט אז אני מעדיף שיהיה קובץ אחד ראשי שכולם ישתמשו בו, ואם אני ירצה לשנות משהו בסקריפט הראשי אני יעשה את זה באחד ולא בכמה עשרות... -
@ass אמר בשגיאת Login.php כבר בשימוש:
@שמואל4
כל מה שאני עושה את include זה בעיקר בגלל הקובץ הראשי שיש שם סקריפט מאוד ארוך,
מאחר והרבה דפים צריכים להשתמש באותו סקריפט אז אני מעדיף שיהיה קובץ אחד ראשי שכולם ישתמשו בו, ואם אני ירצה לשנות משהו בסקריפט הראשי אני יעשה את זה באחד ולא בכמה עשרות...בשביל זה אתה תכניס את זה בפונקציה ותפנה אילה כל פעם, בשביל זה זה מיועד.
שכותבים פונקציה לוקחים את החלקים ה'משתנים' בפעולה ומשרשרים אותה לפונקציה.
למשל: פונקציה שמעלה קובץ tts למערכת תקבל כל פעם:
טוקן,
נתיב,
תוכן קובץ.ואז תקרא אילה כל פעם:
uploadTtsFileToYempt("hdbfirJdifvi", "ivr2:/1/943.tts", "Hello Api");
אז בא נראה איזה חלק אתה צריך להפוך לפונקציה:
מה הקובץ הראשי עושה? -
@ass אמר בשגיאת Login.php כבר בשימוש:
@שמואל4
נניח הקובץ PHP שבו הפונקציה נמצאת הוא A אם אני יקרא ל בקובץ B היא תעבוד?כן, במידה שיהיה include לקובץ A.
אבל עושים אותו בראש הקובץ B פעם אחת וזהו ולא בכל מקום שאתה רוצה לקרוא לה. אחרי שיש include לקובץ אתה פשוט קורא לפונקציה ולא שוב include -
@ass אמר בשגיאת Login.php כבר בשימוש:
@שמואל4
זה בדיוק הבעיה שלי!
כי אם נגיד שהפונקציה נמצאת בקובץ A ועכשיו גם קובץ B וגם C יבצעו include ואז קריאה, אם אני מריץ את B ו C ביחד אני יקבל את השגיאה ש A כבר בשימוש של B, וC לא יכול להשתשמש...א. אתה יכול להשתמש במקרה הזה עם מה שנכתב לעיל - אבל זה לא תקין.
ב. למה שיקרא דבר כזה? תן לי סיטואציה שבה יקרה דבר כזה.אם קובץ A הוא קובץ שמכיל פונקציות גלובליות בכל תהליך אתה עושה לו פעם אחת include. למה הפרוייקט כתוב בצורה שזה לא ככה? איך יקרה דבר כזה?