نمایش نتایج 1 تا 12 از 12

نام تاپیک: مشکل headers already sent

  1. #1

    مشکل headers already sent

    Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files\EasyPHP-12.1\www\wordnews\theme\article.php:25) in C:\Program Files\EasyPHP-12.1\www\wordnews\article.php on line 28
    سلام من با این ارور به مشکل برخوردم encoding صفحه هم utf-8 with BOM هست!

    خواضا را هنمایی کنید!

    خط 25 این هست:

    if(isset($_POST[$val]))
    آخرین ویرایش به وسیله MRmoon : شنبه 05 اسفند 1391 در 13:11 عصر

  2. #2
    کاربر دائمی آواتار رضا قربانی
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    ܓܨ_| ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ _
    پست
    1,824

    نقل قول: کمک خواهشا!

    کل صفحه article.php رو بذارید

  3. #3

    نقل قول: کمک خواهشا!


    <?PHP
    require 'app/boot.php';
    class Gpage extends article
    {

    function Gpage( )
    {
    $this->show_page = 'article.php';
    }
    function runner()
    {
    $this->chek_Get();
    $article = mysql_query("SELECT * FROM article WHERE id=".$_GET['a']." ",$this->connect()) or die(mysql_error());
    $this->likes_ip();
    if(isset($_GET['like']) AND $this->like == TRUE)
    {
    $this->Update_like($article);
    }
    $articles = mysql_fetch_assoc($article);
    include FILE_PATH.DIRECTORY_SEPARATOR.$this->show_page;
    $com = mysql_query("SELECT * FROM comment WHERE aid=".$_GET['a']."",$this->connect()) or die(mysql_error());
    include FILE_PATH.DIRECTORY_SEPARATOR."comment_show.php";
    if(isset($_POST['c_b'])){$vals = array('c_n','c_e','c_t','c_bl','c_type');
    foreach( $vals as $val ){
    if(!isset($_POST[$val]))
    {
    header("location: index.php");return;
    }
    }
    if($_POST[$vals[4]]!= '1' AND $_POST[$vals[4]]!= '0')
    {
    $type = '0';
    }else{$type = $_POST[$vals[4]];}
    if($_POST[$vals[0]] == ""){echo "??? ??? ?? ???? ????";}else{
    if($_POST[$vals[1]] == ""){echo "????? ??? ??? ??? ????!";}else{
    if($_POST[$vals[2]] == ""){echo "??? ??? ?? ???? ????";}else{
    $name = htmlspecialchars($_POST[$vals[0]]);$email=htmlspecialchars($_POST[$vals[2]]);$text=$_POST[$vals[2]];$blog=htmlspecialchars($_POST[$vals[3]]);
    $this->comment_send($_GET['a'],$name,$email,$text,$blog,$type);
    $this->redirect("location: ");
    }
    }
    }
    }
    include FILE_PATH.DIRECTORY_SEPARATOR."comment.php";

    }
    }
    $m = new Gpage;
    $m -> run( );

  4. #4

    نقل قول: کمک خواهشا!

    در خط 27 شما از header() استفاده کردید که بخاطر قوانین زیر این ارور رو میده

    تابع header باید اول صفحه پیش از هر کدی (منظور از کد اجرایی هست) نوشته بشه
    قبل از تابع header نباید از space استفاده شده باشد.
    اگر به شرط بستگی دارد میتونید اینجوری بنویسیدش البته در اول صفحه قبل از هر کدی


    if(){
    header('location:../example.php or http://google.com');
    }

  5. #5
    کاربر دائمی آواتار 2undercover
    تاریخ عضویت
    تیر 1391
    محل زندگی
    خراسان رضوی
    پست
    1,471

    نقل قول: کمک خواهشا!

    تابع
    ob_start()
    رو توی ابتدای صفحه فراخوانی کردید یا نه...؟

  6. #6
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: کمک خواهشا!

    بجای
                        header("location: index.php");return;


    بنویس

    echo '<script> document.location = "index.php" ; </script>';
    exit;

  7. #7

    نقل قول: کمک خواهشا!

    encoding صفحه هم utf-8 with BOM هست!
    اشتب کردی.
    باید utf-8 without BOM باشه.

  8. #8

    نقل قول: کمک خواهشا!

    اره eshpilen جان درست میگن
    البته فکر کنم MRmoon اشتباه گفتن چون تنها فرمتی که داریم without هست with که نداره
    with BOM میشه همون utf-8 معمولی

  9. #9

    نقل قول: کمک خواهشا!

    بله من اشتباه گفتم معذرت میخوام از اساتید گرامی .

    به جز جاوا راه دیگری نیست؟

  10. #10
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: کمک خواهشا!

    مشکل از انکدینگ نیست احتمالا
    صفحه شما یه خطا داره و احتمالا نمایش خطا رو آف کردین نمیبینید
    بجای این

    foreach( $vals as $val ){
    if(!isset($_POST[$val]))
    {
    header("location: index.php");return;
    }
    }


    -----

    بنویسید


     foreach( $vals as $val ){
    echo "<br /> val is : $val ";
    if(!isset($_POST[$val]))
    {
    echo "-> OK ";
    }
    }


    ببینید چی به چیه
    در ضمن بجای return باید بنویسی break و قبل از هدر هم بزاری
    اررور ریپورتینگ رو هم حتما مطمئن شو که on هستش

  11. #11

    نقل قول: کمک خواهشا!

    مطمئنید Encoding روی UTF-8 without BOM تنظیمه؟ آخه اون علامت سؤالها خیلی مشکوک بنظر میرسن. ضمناً اولین خط اسکریپت دستور ;()ob_start و آخرین خطش ;()ob_end_flush رو بگذارین. به احتمال زیاد مشکل حل میشه.

  12. #12

    نقل قول: مشکل headers already sent

    لطفاً برای تاپیکتون هم عنوان مناسب انتخاب کنید. اینبار صرفاً به تذکر اکتفا شد اما از دفعات بعد، مطابق قوانین سایت، تاپیک حذف خواهد شد.

تاپیک های مشابه

  1. Cannot modify header information - headers already sent by
    نوشته شده توسط MPG2710 در بخش PHP
    پاسخ: 8
    آخرین پست: پنج شنبه 14 شهریور 1392, 15:31 عصر
  2. مشکل header و div در ajax
    نوشته شده توسط ahmadreza517 در بخش PHP
    پاسخ: 1
    آخرین پست: جمعه 24 شهریور 1391, 21:50 عصر
  3. مشکلی به نام headers already sent
    نوشته شده توسط mohammad-gh در بخش PHP
    پاسخ: 2
    آخرین پست: چهارشنبه 16 فروردین 1391, 19:41 عصر
  4. سوال: Warning:headers already sent by
    نوشته شده توسط webpower در بخش PHP
    پاسخ: 3
    آخرین پست: شنبه 25 تیر 1390, 17:24 عصر
  5. چگونگی رفع خطای headers already sent
    نوشته شده توسط balis_pascal در بخش PHP
    پاسخ: 10
    آخرین پست: یک شنبه 27 فروردین 1385, 02:50 صبح

قوانین ایجاد تاپیک در تالار

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