facebook app php header hataları

3 Cevap php

i am building a facebook app which is somehow generating these weird errors. the following are the errors I am facing:

Warning: Cannot modify header information - headers already sent by (output started at /home/amitver/public_html/roadies/index.php:2) in /home/amitver/public_html/roadies/facebook.php on line 395

Warning: Cannot modify header information - headers already sent by (output started at /home/amitver/public_html/roadies/index.php:2) in /home/amitver/public_html/roadies/facebook.php on line 395

Warning: Cannot modify header information - headers already sent by (output started at /home/amitver/public_html/roadies/index.php:2) in /home/amitver/public_html/roadies/facebook.php on line 395

Warning: Cannot modify header information - headers already sent by (output started at /home/amitver/public_html/roadies/index.php:2) in /home/amitver/public_html/roadies/facebook.php on line 399

index.php ilk birkaç satır:

<?php

require_once 'facebook.php';
//facebook init
    $appapikey = '...';
    $appsecret = '...';
    $facebook = new Facebook($appapikey, $appsecret);
    $user_id = $facebook->require_login();


    $userInfo = $facebook->api_client->users_getInfo($user_id, array('name'));
    $name = $userInfo[0]['name'];

    //$useruidname = $facebook->api_client->fql_query("SELECT name FROM user WHERE uid='$user_id'");

    // Greet the currently logged-in user!
    echo 'Hello, '.$name;   

?>

the lines 394-400 in facebook.php are:

foreach ($cookies as $name => $val) {
  setcookie($this->api_key . '_' . $name, $val, (int)$expires, '', $this->base_domain);
  $_COOKIE[$this->api_key . '_' . $name] = $val;
}
$sig = self::generate_sig($cookies, $this->secret);
setcookie($this->api_key, $sig, (int)$expires, '', $this->base_domain);
$_COOKIE[$this->api_key] = $sig;

Birisi bana bu çözmeye yardımcı olabilir?

3 Cevap

setcookie aramadan önce çıktısı alıyorsanız index.php üstünde muhtemelen bazı satırsonlarını gidecekseniz.

Garip hata ile ilgili, ileriye oldukça düz bulunuyor. Bu zaten çıktı göndermeden başladım diyor, bu yüzden özel başlıklar gönderemezsiniz. Eğer istemciye çıktı gönderdiğinizde, PHP önce başlıkları göndermek zorundadır. Üstbilgileri gönderildikten sonra, bunları değiştiremezsiniz. Ya boşluk veri gönderirken veya echo'ing veya zamanından önce Set-Cookie başlığını yolluyorlar gibi görünüyor. Onları göndermeden önce bir liste veya dize içine başlıklarını oluşturmak gerekir, ve genellikle içeriği ile aynı yapardı. Tüm üstbilgileri gönderildikten sonra kadar çıkış göndererek geciktirmek için bir yolu çıkış akışı yakalamak için. Şöyle:

ob_start();

echo 'Hello world';

$output = ob_get_contents();

ob_end_clean();

Tabii, senin sorunun infact boş bir çizgi vardı, ama bu sorunu olmazdı yapıyor.

Eğer dahil dosyaları herhangi bir boşluk olup olmadığını kontrol edin. Sadece tek bir "" ve PHP kullanıcı aracısı (tarayıcı) bu çıktı gönderilir ve artık değişiklik kurabiye gibi başlık şeyler yapmak veya header() veri gönderebilirsiniz.

Bu hata index.php hat 2 (gerektiren) bir şey gönderilmesine neden olduğunu belirtiyor. Yani bir şey bu include çıkışı veya dosya facebook.php dosyanın sonunda boş satırlar / boşluklar içerdiğini kontrol edin.