مشکل با هدرها

mozakhraf

Member
سلام . میشه یکی بگه این کد رو چیکارش کنم که دیگه موقع ارسال هدر ایراد نگیره؟!!! مرسی:)

PHP:
<?php
include("functions.inc.php");
connect_db();
$id=$_GET['id'];
$query ='UPDATE ads SET new="0",status="1" WHERE id="'."$id".'"';
if (@mysql_query($query))
header("Location:page_ads_new.php");
else {
echo "Error!". mysql_error();  }
?>
 

amir01

Well-Known Member
توی فایل functions.inc.php چی داری؟
مشکل از اونه.
البته فکر کنم اگه اول صفحه یدونه ob_start() مشکل حل بشه.
 

mozakhraf

Member
1-توی functions.inc.php یکسری تابع هست که تابع ا تصال به بانک اطلاعاتی هم توش هست . روی چه چیزی توی functions.inc.php باید حساس باشم؟
2-من اطلاعاتی راجع به بافر ندارم.اگر دقیقا بگی چیکارش کنم ممنون میشم!
 

ziXet

مدیر انجمن PHP/MYSQL
سلام . میشه یکی بگه این کد رو چیکارش کنم که دیگه موقع ارسال هدر ایراد نگیره؟!!! مرسی:)

PHP:
<?php
include("functions.inc.php");
connect_db();
$id=$_GET['id'];
$query ='UPDATE ads SET new="0",status="1" WHERE id="'."$id".'"';
if (@mysql_query($query))
header("Location:page_ads_new.php");
else {
echo "Error!". mysql_error();  }
?>
مشکل با سیو کردن فایل هست که امضای BOM روش هست.
با ادیتور ++notpad یا EMEditor یا.. استفاده کن و این امضا رو وردار.
با notpad ویندوز اگه سیو کنی اینجوری میشه
 

mozakhraf

Member
روی لوکال درست کار میکنه ولی وقتی سایت رو آپ میکنم این مشکل پیش میاد!
 

bahram17set

New Member
این مشکل Header ها وقتی ایجاد می شه که قبل از فراخوانی تابع header() چیزی به مرورگر ارسال شده باشه. حالا می تونید با استفاده از بافر کردن (ob_start()) تا جایی که لازمه خروجی به مرورگر بفرستید جلوی اون رو بگیرید. حتی یک فاصله یا نقطه هم می تونه این خطا رو بوجود بیاره.
و یا اینکه php.ini رو نگاه کنید که include header اتوماتیک نداشته باشید.
همین
 

mozakhraf

Member
1- فقط با یک ob_start() حل میشه یا اینکه چیزه دیگه تای هم باید به کد اضافه کنم؟؟
2-به php.ini دسترسی ندارم میشه در این مورد بیشتر راهنمایی کنید؟
 

justpersian

Member
همون طور که shahkey.com گفت مشکل از امضای BOM هست !
شما برنامه dream weaver رو نصب کن بعد فایل php رو توی اون باز کن...
بعد ctrl + j رو بزن ، برو به title/encoding و تیک گزینه include unicode signature رو بردار !
موفق باشی
 

bahram17set

New Member
نه نه فقط بایک ob_start() حل نمی شه شما اگه اصلا چیزی از بافر کردن نمی دونید باید به منبع مراجعه کنید و این مبحث رو بخونید.
در ضمن اگه از یک هاست رایگان استفاده می کنید به احتمال زیاد مشکل شما همن هدر اتوماتیک است که هیچ راهی برای برداشتن اون از طریق کاربران نیست. معمولا از این هدرها برای نمایش تبلیغات بر روی هاست کاربران استفاده می شه.

موفق باشید.
 

mozakhraf

Member
از هاست رایگان استفاده نمیکنم ولی به php.ini هم دسترسی ندارم ! میشه دستوری رو که بشه از دور این مسئله رو چک کرد بدید؟؟!
 

ziXet

مدیر انجمن PHP/MYSQL
ببین یه کاری کن:
اول همه رو پاک کن فقط یه هدر بذار تو صفحه بعد اون امضا رو هم بردار.
ببین بازم ایراد میگیره؟
اگه گرفت یه ای-میل کوچولو بزن به پشتیبانی و فحش رو به جونشون بکش!!(شوخی!)
 

mozakhraf

Member
سلام!
1- با دریم ویور چک کردم انکدینگ من اصلا utf-8 نبود که بخواد تیک داشته باشه!
2-این امضایی رو که می گید چی هست و از کجا می فهمید که یک چنین امضایی وجود داره !
3- ریطی به هاستینگ نداره چون تو یه جای دیگه از سایت هدر ها درست کار میکنه!
4-یه احتمال خیلی زیاد اشکال از functions.inc.php هست ولی نمیدونم این اشکال از کجاست!!!:cry:
 

justpersian

Member
اگه فایل functions.inc.php هم امضای BOM رو داشته باشه می تونه مشکل درست کنه !
اون فایل هم با dream weaver چک کن !!
 

ziXet

مدیر انجمن PHP/MYSQL
سلام!
1- با دریم ویور چک کردم انکدینگ من اصلا utf-8 نبود که بخواد تیک داشته باشه!
2-این امضایی رو که می گید چی هست و از کجا می فهمید که یک چنین امضایی وجود داره !
3- ریطی به هاستینگ نداره چون تو یه جای دیگه از سایت هدر ها درست کار میکنه!
4-یه احتمال خیلی زیاد اشکال از functions.inc.php هست ولی نمیدونم این اشکال از کجاست!!!:cry:
عزیزم برو تو گوگل سرچ کن EMEditor

بعد این برنامه رو دانلود کن
بعد سورس رو با این برنامه باز کن
بعد save as رو بزن بعد اون پایین چک مارک BOM signture رو وردار.
 

mozakhraf

Member
1- روی لوکال هاست چرا اجرا میشه؟؟؟
2- در مورد بافر کردن،من نمی فهمم چیکار باید بکنم(کجا باید ob_start(); کنم و کجا باید ob_flush(); کنم)؟؟؟
 

جدیدترین ارسال ها

بالا