سایت ساز وبزیخرید بک لینک

header()

شروع موضوع توسط behdad ‏14 سپتامبر 2004 در انجمن PHP

  1. behdad

    behdad کاربر تازه وارد

    تاریخ عضویت:
    ‏26 اکتبر 2003
    نوشته ها:
    6
    تشکر شده:
    0
    سلام

    من مشکلی دارم با دستور
    PHP:
    header("Location : index.php")
    وقتی که از این دستور برای کنترل کاربر استفاده میکنم پیغام خطای زیر رو میگیرم :

    Warning: Cannot modify header information - headers already sent by (output started at /home/admin.php:17)​

    جریان چیه و چرا روی سرور خانگی من این دستور مشکلی نداره ولی روی هاستی که ازش استفاده میکنم چنین ایرادی رو میگیره ؟ اگر این دستور جایگزینی داره لطفا من رو راهنمایی کنید . لازم به ذكره php که روی سرور خانگی من و روی هاست من هستند هم ورژنند .

    با تشکر
     
  2. بازدیدیار - افزایش بازدید سایت و سیگنال های برندخرید بک لینک
  3. oxygenws

    oxygenws کاربر تازه وارد

    تاریخ عضویت:
    ‏8 ژانویه 2004
    نوشته ها:
    96
    تشکر شده:
    0
  4. ehsan

    ehsan Administrator

    تاریخ عضویت:
    ‏5 دسامبر 2002
    نوشته ها:
    7,926
    تشکر شده:
    3,680
    محل سکونت:
    Internet
    فایل رو با یه ادیتور غیر یونیکد باز کن. احیانا سه تا کاراکتر عجیب توی اون فایل نیوفتاده؟!
    البته ممکنه این دلیل اصلیش نباشه ولی خب بعضی وقتها که فایل رو مثلا با notepad و با تغییرات فارسی ادیت میکنی یه همچین مشکلی پیش میاد.
     
  5. oxygenws

    oxygenws کاربر تازه وارد

    تاریخ عضویت:
    ‏8 ژانویه 2004
    نوشته ها:
    96
    تشکر شده:
    0
  6. behdad

    behdad کاربر تازه وارد

    تاریخ عضویت:
    ‏26 اکتبر 2003
    نوشته ها:
    6
    تشکر شده:
    0
    ممنون از راهنماییتون

    اون که اشکال از خط 17 هست رو که متوجه شدم :D ولی مسئله اصلی اینه که نمیتونه header رو flush کنه منم روی php.ini سرور خودم هر چقدر گشتم تنظیمی برای این مسئله پیدا نکردم .

    و اینکه توی این code از unicode استفاده نشده و ایرادی که میگیره مستقیما مال header ای است که قراره برای ie فرستاده بشه ...

    ایا دستوری داریم که مشابه این کار کنه که جایگزین کنم ؟
     
  7. oxygenws

    oxygenws کاربر تازه وارد

    تاریخ عضویت:
    ‏8 ژانویه 2004
    نوشته ها:
    96
    تشکر شده:
    0
  8. ehsan

    ehsan Administrator

    تاریخ عضویت:
    ‏5 دسامبر 2002
    نوشته ها:
    7,926
    تشکر شده:
    3,680
    محل سکونت:
    Internet
    من که در زمینه php بی سوادم واسه همین عادت کردم تا همچین اروری میگیرم میرم سراغ اون سه تا کاراکتر! :lol:
    در هر صورت ممنون از راهنمایی ;)
     
  9. behdad

    behdad کاربر تازه وارد

    تاریخ عضویت:
    ‏26 اکتبر 2003
    نوشته ها:
    6
    تشکر شده:
    0
    خیلی ممنون بابت راهنمایی دقیقتون

    نیازی نیست خط 17 رو بزارم اینجا چون همونطور که گفتم در خط 17 از دستور header داره ایراد میگیره و مشخصه چیزه دیگری هم نیست .
    این دستور باید اولین دستور هر صفحه باشه حتی قبل از هر نوع html tag تا بتونه بدرستی کار کنه و ایراد این خط هم همونطور که مشخصه بخاطره اینه که خط اول نیست و خط هفدهمه و در این مرحله header ها flush شدند .

    روی خود documents های php توضیح کاملی در این رابطه وجود داره که بد نیست اینجا منتقل کنم :

    Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include(), or require(), functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.​

    و در قسمت بعد هم راه حلش رو براتون تشریح کرده :

    Note: In PHP 4, you can use output buffering to get around this problem, with the overhead of all of your output to the browser being buffered in the server until you send it. You can do this by calling ob_start() and ob_end_flush() in your script, or setting the output_buffering configuration directive on in your php.ini or server configuration files.​

    اینهم برای درک بیشتر HTTP :


    Location Headers and Spoofing

    If a single server supports multiple organizations that do not trust
    one another, then it MUST check the values of Location and Content-
    Location headers in responses that are generated under control of
    said organizations to make sure that they do not attempt to
    invalidate resources over which they have no authority.

    و برای درک خیلی بیشتر اینجا کلیک کنید .
     
  10. oxygenws

    oxygenws کاربر تازه وارد

    تاریخ عضویت:
    ‏8 ژانویه 2004
    نوشته ها:
    96
    تشکر شده:
    0
عسل طبیعی و گرده گل ایرانیخرید و فروش اتوماتیک ارزهای الکترونیکی