Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

session_start() ile <?php çakışıyor

merhaba;

session_start() ile header already sent sorunu alıyorum; ancak session_start'tan önce herhangi bir boşluk ya da çıktı yok.

<html>'den önce aşağıdaki şekilde bir session ataması yapıyorum. ancak çıkan sonuçta, sayfanın ilk satırında (bu satırda .<?php yazıyor ve ondan önce hiçbir boşluk yok) headers already sent sorunu veriyor. kod aşağıda;

<?php
session_start();
$_SESSION["kullanici"]="name";
?>
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • shidaiko adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    12 cevap - 0 soru
    php manual diyor ki;

    "This function sends out several HTTP headers depending on the configuration. See session_cache_limiter() to customize these headers."

    http://php.net/manual/en/function.session-start.php
    • shidaiko adlı üyenin fotoğrafı shidaiko
      özür dilerim. düşüncesizlik yaparak sadece ingilizce açıklamayı gönderdim. Türkçe çeviri;

      "Bu fonksiyon bazı HTML başlık bilgilerini gönderir. Bu başlıkları düzenlemek için session_cache_limiter fonksiyonunu inceleyin"

      verebileceğim birkaç "acil" çözüm:

      1. sayfa kaydedilirken BOM kullanılmamış olmasına dikkat et. yarım günümü yemişliği vardir.
      2. php.ini içerisindeki session.save_path değişkeninin geçerli bir dizini gösterdiğinden emin ol. ben bir faydasını göremedim ama belki sen görürsün.
      3. session_start fonksiyonundan önce ob_start(); kullanarak başlıkları önbelleğe alabilirsin.
      10 yıl önce yazılmış
    • muhibbi adlı üyenin fotoğrafı muhibbi
      Çok teşekkürler, sorun BOM ile ilgiliymiş. utf8 with bom seçeneğini seçerek yeniden kodladığımda sorunun çözüldüğünü gördüm.
      10 yıl önce yazılmış

Cevaplar

  • Kemal adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    63 cevap - 10 soru
    <?php 
    ob_start();
    session_start();
    $_SESSION['kullanici']='name'; 
    ?>
    

    Şeklinde Deneyebilirmisiniz ama session kullanıcı değerine name değeri yerine kullanıcı adını atamanız gerekir bu şekilde pek parlak bi fikir olduğunu söyleyemeyeceğim.
  • fka adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    70 cevap - 0 soru
    Session start etmek için hiç bir veri göndermemeniz gerekir, herhangi bir veri gönderimi header'lerin bittiğini bildirir, fakat session start etmek için header bitmemiş olması gerekir.

    Sorun bu nedenden ötürü kaynaklanıyor, headerler senin yakalayamadığın bir nedenden ötürü veri gönderimi yapıyor, ob_start() veriyi göndermeden önce sakladığı için headerler gönderim yapmaz. ve BOM dosya türünde senin görmediğin veriler gidebilir.