Trace yönlendirme döngüsü

4 Cevap php

Ben büyük bir PHP uygulama var. Ben bazı ayarları değişti sonra (tarayıcı tekrar tekrar aynı sayfaya yönlendiriliyorsunuz yani) bir yönlendirme döngü olsun.

Sorun (hangi çizgi hangi PHP dosyası) bu uygulamada yönlendirme neden olan komut bilmiyorum olmasıdır. header() işlevi aramaları takip etmek için bir yolu var mı? Ya da - daha iyi - PHP yönlendirmeler izlemek için bir yol var?

Thanks in advance,
Michel

4 Cevap

Sen XDebug ve bunun için işlevi-iz yeteneklerini kullanabilirsiniz. http://xdebug.org/docs/execution_trace diyor ki:

Xdebug allows you to log all function calls, including parameters and return values to a file in different formats.

Eğer çağrıyı bir kez bulunca koduna adım ve adım adım yürütebilirsiniz. Daha sonra Xdebug için bir önyüz gerekir, örneğin, netbeans.

Uygulama aynı URL'ye yönlendirmek ise, örneğin, yönlendirmeden önce kontrol etmelidir:

$_SERVER['REQUEST_URI_PATH'] = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
if ($targetHost !== $_SERVER['HTTP_HOST'] &&
    $targetPath !== $_SERVER['REQUEST_URI_PATH'] &&
    $targetQuery !== $_SERVER['QUERY_STRING']) {
    // redirect
}

Değil php ama HTTP. Evet, tabii ki. LiveHTTPHEaders firefox addon gibi, kendinizi herhangi bir HTTP sniffer almak, ve gerçek zamanlı olarak tüm yönlendirmeleri izleyebilirsiniz :)

Ne yapmanız gereken size ilgilenen ve daha sonra dosya ve satır sayısını bulmak için bir geri izleme yapmak işlevi geçersiz olduğunu.

Yerleşik işlevleri geçersiz kılma için: http://php.net/manual/en/function.override-function.php

Üreten BackTrace: http://php.net/manual/en/function.debug-backtrace.php