ABA


"שוב PHP.. שוב צריך עזרה.."
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #20235 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 20235
SiLeNt NoAm
חבר מתאריך 26.5.02
1693 הודעות
   22:57   30.09.13   
אל הפורום  
  שוב PHP.. שוב צריך עזרה..  
 
חפרתי ולא מצאתי תשובה ברורה..
הרצתי על המחשב את המערכת הקטנטנה שבניתי והכל עובד מעולה, העליתי אותה לכאן:
http://www.sheep.co.il/ey/
ואני מקבל את ה warning ששם.
חבר אמר לי להשתמש בפונק' error reporting שתעלים את השגיאה ואכן זה עבד אבל עדיין השרת לא מתייחס ל header שאני עושה לרידיירקט.
באינטרנט מצאתי שזה קשור לזה שיש אולי רווחים אחרי ההפניה של ה header אבל שמתי אותו בכלל בפונקצית IF בדף ה includes.

שוב תודה על העזרה





בדיחות | משחקים |
הורדות |
סרטונים


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  מה השגיאה? משה הלולן 30.09.13 23:39 1
  .. SiLeNt NoAm 30.09.13 23:58 2
     תצרף גם את הקוד כי עכשיו אני מנחש משה הלולן 01.10.13 09:55 3
         אני חושב ש-COOKIE אפשר. רק לא SESSION ו-HEADERS. Ice Cold  01.10.13 10:10 4
     כי אתה מנסה לכתוב headers לעמוד last_test 01.10.13 20:10 5
         ראשית תודה על התגובה המפורטת SiLeNt NoAm 02.10.13 23:01 6
             מכתב sza  02.10.13 23:37 7
             נשמע כמו בעיית BOM ליל קיץ 03.10.13 17:44 8
  זה הקוד שלי: SiLeNt NoAm 09.10.13 11:19 9
     עדיין נשמע כמו בעיית bom :) חפש בגוגל ליל קיץ 09.10.13 16:13 10
         חרשתי, שמתי גם קוד מנטרל וכלום.. SiLeNt NoAm 09.10.13 18:31 11
             לא נוח איך שהצגת את הקבצים אז לא ברור מה קורה שם ולאיזה שורות השגיאה מתייחסת משה הלולן 09.10.13 20:22 12
  פתח את הקבצים בNOTEPAD++ ותשמור אותם כUTF8 without BOM sza  09.10.13 20:44 13
     גם לא עזר SiLeNt NoAm 09.10.13 21:30 14
  תקשיב הבעיה שלך היא מאוד פשוטה ואתה אמור לפתור אותה מהר משה הלולן 09.10.13 22:27 15
  זה בגלל הקובץ header שלך.. dvir8 10.10.13 00:23 16

       
משה הלולן לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 11.6.13
4818 הודעות, 8 פידבק
   23:39   30.09.13   
אל הפורום  
  1. מה השגיאה?  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
SiLeNt NoAm
חבר מתאריך 26.5.02
1693 הודעות
   23:58   30.09.13   
אל הפורום  
  2. ..  
בתגובה להודעה מספר 0
 
Warning: Cannot modify header information - headers already sent by (output started at /home/noamh12/domains/sheep.co.il/public_html/ey/includes/header.php:17) in /home/noamh12/domains/sheep.co.il/public_html/ey/includes/functions.php on line 22





בדיחות | משחקים |
הורדות |
סרטונים


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
משה הלולן לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 11.6.13
4818 הודעות, 8 פידבק
   09:55   01.10.13   
אל הפורום  
  3. תצרף גם את הקוד כי עכשיו אני מנחש  
בתגובה להודעה מספר 2
 
   אתה מנסה ליצור קוקיז אחרי שהוצאת פלט? כי זה לא אפשרי


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Ice Cold  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 3.8.02
28041 הודעות, 19 פידבק
   10:10   01.10.13   
אל הפורום  
  4. אני חושב ש-COOKIE אפשר. רק לא SESSION ו-HEADERS.  
