Genellikle ziyaretçileri istenen ve istenmeyen olarak ayırmak ve sitenin bazı sayfalarını yalnızca kullanıcı adı ve şifresi olanlara görme fırsatı vermek gerekir. Bu, örneğin sunucu tarafı komut dosyası dili PHP'de nasıl yapılır?
Talimatlar
Aşama 1
Sayfalarınızı yetkisiz ziyaretçilerden korumanın en kolay yolunu birlikte düzenleyelim. Ziyaretçinin yetkili olup olmadığı hakkında bilgi sahibi oturum olacaktır. Oturum, bir tarayıcıdaki çerezlerin bir analogudur, tek farkları bizim bilgisayarda değil sunucuda oluşturulmalarıdır. Ve çerezlerle aynı amaç için kullanılırlar - biz bir sitenin sayfasından diğerine geçerken hakkımızda farklı bilgileri depolamak için. Tarayıcıyı kapattığımızda sunucu bu oturumu yok eder ve bir sonraki oturum açışımızda yeni bir oturum oluşturur. Kullanıcının oturuma önceden giriş yapıp yapmadığını kaydetmek için bu sunucu mekanizmasını kullanırız. Bu bilgileri okurken, bir ziyaretçi bir sayfa istediğinde, php-script ya şifre korumalı sayfalara erişim açar ya da bir kullanıcı adı ve şifre girmeyi teklif eder.
Adım 1: Kullanıcı adı ve şifre girmek için bir sayfa oluşturun. Yetkilendirme formunun HTML kodu en basit haliyle şöyle görünebilir:
Oturum aç:
Parola:
Burada (dosyanın en başına) ziyaretçi tarafından girilen kullanıcı adı ve şifrenin doğruluğunu kontrol edecek php kodunu ekleyeceğiz. Başta şunu yazacağız:
oturum_başlangıç();
Bu komut, bu ziyaretçi için henüz oluşturulmamışsa yeni bir oturum başlatır.
Ardından, oturumun 'userName' adında bir değişkeni olup olmadığını kontrol edelim - ziyaretçi zaten oturum açmışsa adı saklayacaktır. Böyle bir değişken varsa, ziyaretçiyi ana sayfaya (index.php) yönlendirin ve bu php betiğini çalıştırmayı bitirin:
if ($ _ SESSION ['kullanıcıAdı']) {
başlık ("Konum: index.php");
çıkış;
}
Kodun geri kalanı, yalnızca kullanıcı henüz doğru kullanıcı adını ve şifreyi girmediyse yürütülür. Hangi giriş ve şifrenin doğru kabul edilmesi gerektiğini belirtelim:
$ validName = 'Ben benim!';
$ validPass = 'gizli şifre';
Ardından formdan gönderilen değerlerin doğru değerlerle eşleşip eşleşmediğini kontrol ederiz. Formda POST veri aktarım yöntemini belirttiğimiz için $ _POST superglobal değişkeninden okunmaları gerekir:
if ($ _ POST ['userName'] == $ validName && $ _POST ['userPass'] == $ validPass) {
$ _SESSION ['userName'] = $ validName;
başlık ("Konum: index.php");
çıkış;
}
Burada küme parantezleri {} içindeki kod, kullanıcı adı ve şifrenin doğru değerleriyle yürütülecektir. Satırda $ _SESSION ['userName'] = $ validName; ma oturumda, artık yetkili kullanıcının oturum açma bilgilerini içeren 'userName' adlı bir değişken yazıyoruz. Bu, mevcut oturumu geçerli olduğu sürece erişimin her yerde kendisine açık olduğunun işareti olacaktır.
Ve forma yanlış veri girilmesi durumunda uygun mesajı ekleyin:
başka yankı"
Giriş veya şifre yanlış!
;
Login.php adlı bir dosyaya kaydedilmesi gereken tüm kodlar şöyle görünecektir:
<?php
oturum_başlangıç();
if ($ _ SESSION ['kullanıcıAdı']) {
başlık ("Konum: index.php");
çıkış;
}
$ validName = 'Ben benim!';
$ validPass = 'gizli şifre';
if ($ _ POST ['userName'] == $ validName && $ _POST ['userPass'] == $ validPass) {
$ _SESSION ['userName'] = $ validName;
başlık ("Konum: index.php");
çıkış;
}
başka yankı"
Giriş veya şifre yanlış!
;
?>
Oturum aç:
Parola:
Adım 2
Adım 2: Bir yetkilendirme bloğu oluşturun - parola koruması gerektiren her sayfaya bağlanacak ayrı bir dosya. Bu dosya sadece php kodunu içerecek, dolayısıyla uzantısı "php" olacak ve bu tür dosyalar için geleneğe göre ona bir isim vereceğiz - "auth", yani "auth.php". Ve burada da, <? Php etiketinin açılmasından hemen sonra, bir oturum başlatmak için bir talimat olmalıdır:
oturum_başlangıç();
Oturumda saklanan tüm değişkenleri $ _SESSION süper küresel dizisinden okuyabiliriz. "userName" değişkeninin değerini kontrol etmemiz gerekiyor - ziyaretçi henüz giriş yapmadıysa, dizide olmayacak ve onu kullanıcı adını ve şifresini girmesi için sayfaya yönlendireceğiz:
if (! $ _ SESSION ['yetkili']) {
başlık ("Konum: login.php");
çıkış;
}
auth.php dosyasına kaydedilmesi gereken tüm kodlar şöyle görünecektir:
<?php
oturum_başlangıç();
if (! $ _ SESSION ['admin']) {
başlık ("Konum: enter.php");
çıkış;
}
?>
Aşama 3
Adım 3: Bu dosyaları sunucuya kaydettikten sonra, yetkilendirme bloğuna bağlanmak için yetkisiz kullanıcılardan korunması gereken tüm php sayfalarında kalacaktır. Yani, her php dosyasının en başına şu kodu eklemeniz gerekecek:
<?php
"auth.php" gerektirir;
?>
Ve erişim şifresini değiştirmek için login.php dosyasındaki bu değişkenlerin değerlerini değiştirmeniz gerekecektir:
$ validName = 'Ben benim!';
$ validPass = 'gizli şifre';
$ validName - giriş, $ validPass - şifre.