<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.network.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'tr',
  ),
  'this' => 
  array (
    0 => 'function.header.php',
    1 => 'header',
    2 => 'Ham bir HTTP başlığı g&ouml;nderir',
  ),
  'up' => 
  array (
    0 => 'ref.network.php',
    1 => 'Ağ İşlevleri',
  ),
  'prev' => 
  array (
    0 => 'function.getservbyport.php',
    1 => 'getservbyport',
  ),
  'next' => 
  array (
    0 => 'function.header-register-callback.php',
    1 => 'header_register_callback',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'tr',
    'path' => 'reference/network/functions/header.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.header" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">header</h1>
  <p class="verinfo">(PHP 4, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">header</span> &mdash; <span class="dc-title">Ham bir HTTP başlığı gönderir</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.header-description">
  <h3 class="title">Açıklama</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>header</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$başlık</code></span>, <span class="methodparam"><span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span> <code class="parameter">$değiştir</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong></span></span>, <span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$http_yanıt_kodu</code><span class="initializer"> = 0</span></span>): <span class="type"><a href="language.types.void.php" class="type void">void</a></span></div>

  <p class="para rdfs-comment">
   <span class="function"><strong>header()</strong></span> işlevi ham bir  <abbr title="Hypertext Transfer Protocol">HTTP</abbr>
   başlığı göndermek için kulanılır. <abbr title="Hypertext Transfer Protocol">HTTP</abbr> başlıkları
   hakkında ayrıntılı bilgi edinmek için
   <a href="https://datatracker.ietf.org/doc/html/rfc2616" class="link external">&raquo;&nbsp;HTTP/1.1 Belirtimi</a>&#039;ne bakınız.
  </p>
  <p class="para">
   <span class="function"><strong>header()</strong></span> işlevinin normal HTML etiketleri ve dosya veya
   PHP&#039;deki boş satırlar dahil herhangi bir çıktıdan önce çağrılması
   gerektiği unutulmamalıdır. <span class="function"><strong>header()</strong></span> çağrısından
   önce sıkça yapılan hatalar: kodu <span class="function"><a href="function.include.php" class="function">include</a></span>,
   <span class="function"><a href="function.require.php" class="function">require</a></span> veya başka bir dosya okuma işlevi ile okumak;
   betik HTML&#039;ye gömülüyse betiğin veya dosyanın başında boşluklar veya boş
   satırlar bulunması.
   <div class="informalexample">
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000">&lt;html&gt;<br /><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/* Bu bir hata verecektir.  header() çağrısından<br /> * önce hiçbir satırlar olmamalıydı. */<br /></span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">'Location: http://localhost/'</span><span style="color: #007700">);<br />exit;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.header-parameters">
  <h3 class="title">Bağımsız Değişkenler</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">başlık</code></dt>
     <dd>
      <p class="para">
       Başlık dizgesi.
      </p>
      <p class="para">
       İki özel çağrı biçimi vardır. İlki, HTTP durum kodu gönderilirken
       kullanılır ve başlık &quot;<code class="literal">HTTP/</code>&quot; dizgesi ile başlar
       (harf büyüklüğüne duyarsız). Örneğin Apache, eksik dosyalarla ilgili
       sorunlar için (<code class="literal">ErrorDocument</code> yönergesi ile) bir PHP
       betiğini kullanacak şekilde yapılandırılmışsa betikte uygun bir
       durum kodu üretmek için bu biçim kullanılabilir.
      </p>
      <p class="para">
       <div class="informalexample">
        <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">// Bu örnekte "HTTP/" için özel bir durum gösterilmiştir.<br />// Her durumda geçerli olacak kullanım şöyle olurdu:<br />// 1. header($_SERVER["SERVER_PROTOCOL"] . " 404 Not Found");<br />//    (Hala HTTP/1.0 kullanan istemci için http durum iletisinin yerini alır)<br />// 2. http_response_code(404); (öntanımlı iletiyi kullanmak için)<br /></span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">"HTTP/1.1 404 Not Found"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
        </div>

       </div>
      </p>
      <p class="para">
       İkinci özel biçim &quot;Location:&quot; başlığıdır.  Bu başlığın tarayıcıya geri
       gönderilmesinden başka, bir <code class="literal">201</code> veya
       <code class="literal">3xx</code> durum kodu henüz atanmamışsa ayrıca bir
       <code class="literal">REDIRECT</code> (302) durum kodu da gönderilir.
      </p>
      <p class="para">
       <div class="informalexample">
        <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />header</span><span style="color: #007700">(</span><span style="color: #DD0000">"Location: http://mesela.dom/"</span><span style="color: #007700">); </span><span style="color: #FF8000">/* Tarayıcıyı yönlendir */<br /><br />/* Yönlendirme sonrası herhangi bir kod çalıştırılmamalıdır. */<br /></span><span style="color: #007700">exit;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
        </div>

       </div>
      </p>
     </dd>
    
    
     <dt><code class="parameter">değiştir</code></dt>
     <dd>
      <p class="para">
       <code class="parameter">değiştir</code> bağımsız değişkeni isteğe bağlı olup,
       önceki başlığın mı değiştireceğini yoksa aynı türde ikinci bir başlık
       daha mı ekleneceğini belirtilir. Öntanımlı davranış mevcudu
       değiştirmektir. İşleve ikinci bağımsız değişken olarak <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>
       aktarılırsa aynı türde çok sayıda başlık bulunması için işlevin
       zorlanması sağlanabilir.
       Örnek:
      </p>
      <p class="para">
       <div class="informalexample">
        <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />header</span><span style="color: #007700">(</span><span style="color: #DD0000">'WWW-Authenticate: Negotiate'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">'WWW-Authenticate: NTLM'</span><span style="color: #007700">, </span><span style="color: #0000BB">false</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
        </div>

       </div>
      </p>
     </dd>
    
    
     <dt><code class="parameter">http_yanıt_kodu</code></dt>
     <dd>
      <p class="para">
       HTTP yanıt kodunu belirtilen değere zorlar. Bu bağımsız değişken sadece
       <code class="parameter">başlık</code> bağımsız değişkeni boş değilse etkilidir.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.header-returnvalues">
  <h3 class="title">Dönen Değerler</h3>
  <p class="para">
   Hiçbir değer dönmez.
  </p>
 </div>


 <div class="refsect1 errors" id="refsect1-function.header-errors">
  <h3 class="title">Hatalar/İstisnalar</h3>
  <p class="para">
   Gönderilecek başlığın zamanlamasındaki bir başarısızlık,
   <span class="function"><strong>header()</strong></span> işlevinin <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong>
   seviyesinde bir hata çıktılamasına sebep olur.
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.header-examples">
  <h3 class="title">Örnekler</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Örnek 1 - İndirme söyleşisi</strong></p>
    <div class="example-contents"><p>
     Kulanıcının, gönderilen veriyi (örneğin, bir PDF dosyası) kaydetmesi
     için uyarılması istenirse, bir dosya ismi belirtmek ve tarayıcının bir
     dosya kayıt söyleşisini göstermesini sağlamak için
     <a href="https://datatracker.ietf.org/doc/html/rfc2183" class="link external">&raquo;&nbsp;Content-Disposition</a> başlığı
     kullanılabilir.
    </p></div>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">// Bir PDF çıktılayacağız<br /></span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">'Content-Type: application/pdf'</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Dosya ismi indirilen.pdf olsun<br /></span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">'Content-Disposition: attachment; filename="indirilen.pdf"'</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Okunacak PDF dosyası<br /></span><span style="color: #0000BB">readfile</span><span style="color: #007700">(</span><span style="color: #DD0000">'original.pdf'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
  <p class="para">
   <div class="example" id="example-2">
    <p><strong>Örnek 2 - Yönergelerin önbelleklenmesi</strong></p>
    <div class="example-contents"><p>
     PHP betikleri çoğunlukla istemcinin tarayıcısı veya sunucuya aracılık
     eden vekiller tarafından önbelleğe alınmaması gereken dinamik içerikler
     üretirler. Çoğu vekilin veya tarayıcının önbellekleme işlemini
     kapatması şöyle sağlanabilir:
    </p></div>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />header</span><span style="color: #007700">(</span><span style="color: #DD0000">"Cache-Control: no-cache, must-revalidate"</span><span style="color: #007700">); </span><span style="color: #FF8000">// HTTP/1.1<br /></span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">"Expires: Sat, 26 Jul 1997 05:00:00 GMT"</span><span style="color: #007700">); </span><span style="color: #FF8000">// Geçmişte bir tarih<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>
     <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
      <p class="para">
       Yukarıdaki başlıkların hiçbiri çıktılanmadığı halde sayfalar
       önbelleğe alınmıyor olabilir. Kullanıcının kendi tarayıcısının
       önbellekleme ile ilgili öntanımlı davranışını değiştirebileceği çok
       çeşitli seçenekleri olabilir. Yukarıdaki başlıkları göndererek bu tür
       olası ayarları geçersiz kılınabilir.
      </p>
      <p class="para">
       Ayrıca, oturumları kullanırken önbellekleme ile ilgili doğru
       başlıkların otomatik olarak üretilmesi için
       <span class="function"><a href="function.session-cache-limiter.php" class="function">session_cache_limiter()</a></span> işlevi ve
       <code class="literal">session.cache_limiter</code>
       yapılandırma yönergesi kullanılabilir.
      </p>
     </p></blockquote>
    </p></div>
   </div>
  </p>
  <p class="para">
   <div class="example" id="example-3">
    <p><strong>Örnek 3 - Çerez atamak</strong></p>
    <div class="example-contents"><p>
     <span class="function"><a href="function.setcookie.php" class="function">setcookie()</a></span> çerezleri ayarlamanın kolay bir yolunu
     sağlar. <span class="function"><a href="function.setcookie.php" class="function">setcookie()</a></span> işlevinin desteklemediği
     öznitelikleri içeren bir çerezi ayarlamak için <span class="function"><strong>header()</strong></span>
     işlevi kullanılabilir.
    </p></div>
    <div class="example-contents"><p>
     Bu örnekte <code class="literal">Partitioned</code> özniteliğini içeren bir çerez
     atanmaktadır.
    </p></div>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />header</span><span style="color: #007700">(</span><span style="color: #DD0000">'Set-Cookie: name=value; Secure; Path=/; SameSite=None; Partitioned;'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
 </div>


 <div class="refsect1 notes" id="refsect1-function.header-notes">
  <h3 class="title">Notlar</h3>
  <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
   <p class="para">
    Başlıklar sadece onları destekleyen bir SAPI kullanımdaysa erişilebilir ve
    çıktılanabilir olacaktır.
   </p>
  </p></blockquote>

  <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
   <p class="para">
    Bu işlevi çağırmadan önce, tarayıcıya gönderilene
    kadar sunucuda bekletilmek üzere çıktı bir tampona yazılabilir. Bu
    işlemi betik içinde <span class="function"><a href="function.ob-start.php" class="function">ob_start()</a></span> ve
    <span class="function"><a href="function.ob-end-flush.php" class="function">ob_end_flush()</a></span> işlevleri çağrılarak veya
    <code class="literal">output_buffering</code> yapılandırma yönergesi <var class="filename">php.ini</var>
    veya sunucu yapılandırma dosyalarında belirtilerek yapılabilir.
   </p>
  </p></blockquote>
  <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
   <p class="para">
    <span class="function"><strong>header()</strong></span> çağrısının ilk çağrı olup olmamasından
    bağımsız olarak istemciye ilk olarak daima HTTP durum başlığı satırı
    gönderilir. <span class="function"><strong>header()</strong></span> işlevi hiçbir HTTP başlığı
    gönderilmeden önce yeni bir durum satırı ile kullanılırsa bu durum
    satırı geçersiz kılınabilir.
   </p>
  </p></blockquote>
  <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
   <p class="para">Çoğu çağdaş istemci
    <a href="http://tools.ietf.org/html/rfc7231#section-7.1.2" class="link external">&raquo;&nbsp;Location:</a>
    için bağımsız değişken olarak göreli bir <abbr title="Uniform Resource Identifier">URI</abbr> kabul
    etmektedir, fakat bazı eski istemciler şema, konak ismi ve mutlak dosya yolu
    içeren mutlak bir URI gerektirir. Bir mutlak
    <abbr title="Uniform Resource Identifier">URI</abbr>&#039;yi bir göreli <abbr title="Uniform Resource Identifier">URI</abbr>&#039;ye
    dönüştürmek için örnekteki gibi <var class="varname"><a href="reserved.variables.server.php" class="classname">$_SERVER['HTTP_HOST']</a></var>,
    <var class="varname"><a href="reserved.variables.server.php" class="classname">$_SERVER['PHP_SELF']</a></var> ve <span class="function"><a href="function.dirname.php" class="function">dirname()</a></span>
    kullanılabilir:
    <div class="informalexample">
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/* Bulunulan dizinde başka bir sayfaya yönlendirelim */<br /></span><span style="color: #0000BB">$konak  </span><span style="color: #007700">= </span><span style="color: #0000BB">$_SERVER</span><span style="color: #007700">[</span><span style="color: #DD0000">'HTTP_HOST'</span><span style="color: #007700">];<br /></span><span style="color: #0000BB">$yol   </span><span style="color: #007700">= </span><span style="color: #0000BB">rtrim</span><span style="color: #007700">(</span><span style="color: #0000BB">dirname</span><span style="color: #007700">(</span><span style="color: #0000BB">$_SERVER</span><span style="color: #007700">[</span><span style="color: #DD0000">'PHP_SELF'</span><span style="color: #007700">]), </span><span style="color: #DD0000">'/\\'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$ek </span><span style="color: #007700">= </span><span style="color: #DD0000">'sayfam.php'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">"Location: http://</span><span style="color: #0000BB">$konak$yol</span><span style="color: #DD0000">/</span><span style="color: #0000BB">$ek</span><span style="color: #DD0000">"</span><span style="color: #007700">);<br />exit;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
   </p>
  </p></blockquote>
  <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
   <p class="para">Oturum kimliği,
    <a href="session.configuration.php#ini.session.use-trans-sid" class="link">session.use_trans_sid</a>
    etkin olsa bile Location başlığı ile aktarılmaz. <strong><code><a href="session.constants.php#constant.sid">SID</a></code></strong>
    sabiti kullanılarak elle aktarılmalıdır.
   </p>
  </p></blockquote>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.header-seealso">
  <h3 class="title">Ayrıca Bakınız</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="function.headers-sent.php" class="function" rel="rdfs-seeAlso">headers_sent()</a> - Başlıklar g&ouml;nderilmiş mi, g&ouml;nderilmişse nerede g&ouml;nderilmiş diye bakar</span></li>
    <li><span class="function"><a href="function.setcookie.php" class="function" rel="rdfs-seeAlso">setcookie()</a> - Bir &ccedil;erez g&ouml;nderir</span></li>
    <li><span class="function"><a href="function.http-response-code.php" class="function" rel="rdfs-seeAlso">http_response_code()</a> - HTTP yanıt kodunu tanımlar veya siler</span></li>
    <li><span class="function"><a href="function.header-remove.php" class="function" rel="rdfs-seeAlso">header_remove()</a> - Evvelce tanımlanmış başlıkları siler</span></li>
    <li><span class="function"><a href="function.headers-list.php" class="function" rel="rdfs-seeAlso">headers_list()</a> - G&ouml;nderilmiş (veya g&ouml;nderilmeye hazır) yanıt başlıklarının listesiyle d&ouml;ner</span></li>
   </ul>
  </p>
 </div>


</div><?php manual_footer($setup); ?>