Cevaplara yorum özelliği eklendi. Lütfen tartışmalar için yorumları kullanın. Tüm güncellemeler

Yaptığım Üyelik Sistemi Hakkında

Merhabalar. Yaptığım üyelik sisteminde eğer kullanıcı giriş yapmış ise onu admin'e yönlendir şekilde yaptım. Bir de mesela şunu kontrol etdim. Eğer ki, kullanıcı yok ise yani kullanıcı diye bir session yok ise onu index.php ye yönlendir, var ise admin.php ye yönlendir. Ama mesela adam gelip, url den admin.php de logout butonuna basmadan direct URL kısmında admin.php yi sildiği zaman çıkış yapmadan login paneli görebiliyor. Yani kısacası ben nasıl ayarlaya bilirim ki, adam URL'den /admin.php yi sildiği zaman onu index.php değil, direct var olduğu sayfada kalsın. Bunu nasıl sağlarım ?


index.php

<?php


session_start();


try {
    $db = new PDO('mysql:host=localhost;dbname=test','root','');
} catch (PDOException $e) {
    die($e->getMessage());
}


$query = $db->prepare('SELECT * FROM users WHERE user_name = ? && user_password = ?');


if ($_POST) {
    $username = $_POST['username'];
    $password = $_POST['password'];


    $query->execute([
        $username, $password
    ]);
    $row = $query->fetch(PDO::FETCH_ASSOC);


    if ($query->rowCount() > 0) {
        $_SESSION['user'] = $row['user_name'];
        header('Location:admin.php');
    }


}
?>
<form action="" method="post">
    <table>
        <tr>
            <td><input type="text" name="username" autocomplete="off"></td>
        </tr>
        <tr>
            <td><input type="password" name="password"></td>
        </tr>
        <tr>
            <td><button type="submit">Log In</button></td>
        </tr>
    </table>
</form>


admin.php

<?php
session_start();
if (!isset($_SESSION['user'])) {
    header('Location:index.php');
} else {
    echo 'Welcome ' . $_SESSION['user'] . '<a href="logout.php">[Logout]</a>';
}
?>


logout.php

<?php
session_start();
session_destroy();
header('Location:index.php');
?>
3

Cevaplar (3)

İşlem devam ediyor, lütfen bekleyin..
Bayram Arif
Doğru Cevap
@Bayramito
2 ay önce [Güncellendi]

Görünmesini istemediğin panelde şöyle bir kontrol yap (-ki heralde login.php den bahsediyorsun)

if (isset($_SESSION['user'])) {
    header('Location:'.$_SERVER['HTTP_REFERER']);
} else {
    session_start();
session_destroy();
header('Location:index.php');

}


$_SERVER['HTTP_REFERER']

yerine direkt bir lokasyon da verebilirsin, referer geldiği yere gönderir kullanıcıyı atıyorum adminde adam mesela, session da da user var ve admin i silip login yazdığı zaman url de, bu kontrol varsa login de session da varsa admin kısmına geri döner...

Cevapla @rufiqcavadov2 ay önce
@Bayramito, Denedim ama olmadı.
İşlem devam ediyor, lütfen bekleyin..
Talha AKÇA
@talhaakca
2 ay önce

login.php ne girişte bir kontrol yaptıracaksın. eğer kullanıcı giriş yapmış ise tekrar admin.php e yönlendir diye.

şu şekilde oturum açmışmı diye kontrol ettirebilirsin sayfa başında

if(!isset($_SESSION["giris"]))
{
echo "<center>Bu sayfayı görüntülemek için giriş yapmalısınız.</center>";
header("Refresh: 4; url= admin.php");
}

Cevapla @rufiqcavadov2 ay önce
@talhaakca, Hocam ben yapamadım.
Cevapla @talhaakca2 ay önce
sayfanın en başına session_start tan sonraya ekliyeceksin sessionuda kendininkine göre ekledinmi çalışır
İşlem devam ediyor, lütfen bekleyin..
Rufiq Cavadov
@rufiqcavadov
2 ay önce

Herkese teşekkür ederim. Sorunu şu şekilde çözdüm. Görenmesini istemediğim sayfa index dosyasıydı. Bu sayfada şu şekilde kontrol etdim.


<?php

if (isset($_SESSION['user']) {
  header('Location:admin.php');  
}

?>
İşlem devam ediyor, lütfen bekleyin..

Cevap yaz Sadece sorunun cevabını yazın