SORU
20 NİSAN 2009, PAZARTESİ


Nasıl PHP bir yönlendirme yapmak için?

PHP kullanarak farklı bir sayfa için bir kullanıcı yönlendirmek mümkün mü?

Kullanıcı www.example.com/page.php gider www.example.com/index.php nasıl yani bir meta yenileme kullanmadan yapayım? onları yönlendirmek istiyorum diyelim Mümkün mü?

Bu yetkisiz kullanıcılardan sayfaları korumak.

CEVAP
20 NİSAN 2009, PAZARTESİ


Varolan cevaplar artı kendi fikrimi söyleyeyim özeti:

1. Temel cevap

Kullanabilirsiniz header() fonksiyonu gönderme yeni bir HTTP Başlığı, ama bu olmalı gönderilen tarayıcı önce herhangi bir HTML veya metin (yani önce <!DOCTYPE ...> beyan, örneğin).

header('Location: '.$newURL);

2. Önemli detaylar

() ölür

header("Location: http://example.com/myOtherPage.php");
die();

die()kullanmak gerekir mi?: The Daily WTF

Mutlak URL

URL mutlak olmalıdır. RFC 2616 bkz. Ama çoğu durumda, göreli bir URL de kabul edilecektir.

Durum Kodları

PHP "Konum"Başlığı hala HTTP 302-yönlendirme kodu kullanır, ama bu kullanmanız gereken kişi değil. Ya 301 (kalıcı yönlendirme) veya 303 () diğer düşünmelisiniz.

Not: 303-Başlık ile uyumsuz W3C mentions "çok önceden HTTP/1.1 kullanıcı arayüzleri. Şu anda kullanılan tarayıcıların/1.1 kullanıcı arayüzleri HTTP. Bu örümcekler ve robotlar gibi diğer birçok kullanıcı arayüzleri için doğru değildir.

3. Belgeler

HTTP Başlıkları ve Başlığı() PHP işlevi

4. Alternatifleri

PECL package pecl kurulması gerekir http_redirect alternatif yöntem($url); kullanabilirsiniz.

5. Yardımcı İşlevler

Bu işlev, 303 durum kodu dahil değil:

function Redirect($url, $permanent = false)
{
    header('Location: ' . $url, true, $permanent ? 301 : 302);

    exit();
}

Redirect('http://example.com/', false);

Bu daha esnek

function redirect($url, $statusCode = 303)
{
   header('Location: ' . $url, true, $statusCode);
   die();
}

6. Geçici çözüm

Başlık belirtildiği gibi) yönlendirir bir şey yazılır önce. Genellikle invoked inmidst HTML çıkış başarısız. HTML başlık geçici bir çözüm (çok profesyonel!) kullanabilirsiniz sonra gibi:

 <meta http-equiv="Location" content="http://example.com/">

Veya Javascript yönlendirme bile.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DroidModderX ROOT Master

    DroidModderX

    14 ŞUBAT 2011
  • Shantanu Sood

    Shantanu Soo

    3 Kasım 2008
  • Turkish Airlines

    Turkish Airl

    11 AĞUSTOS 2006