Login sayfasına yönlendirme nasıl yapılır?

snowxs3

Femtopat
Katılım
10 Kasım 2021
Mesajlar
7
Daha fazla  
Cinsiyet
Erkek
Sitem icin bir tane index.html hazırladım ındex'im de giriş yap yeri var eğer benim belirledigim şifreyi doğru girerse login.php ye aktaracak buraya kadar hepsi. Tamam sorun olan şey şu şifre yazmadan da giriş butonuna tikladigi zaman otomatik olarak gene login.php ye aktarıyor.
Kod:

Kod:
<Div class="cyle">

 <Form action="/login/" method="post">

 <İnput type="password" name="secret" class="textbox" placeholder="lütren giriş anahtarını girin." pattern="orneksifre">

 <İnput title="secret" Value="giriş" type="submit" class="button"></form>

 </Form>
 
Son düzenleyen: Moderatör:
Input'larınıza required attribute'u ekleyebilirsiniz:

HTML:
<input type="password" name="passwd" placeholder="Şifrenizi giriniz" required>

Bu sayede tarayıcı gerekli olan bu verileri girmeden formu submitlemeyecektir. Tabii bu çok kolay aşılabilecek bir yöntem, o yüzden asıl korumayı login.php'de yapmanız gerekir. Örneğin login.php'de bu veriler girilmediyse hata vermeniz ve işleme devam etmemeniz gerekir.

Login.php'de şu tarz bir kontrol yapılabilir:
PHP:
<?php
  
if ( $_POST )
{
    $username = trim($_POST["username"]);
    $passwd = trim($_POST["passwd"]);
  
    $errors = array();
  
    if ( !$username )
    {
        $errors[] = "Kullanıcı adı boş bırakılamaz!";
    }
  
    if ( !$passwd )
    {
        $errors[] = "Şifre boş bırakılamaz!";
    }
  
    if ( count($errors) == 0 )
    {
        // Hatamız yok.
        // İsleme devam edebiliriz.
    }else{
        // Hata var.
        // Kullanıcıya hatayı yansıtın.
    }
}else{
    die("Direct initializition is not allowed!");
}

Alınan verilerin doğru güvenlik filtrelerinden geçtiğinden emin olun, örnekte trim dışında herhangi bir filtreleme kullanmadım ben. Söz konusu sitenizin güvenliği olduğunda client-side tarafı kodlara hiçbir zaman güvenmeyin. Çünkü kötü niyetli kullanıcı bunları çok kolay şekilde değiştirebilir veya manipüle edebilir. Bu yüzden her ama her zaman PHP tarafında kontrol yapmanız gerekir.
 
Son düzenleme:
Input'larınıza required attribute'u ekleyebilirsiniz:

HTML:
<input type="password" name="passwd" placeholder="Şifrenizi giriniz" required>

Bu sayede tarayıcı gerekli olan bu verileri girmeden formu submitlemeyecektir. Tabii bu çok kolay aşılabilecek bir yöntem, o yüzden asıl korumayı login.php'de yapmanız gerekir. Örneğin login.php'de bu veriler girilmediyse hata vermeniz ve işleme devam etmemeniz gerekir.

Login.php'de şu tarz bir kontrol yapılabilir:
PHP:
<?php
 
if ( $_POST )
{
    $username = trim($_POST["username"]);
    $passwd = trim($_POST["passwd"]);
 
    $errors = array();
 
    if ( !$username )
    {
        $errors[] = "Kullanıcı adı boş bırakılamaz!";
    }
 
    if ( !$passwd )
    {
        $errors[] = "Şifre boş bırakılamaz!";
    }
 
    if ( count($errors) == 0 )
    {
        // Hatamız yok.
        // İsleme devam edebiliriz.
    }else{
        // Hata var.
        // Kullanıcıya hatayı yansıtın.
    }
}else{
    die("Direct initializition is not allowed!");
}

Alınan verilerin doğru güvenlik filtrelerinden geçtiğinden emin olun, örnekte trim dışında herhangi bir filtreleme kullanmadım ben. Söz konusu sitenizin güvenliği olduğunda client-side tarafı kodlara hiçbir zaman güvenmeyin. Çünkü kötü niyetli kullanıcı bunları çok kolay şekilde değiştirebilir veya manipüle edebilir. Bu yüzden her ama her zaman PHP tarafında kontrol yapmanız gerekir.
Dostum evet dediğin doğru ama sitem de 2 tane login olacağı için ve 2. Login.php ye baya bir edit yapıldı yani kolay kolay geçilmez
 
Baya bir edit yapıldı derken, boş mu kontrolü yapılmadı o zaman. Yoksa boş girdiğinde hata verdirirdiniz diye düşünüyorum.
HTML kısmında arkadaşın bahsettiği gibi required ile çözebilirsiniz.
PHP kısmında da login.php'de ekstradan boş olup olmadığını kontrol ederseniz geri yönlendirip hatayı bastırabilirsiniz.
 

Geri
Yukarı