PHP'nin başlığı anlamak için ()

3 Cevap php

Where do you use the command header()?

Ben işlemcileri / handle_login.php de aşağıdaki kodu var. Kullanıcı index.php hangi başlangıç ​​yeridir gelen siteye gitti.

 if(!$logged_in){
     header("Location: index.php");                                                                          
     die("You are not logged_in");
 }

Eğer fıkra doğruysa başlık bana koyar beri için için handlers/index.php yerine index.php., Ben, bir 404 hatası alıyorum

3 Cevap

Ben nilamo ve kont ile kabul ederken, ben daha büyük bir resim verebilir umut:

Using relative paths can have very strange effects depending on where the browser 'thinks' it is in your site hierarchy. For example, assume the site has an index file '/index.php' but is configured to accept module and action in the URI path. You may very well have a url that looks like:

http://www.yoursite.com/forms/contact/

Bu durumdan, benzer bir başlığı dönen:

header("Location: index.php");

çok iyi isteğine denemek için tarayıcı neden olabilir

http://www.yoursite.com/forms/contact/index.php

Hangi ne istediğinizi açıkça değildir. Bu nedenle, yukarıda tavsiye edildiği gibi '/ index.php' kullanın veya mümkün olduğunda daha iyi tam URL kullanmak için genellikle daha bulunuyor.

Umarım bu yardımcı olur.

Index.php tam URL değil, sadece dosya adı, konumu ayarlayın. Php.net göre, bu, bunu yapmak için göreceli yolları kullanmak değil doğru yoldur. İşte bir örnek:

 if(!$logged_in){
     header("Location: http://exampledomain.com/index.php");
     die("You are not logged_in");
 }

'/' Kullanmayı deneyin:

if(!$logged_in){
     header("Location: /index.php");                                                                          
     die("You are not logged_in");
 }

Bir kesme işareti olmadan, o anki dizinde bir şey bahsediyorsan varsayılır. Önünde bu çizgi yapışmasını, açıkça sitenin kökünde dosyasına başvuruyorsunuz. Sayfa 'index.php' olduğundan, sizin gibi kolayca "başlığı (': / Yeri')" kullanabilirsiniz.