Hayır önceki çıkış, ama başlık yönlendirme PHP çalışmıyor

3 Cevap php
header('Location: ' . $url);

Ben hiçbir önceki çıkış olduğunu kontrol ettik:

ob_start();

...
var_dump(ob_get_contents());
ob_flush();
header('Location: ' . $url);

çıkışlar:

string '' (length=0)

O zaman neden yönlendirme başarısız?

Ben error_log uyarı ve bildirimler çok görmek, ama doğru, tarayıcıya bir şey çıktı değil olarak bu sürece header() etkilemez rağmen?

UPDATE

Bazı günlükleri (gerçi ilgili olmamalıdır):

[Wed May 19 00:26:10 2010] [error] [client 127.0.0.1] PHP Deprecated:  Function eregi() is deprecated in D:\\Works\\general
[Wed May 19 00:26:10 2010] [error] [client 127.0.0.1] PHP Stack trace:, referer: http://localhost/cookie_usage.php
[Wed May 19 00:26:10 2010] [error] [client 127.0.0.1] PHP   1. {main}() D:\\Works\\login.php:0, referer: http://localhost/cookie_usage.php
[Wed May 19 00:26:10 2010] [error] [client 127.0.0.1] PHP   2. tep_redirect() D:\\Works\\login.php:33, referer: http://localhost/cookie_usage.php

3 Cevap

ob_flush() sends to the output buffer. (prints what is in the OB) That is considered output. you may want to use ob_clean()

it is also good practice to use exit() or die() after a header('location ...') call.

Ayrıca dosyanın sonunda boşluk bunu unutmayın.

Çoğunlukla ben hiç kullanmıyorum?> PHP dosyanın sonunda artık sadece açık bırakın

> Yine isteğe bağlıdır.

Ben birkaç gün önce de benzer sorunla karşı karşıya edildi. Ben başlık işlevi önce aramıştım dosyayı dahil php sonunda ekstra beyaz boşluk vardı. Ben o beyaz boşluk kaldırıldı ve o marş benim için çalışıyor.

that doesn't affect header() as long as it doesn't output anything to the browser,right?

Yanlış.