PHP / XHTML.

4 Cevap php

PHP geliştirme içeren bir hızlı soru, ben daha karmaşık siteleri geliştirmek olarak bu daha fazla merak edilecek gibi görünüyor. Temelde biz temel PHP / XHTML gelen (mesajlaşma sistemi) söylüyorlar. Ben (kullanıcı giriş olup olmadığını kontrol edin kullanıcı vb doğru izinlere sahip olup olmadığını kontrol) üst denetimleri gerçekleştirmek. Kimlik doğrulama başarısız olursa 'işlevi: Sonra' başlığı ('www.abc.com konum) kullanın. Soru Ben büyük bir 'başka' bloğunda gelen kodun geri kalanını yazmak ya da sadece standart html kullanmak yok edilir. Ben 'başlık' işlevini kullandıktan sonra herhangi bir kod koymak için kötü olma konusunda bir yerde okumuştum.

4 Cevap

Sadece başlık ile takip

exit();

Bir sorun olmaz daha.

see third example here

Ayrıca böyle büyük bir yankı gerekmez isterseniz, bu lutfen böyle html yankı:

<?php
  //php stuff
  if(test){
?>

   html here

<?php
  }
  else{
?>

   other html

<?php
  }
?>

Eğer kötü okuma nedeni, istemciler have Location: abc başlık onurlandırmak için kalmamasıdır - böylece onları veri göndermeye devam eğer onlar sadece belki mümkün hale göstermek olabilir Kullanıcıların veri snoop.

Ne yapabilirsiniz, size Location: abc başlığını gönderdikten sonra, sadece bu gibi komut çıkmak olduğunu:

if(!$user->is_authenticated()) {
    header("Location: abc");
    exit();
}

Başlık yönlendirme sonra, bir şişman "dönüş" ya da "çıkış" koymak, böylece komut orada sona, daha sonra ise kapatın. Sonra mutlu Normalde yaptığınız gibi kod olabilir.

Bu bir başlık () çağrısı sonra bir şey koymak gerektiğini doğru değil. Ancak bir başlık çağrısının önce eğer herhangi çıktı, komut başarısız olacağını unutmamak gerekir. Content-type başlığı gibi üzerinde kod gerektirir başlıkları vardır. Bir yönlendirme başlığından sonra, ancak her zaman tarayıcı talimat uymayanlar durumda, bir çıkış () çağrısı koymak gerekir.

Ben 'başlık' işlevini kullandıktan sonra herhangi bir kod koymak için kötü olma konusunda bir yerde okumuştum.

Eğer bir başlık göndermek önce, tarayıcıya çıktı (HTML veya çiğ çıkış) göndermek için izin verilmez çünkü bu, tamamen doğru değil. Eğer bir başlık göndermeden önce çıkış göndermek DO zaman, bir 'Kafa zaten gönderildi' hatası alırsınız.

Bir başlık fonksiyonundan sonra, kalan alışkanlık idam edilecek, böylece dönüş veya çıkış gerekli değildir.

Sorusuna bir if / else yapısı içinde her şeyi koymak gerekiyorsa için: bazı ve giriş eğer bu da gerekli değildir, yapmanız gereken tek şey, temel bir onay değil ise, başlığını kullanarak bir yönlendirme yapmak olacak fonksiyonu. Geniş bir if / else yapısı gerek yok.