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

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

Tyler 07-02-14 23:37

העברת משתמשים מקובץ PHP ללא פגיעה בלולאה של הPHP
 
אז ככה, יש לי קובץ PHP על השרת שמבצע כמה לולאות ודברים בקוד שנשלח אליו על ידי.
מובן שזה צד שרת אז לא באמת אפשר להעתיק את התוכן של הקובץ, אך רציתי גם לשים לכיף בתחילת הקובץ HEADER שיוביל את כל אלה שמנסים לראות את התוכן של הקובץ או להכנס אליו לעמוד האינדקס.

לאחר הHEADER כתבתי את כל שאר הקוד שמכיל בתוכו REQUIRE ONCE, משתנים, לולאות, ובקיצור קובץ PHP רגיל שמבצע קוד ארוך.

הבעיה היא שעכשיו אחרי שהכנסתי את הHEADER אני מקבל 2 שגיאות:

קוד:

: Cannot modify header information - headers already sent by
קוד:

ession_start() [function.session-start]: Cannot send session cache limiter - headers already sent
אני בטוח ב100% שהדבר לא קשור לHEADER שהצבתי בתחילת הקובץ, כי על שרת אחר (שרת ישראלי), הקובץ עובד מעולה, מריץ את הלולאה של הקוד ובנוסף גם מעביר משתמשים חטטנים לעמוד האינדקס כשהם מנסים להגיע לקובץ PHP.
עכשיו אני עובד על שרת מחו"ל, לא יודע כמה זה קשור, אני רק יודע שלפעמים יש בשרתים של חו"ל בעיות עם הBOM, אז הורדתי את הBOM מהקובץ והעלתי חזרה לשרת וזה לא עזר ואותן שגיאות.

למישהו יש דרך איך אני אמשיך להריץ את הקוד שכתוב בPHP ובו זמנית אעביר משתמשים שינסו להגיע לקובץ דרך הדפדפן לדוגמא www.domain.com/file.php , והם יועברו ישר לindex.php.

תודה רבה!

Haimz 08-02-14 15:16

אתה יכול להעביר אותם אחרי הלולאות,
השגיאות שמופיעות לך הן בגלל שאתה מציג פלט לפני ההידרים,
כלומר אתה לא יכול להציג פלט לפני שאתה משתמש בheader, אחרת תהיה שגיאה כמו שרשמת.
אם אין לך פלט לפני, אז כנראה שזה בגלל שאתה משתמש בutf-8
תרשום למעלה: ob_start();

BuildDream 08-02-14 16:28

הבעיה היא שאתה מבצע פלט לפני הפונקציה שקובעת את ה-Header.

אם יש לך פלט לפני הפונקציה (כמו למשל echo או print) - זה יגרום לשגיאה. גם אם יש תוכן לפני הפתיחה של התג PHP (גם סתם רווח נחשב לתוכן) - זה גם פלט וגם זה יכול לגרום לך לשגיאה.


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

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