Forum
Merhabalar,
Elimde bir sistem var ve üyelik sisteminde kullanıcı değiştirme problemi var. Yani kullanıcılar kendi panelindeyken başka birşeye tıkladığında başka birinin hesabındaymış gibi onun tüm bilgilerini görüp onun adına işlem yapabiliyor. Sürekli olan birşey değil, tamamen rastlantısal oluyor bu olay. Sunucu nignx kullanıyor ve PHP 7 versiyon
Login Sayfası
if( isset($_POST["giris_onay"]) && $_POST["giris_onay"] == "2" ) {
// strip_tags(html kaldır), trim(boşluk kaldır), dbtrim(tırnak sorunu)
$username = strip_tags(trim(dbtrim($_POST["username"])));
$password = strip_tags(trim(dbtrim($_POST["password"])));
// şifrelenmiş parola
$hash = create_password($password);
if( dbcount("id", "uyeler", "username='".($username)."' AND password='".($hash)."'") <= 0 ) {
$mesaj = "<div id=\"blok\"><p><font style=\"color:red;\">Böyle bir kullanıcı bulunmuyor!</font></p></div>";
} else if( dbresult("SELECT onaylimi FROM uyeler WHERE username='".($username)."' AND password='".($hash)."'") != '1' ) {
$mesaj = "Hesabınızı aktif etmelisiniz! E-Posta adresinizi kontrol edin.";
} else if (dbresult("SELECT ban FROM uyeler WHERE username='".($username)."' AND password='".($hash)."'") == '1') {
$mesaj = "<div id=\"blok\"><p><font style=\"color:orange;\">Hesabınız engellenmiştir.</font></p></div>";
} else {
// giriş yap
$result = dbquery("SELECT * FROM uyeler WHERE username='".($username)."' AND password='".($hash)."'");
$uyebilgi = $result->fetch_assoc();
// cookie set - 7 günlük
$_SESSION['login'] = $_POST["username"];
$_SESSION['password'] = $hash;
// üye sayfasına gönder
header("Location: /home");
}
}
Baglanti.php (DB ve fonksiyonların olduğu dosya tüm sayfalara includeli.) Burada tüm sayfalardan üyelerin bilgilerini çekmek için bir fonksiyon mevcut. Ayrıca sayfanın başında ob start ve session start kodu mevcut.
if( isset($_SESSION['login']) ) {
$giris_yapildimi = 'evet';
$sl= $_SESSION['login'];
$sp= $_SESSION['password'];
$result = dbquery("SELECT * FROM uyeler WHERE username='".($sl)."' AND password='".($sp)."'");
$uyebilgi = $result->fetch_assoc();
} else {
$giris_yapildimi = 'hayir';
$uyebilgi = array();
}
Kaç gündür uğraşıyorum fakat bu problemi çözebilmiş değilim.
Merhaba;
Değişikliği nerede yapabiliyor, profil sayfası gibi birşeyin olduğunu düşünüyorum söylediklerinizde, öyle ise o sayfanın kodlarını görebilirsem yardımcı olmaya çalışayım, session gibi duruyor sorunun kaynağı.
Merhaba
Kaynak kodunuzu git uzerinden paylasabilirseniz hatayı kolayca cozumleyebilirim.