בתגובה להודעה מספר 3
 


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
last_test
חבר מתאריך 20.8.13
328 הודעות
   20:10   01.10.13   
אל הפורום  
  5. כי אתה מנסה לכתוב headers לעמוד  
בתגובה להודעה מספר 2
 
   אחרי שכבר הדפסת פלט למסך, וזה מביא אותי להסבר הבא:

בקשות לפרוטוקול HTTP מורכבות ממספר נתונים:

1.שיטת הבקשה - POST/PUT/GET/DELETE/HEAD/OPTIONS, אתה בטח מכיר מכאן את POST/GET שהן השיטות הכי בסיסיות.

2.הכתובת המבוקשת שאליה אנחנו ניגשים.

3.שדות כותרת - headers - התפקיד של השדות האלה הוא ברמה הכי בסיסית לייצג את התוכן שאנחנו מחזירים מאותה בקשה, נניח שאותו URL מציג תמונה, אז אחד הכותרים שיהיה לנו הוא:



Content-Type: image/png

ברמה המתקדמת יותר אנחנו גם מבצעים Redirection מנקודה X לנקודה Y, ביצוע Caching ל-resources בשרת:

http://en.wikipedia.org/wiki/HTTP_ETag

ועוד המון דברים אחרים.

עכשיו לבעיה שלך, ברגע שיש לך קובץ PHP שכתבת בו סתם echo "blablabla"; אתה לא יכול להשתמש בפונקציה header אחר כך כי ה-buffer כבר נכתב.

כדי לפתור את זה ברמת ה-PHP אתה יכול להשתמש ממש בתחילת קובץ ה-PHP שלך ב - ob_start();, פתרון נכון יהיה פשוט להגדיר את הכותרים לפני הפלט למסך.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
SiLeNt NoAm
חבר מתאריך 26.5.02
1693 הודעות
   23:01   02.10.13   
אל הפורום  
  6. ראשית תודה על התגובה המפורטת  
בתגובה להודעה מספר 5
 
שנית - מדוע על המחשב הבעיה לא התגלתה? מדובר על חלק שעשיתי אחד לאחד לפי המדריך של lynda ולא ציינו משהו בנוגע להתנגשות שכזו
וזה לא משנה שה header בתוך if? שהרי לא תמיד הוא מתקיים.
בנוגע ל ob_Start- ראיתי שהתייחסו לזה ברשת אך לא ממש הבנתי את הקטע עם הבאפרינג.





בדיחות | משחקים |
הורדות |
סרטונים


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
sza  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 26.4.02
12357 הודעות, 22 פידבק
   23:37   02.10.13   
אל הפורום  
  7. מכתב  
בתגובה להודעה מספר 6
 

1. יכול להיות שגם במחשב הוא זרק לך אקספשן, אבל ההגדרה בקובץ php.ini שלך לגבי הצגת שגיאות לא נכונה.

2. יתכן שכללת איזהשהו קובץ בinclude לפני הכנסת את קוד הPHP? והקוד מהקובץ הוא שכתב למסך?

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


http://webleader.co.il/websites/rotter/amionline.php#.jpg צחי.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ליל קיץ לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 14.2.10
10048 הודעות, 7 פידבק
   17:44   03.10.13   
אל הפורום  
  8. נשמע כמו בעיית BOM  
בתגובה להודעה מספר 6
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
SiLeNt NoAm
חבר מתאריך 26.5.02
1693 הודעות
   11:19   09.10.13   
אל הפורום  
  9. זה הקוד שלי:  
בתגובה להודעה מספר 0
 
קובץ אינדקס זה בעצם הלוגאין לאתר..

