نمایش نتایج: از شماره 1 تا 1 , از مجموع 1

موضوع: مشکل header در php

  1. #1
    عضو انجمن yastheme آواتار ها
    تاریخ عضویت
    Oct 2010
    محل سکونت
    Izadshahr
    نوشته ها
    482
    تشکر تشکر کرده 
    434
    تشکر تشکر شده 
    1,565
    تشکر شده در
    691 پست

    پیش فرض مشکل header در php

    امروز توی یه پروژه با تابع header به مشکل بر خوردم, که این تابع کار نمی کرد, البته مشکل که نمیشد گفت چون قبلا هم برام پیش اومده بود و برای همین لازم دونستم که تجربیاتمو برای تازه کاران (البته خودم هم حرفه ای نیستم ) به اشتراک بزارم,
    شما توی کد پروژتون یه چنین تابعی دارید :
    کد PHP:
        header(“Locationcontact-thanks.php”); 
    حالا به دلایلی این تابع کار نمی کنه و صفحه رو به صفحه مورد نظرتون به اصطلاح ریدایرکت نمی کنه!
    اولین و مهم ترین نکته اینه که قبل از اجرای این کد شما نباید خروجی مثل Echo داشته باشید که header ارسال کنه! چون header فقط یک بار ارسال میشه و طبیعتا header دوم ارسال نمیشه,
    مثل کد زیر :
    کد PHP:
    echo’Hello Phptik.com’;

     
    header(“Locationcontact-thanks.php”); 
    خوب شما نباید توقع داشته باشید کد شما صحیح کار کنه! مسئله بعدی session هاست که من خیلی باهاشون سر وکله زدم, اگه از session استفاده می کنید بعد از تابع session_start(); حتما از تابع ob_start(); استفاده کنید!
    یه خاطره تلخ هم در مورد رعایت یه مسئله امنیتی بگم براتون, من تو یه پروژه ای برای Session صفحه مدیر از headerاستفاده کرده بودم که اگه سشن درست نبود به صفحه خروج ریدایرکت بشه! کاری که همه می کنند,
    کد PHP:
      if(!isset($_SESSION['secret']))
    {
    header(“locationlogout.php”);

     
    ………
    (تو پست بعدی یه سری مسائل امنیتی در مورد ورود امنت تر و استفاده همزمان از Session و کوکی هامی نویسم)
    خوب طبق بالا اگه کسی مستقیم وارد صفحه مدیر میشد ولی لاگین نکرده بود صفحه منتقل میشد! بعد دیدم یکی از دوستام ایمیل زده می خنده می گه من بدون لاگین وارد صفحه میشم!!
    بعد که بررسی کردم دیدم فایل کانفیگ با Notepad ویندوز ویرایش شده بود و غیر استاندارد ذخیره شده بود و به اصطلاح دارای BOM شده بود یعنی خروجی HTML یه کارکتر خالی میفرستاد و این یعنی ارسال header !! برای همین header دوم ارسال نمیشد و هر کسی میتونست تو ادمین واسه خودش دور بزنه راه حلش هم ساده هست استفاده از تابع exit(); !
    وقتی ما از تابع headerاستفاده می کنیم یعنی با ادامه کد کاری نداریم پس برنامه رو exit میکنیم که اگه سهوا هیدر ارسال نشد لا اقل دسترس هم نداشته باشند! مثل :
    کد PHP:
      if(!isset($_SESSION['secret']))
    {
    header(“locationlogout.php”);

     exit();
     
    … 

    منبع: مشکل header در php | PHP تیــــــک

    سنترال هاستینگ - اولین سرویس دهنده DDoS Protected ایرانی!
    █ شرکت ایمن میزبان راهبر کاسپین (شماره ثبت : 1799 شناسه ملی: 14006354907 )


  2. تعداد تشکر ها از yastheme به دلیل پست مفید


  3. # ADS




     

اطلاعات موضوع

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

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. خطای انتقال با php با تابع header
    توسط mojtabakh18 در انجمن PHP-MySQL
    پاسخ ها: 3
    آخرين نوشته: April 5th, 2017, 10:32
  2. مشکل کار نکردن خطوط قبل از دستور Header
    توسط jahromy در انجمن PHP-MySQL
    پاسخ ها: 2
    آخرين نوشته: September 4th, 2016, 19:46
  3. مشکل در header
    توسط ms313 در انجمن PHP-MySQL
    پاسخ ها: 4
    آخرين نوشته: September 18th, 2014, 11:02
  4. پاسخ ها: 0
    آخرين نوشته: January 31st, 2013, 21:56
  5. قرار دادن کد آمار وبگذر در فایل header.php
    توسط moh3nshirazboy در انجمن PHP-MySQL
    پاسخ ها: 1
    آخرين نوشته: September 20th, 2011, 10:44

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •