Belirli bir dizindeki herhangi bir dosyada oturum açmamış olan tüm kullanıcıları yeniden yönlendirmenin bir yolunu arıyorum.PHP kullanıcılara yönlendirme yapmıyorsa
admin
adlı bir dizim var.
Sadece giriş yapan bir kullanıcı kendim olacaktır.
Oturum açıp açmadığımı ve sonra yönlendirme yapıp yapmadığımı kontrol etmek için böyle bir komut dosyası kullanıyorum.
if(isset($_SESSION['user']) {
if($_SESSION['user'] == "username") {
echo "Welcome, " . $_SESSION['user'];
}
else {
header("Location: index.php");
}
}
Oldukça basit. Oldukça düz ileri. Herhangi bir hassas veriyle ilgilenmediğim için ekstra güvenlik gerekmiyor ve yönetici sayfalarım sitemin nasıl çalıştığına müdahale edemiyor.
Ancak, belirli bir admin
dizini için nasıl bir yönlendirme oluşturabilirim?
Bu script, her bir sayfada yer alan functions.php
dosyamda yer almaktadır. Bu nedenle, bu dizinin dışındaki her dosyayı hariç tutmak veya bir dizi kullanmak ve yalnızca günlüğe kaydedilmedikçe görüntülenememesi gereken sayfaları listelemek için bir yönteme ihtiyacım var.
Bazı ince ayarlarla, böyle bir şeyin işe yarayacağını düşünüyordum.
İki index.php
dosyam var ise sorun nedir? Ana dizin ve alt dizinlerim için bir tane mi?
Komut dosyasına $directory = "admin/";
ekledim, ancak bu dosyalar yalnızca bu dizinde bulunuyorsa yeniden yönlendirmek için bunu nasıl yapacağımı bilmiyorum.
Uyarı: Bu örnekleri aceleyle yazdım, böylece başka hataları olabilir. Üzgünüm eğer yaparlarsa.
if(isset($_SESSION['user']) {
if($_SESSION['user'] == "username") {
echo "Welcome, " . $_SESSION['user'];
}
else {
$directory = "admin/";
$redirect[] = array();
$redirect[] = "page1.php";
$redirect[] = "page2.php";
if (in_array(($_SERVER["SCRIPT_FILENAME"], $redirect)) {
header("Location: index.php");
}
}
}
Dizine kodu nasıl ekleyebilirim?
Ama bu admin.php gibi admin adında bir script mi arıyor? –
iirc, kökten gelen yolu içermeli, bunun değerini ekleyerek bunu deneyebilirsiniz. ya da bir print_r ($ _ SERVER); ' – Garytje
Şimdi okudum okudum bunu biraz anlıyorum. Ben bir dizi kullanmaya devam ediyorum çünkü bir dosyaya yeniden yönlendirmek istemiyorum bu yüzden gelecekteki 'admin' dizininde bir ya da iki dosyaya sahip olabilirsiniz. –