<?php require_once("includes/session.php"); ?>
<?php require_once("includes/connection.php"); ?>
<?php require_once("includes/functions.php"); ?>
<?php if (isset($_SESSION)) {redirect_to("mainpage.php");}?>
<?php include("includes/header.php"); ?>
<?php
if (isset($_POST)) {
//form validation
$errors = array();
$required_fields = array('username','password');
foreach($required_fields as $fieldname) {
if (!isset($_POST) || empty($_POST)) {
$errors = $fieldname;

}

זה קובץ header:


<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>
EY
</title>
<link href="stylesheets/public.css" media="all" rel="stylesheet" type="text/css" />

</HEAD>

<body>
<div id="header">
<img src=images/ey-logo.png height=50px; />
</div>
<br />
<div id="main">

זאת הפונקצית redirect to בתוך קובץ functions:


function redirect_to($location = NULL) {
if ($location != NULL) {
header("location:$location");
exit;
}
}

וזאת ההודעה שאני מקבל (שגם חוסמת את הרידיירקט):


Warning: Cannot modify header information -
headers already sent by (output started at /home/noamh12/domains/sheep.co.il/public_html/ey/includes/header.php:17)
in /home/noamh12/domains/sheep.co.il/public_html/ey/includes/functions.php on line 12

רק כששמתי ob_start זה עבר לי חלק אבל הבנתי שלא מומלץ להשתמש בזה, בנוסף לא בא לי לשים את זה בכל הדפים באתר..





בדיחות | משחקים |
הורדות |
סרטונים


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ליל קיץ לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 14.2.10
10048 הודעות, 7 פידבק
   16:13   09.10.13   
אל הפורום  
  10. עדיין נשמע כמו בעיית bom :) חפש בגוגל  
בתגובה להודעה מספר 9
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
SiLeNt NoAm
חבר מתאריך 26.5.02
1693 הודעות
   18:31   09.10.13   
אל הפורום  
  11. חרשתי, שמתי גם קוד מנטרל וכלום..  
בתגובה להודעה מספר 10
 





בדיחות | משחקים |
הורדות |
סרטונים


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
משה הלולן לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 11.6.13
4818 הודעות, 8 פידבק
   20:22   09.10.13   
אל הפורום  
  12. לא נוח איך שהצגת את הקבצים אז לא ברור מה קורה שם ולאיזה שורות השגיאה מתייחסת  
בתגובה להודעה מספר 11
 
   אתה בטוח שכל הקבצים הם utf8 בלי dom?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
sza  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 26.4.02
12357 הודעות, 22 פידבק
   20:44   09.10.13   
אל הפורום  
  13. פתח את הקבצים בNOTEPAD++ ותשמור אותם כUTF8 without BOM  
בתגובה להודעה מספר 0
 


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
SiLeNt NoAm
חבר מתאריך 26.5.02
1693 הודעות
   21:30   09.10.13   
אל הפורום  
  14. גם לא עזר  
בתגובה להודעה מספר 13
 


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
משה הלולן לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 11.6.13
4818 הודעות, 8 פידבק
   22:27   09.10.13   
אל הפורום  
  15. תקשיב הבעיה שלך היא מאוד פשוטה ואתה אמור לפתור אותה מהר  
בתגובה להודעה מספר 0
 
   פשוט אתה עונה תשובות חלקיות.
הבעיה היא שאי אפשר לשלוח headers אחרי שיצא פלט בגלל שהכותרות כבר נשלחו.
עכשיו צריך להבין איפה אתה מנסה לשלוח כותרת או איפה בטעות יוצא לך פלט.

נכנסתי לאתר שהבאת ואני לא רואה שם שום שגיאה, מה לעשות כדי לראות את הwarning?

אתה יכול גם לרשום כאן את הקוד המלא ולציין לאיזה שורות השגיאה מדברת? מה זה שורה 17?

תנסה לתת die(); ולעבור שורה שורה עד שרואים איפה הwarning קורה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
dvir8
חבר מתאריך 13.5.02
5929 הודעות
   00:23   10.10.13   
אל הפורום  
  16. זה בגלל הקובץ header שלך..  
בתגובה להודעה מספר 0
 
   תוריד אותו ותראה שזה עובד.
אתה צריך לבצע את ההוספה שלו לאחר התנאי של redirect


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net