Başka bir dosya fonksiyon PHP dön

4 Cevap php

Ben statik fonksiyonuyla kullanıcı adında bir sınıf kullanıcının oturumu ise kullanıcı oturum ve gerçek ise false döndürür () loginRequired var. Ayrıca ben onlar içeriği görebilmek için giriş yapmalısınız siteyi kullanarak kişiyi söyler oluşturulan bir hata sınıfının bir hata ekler.

Fikir kullanıcı oturum açmış olmanız gerektirecek her işlevin üst için, biz bu kod yazmak olmasıdır:

if(User::loginRequired()) return;

Hangi irade çıktı hatası ve derhal işlevi dönmek. Ben doğrusu, ancak bu yapardı:

User::loginRequired();

Ve loginRequired işlev içinde arama fonksiyonu dönmek ... ama loginRequired () ayrı bir dosyada ayrı bir sınıf olduğunu, çünkü bu iş olmaz. O loginRequired içinde, loginRequired (çağırır fonksiyonu) dönmek () mümkün mü?

Teşekkürler.

4 Cevap

Ben açık kaynak uygulamalar bir dizi bu işlemek gördüm yolu yönlendirme içeri kullanıcı oturum açmış olmamalı gerçekleştiren bir require_login() fonksiyonuna sahip gereğidir

Ben ancak, exceptions kullanarak bakmak isteyebilirsiniz, istediğiniz tam olarak ne yapabilirim emin değilim. Bu User :: loginRequired fonksiyonunda bir istisna ve bazı yüksek düzeyde yakalamak için izin verecek. Ayrıca exit() PHP fonksiyonunu kullanarak bakmak olabilir.

Gerçek sayfa İÇİNDE içerik dinamik mi? Demek istediğim, ben sadece giriş sayfasına başka bir şey görmek için kimlik doğrulaması gerekiyor, ya da ben değilim zaman vb, başka şeyler ve açmış olduğum zaman bazı şeyleri görüyorsunuz? Sunucunun bütün dizin / bölüm günlük ekran arkasında olup olmadığını hemen herkes, vb giriş yapmadın yönlendirir dizinin. Htaccess dosyasına bir şey eklemek çünkü

Diğer yandan, oturum durumunu tutan bu dosya kullanıcı dahil dosyası sadece oturum durumunu yerine tüm içeriğini dönen, görüntülediği ne olursa olsun sayfa / script içine dahil olabilir. Bu includes Örnek 5 altında, "(dahil) ve dönüş () deyimi" kapsamındadır. Eğer bu olsaydı, sizin gibi bir üçlü durum kullanabilirsiniz:

$logged_in = (include('userlogin.php') == TRUE) ? TRUE : FALSE;

Ve sonra her korumalı işlevi gibi bir şey var:

global $logged_in;

Hala tüm işlevini saran bir IF fıkra ile sıkışmış, ama en azından giriş statüsüne sahiptir. Eğer işlev içinde IF kurtulmak istedim, her zaman koşullu işlevini çağırma yapabilir. Gibi:

$content = ($logged_in == TRUE) ? some_function() : redirect_User();

Sonra tekrar, ben sadece 2 ay önce bu şeyler öğrenmeye başladı ve hala sınıfları ve nesneleri anlamıyorum, bu yüzden yol baz kapalı olabilir.

OT: Lütfen açıklanan amaç tek ben) isLoggedIn (metodun adını değiştirmeyi düşünün. LoginRequired denilen bir yöntem () gizli içeriği koruyarak daha iyi olurdu.