Arama butonu
Bu konudaki kullanıcılar: 1 misafir
4
Cevap
762
Tıklama
0
Öne Çıkarma
PHP PDO'DA VERİTABANINDAKİ VERİYİ DEĞİŞKENE AKTARMA??
U
7 yıl
Er
Konu Sahibi

Selam gençler.Bir sorunum var yine php ile ilgili..
Yardım edin lütfen
Ben $_SESSION larla bi üyelik sistemi yapmıştım. Herşeyi çalışıyo fakat şu veritabanından veri alıp
herhangi bir php değişkenine aktarmayı yapamadım..
İşte kodlar:
index.php:




<?php
session_start();
if($_SESSION){
echo "<center>Dostum oturum, açık..<br>Oturumu kapatmak için <a href='log/out.php'> tıkla</a>
<br>
<a href='hotel/'>Anasayfaya Gitmek için tıkla</a>


";
}if(!$_SESSION){
echo "<br><br><br>Hmm....<br>Demek kayıt olmadın, o zaman aşağıdaki formu doldur ve kayıt ol!<br>";
echo "<form action='' method='post'>
<table>
<br><br><br>
<tr>
<td>Adınız:</td>
<td><input type='text' name='name' required></td>
</tr>
<tr>
<td>Yaşınız:</td>
<td><input type='number' name='yas' min='0' max='100' required></td>
</tr>
<tr>
<td>E posta adresiniz</td>
<td><input type='email' name='mail' required></td>
</tr>
<tr>
<td>Şifreniz:</td>
<td><input type='password' name='pass' required></td>
</tr>
<tr>
<td><input type='submit' value='Kayıt Ol'></td>
</tr>
</form>
</table>
";
echo "<br>Giriş yapmak için <a href='log/login.php'> buraya </a> tıkla!<br>";
$n = "Sitemize";
echo "<title>".$n." Hoşgeldin</title>";

if($_POST){
include 'config.php';
$name = $_POST["name"];
$mail = $_POST["mail"];
$pass = $_POST["pass"];
$yas = $_POST["yas"];
$rank = 1;
$query = "SELECT * FROM users order by id";
$goster = $db->prepare($query);
$goster->execute(); //queriyi tetikliyor

$result = $db->prepare("INSERT INTO users (name,mail,sifre,yas,rank) VALUES (?,?,?,?,?)");
$result->execute(array($name,$mail,$pass,$yas,$rank));
echo "<font color='green'>Başarıyla kaydoldunuz!";
echo "<br><b>Bilgileriniz:</b>";
$_SESSION["name"]=$_POST["name"];
$_SESSION["pass"]=$_POST["pass"];
$_SESSION["mail"]=$_POST["mail"];
$_SESSION["yas"]=$_POST["yas"];
$_SESSION["rank"]=$rank;
echo "<br>Adınız:".$_SESSION["name"]."
<br>
Şifreniz:".$_SESSION["pass"]."

";
header("refresh: 2; url=hotel/home.php");
}else{
echo "Kayıt olurken türkçe karakter kullanmayın!";
}
}


?>

Bu sayfada bi sorun yok, üyeleri başarılı olarak kaydediyo, rankı 1 olarak ayarlıyo.
Ama tek sorun o rankı ben veritabanından değiştirdiğimde $_SESSION["rank"] olan değişmiyo o hep 1 kalıyo.
Ve buda log.php sayfasına giremememe sebep oluyo.
log.php:

<?php
session_start();
include 'config.php';
if($_SESSION["rank"]<8){
header("location:../");
}
else{
echo "Hoşgeldin".$_SESSION["name"];
}






?>

Bu sayfaya tek olarak rank ı 2 üstünde olanlar erişecek.
Ancak benim veritabanımda rankım 10 olmasına rağmen anasayfaya yönelndriliyorum
Lütfen yardım!!?

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



J
7 yıl
Teğmen

Herseyi sessionda tutmak yanlış bir yaklaşım. Sessionda sadece username ı tut sayfaya erişim yapmadan önce veritabanından rankı çekip yetkisi varmı yokmu diye kontrol et. Senin yaptığın şekilde veri tabanında rankı değiştirsen bile session düşmediği sürece rankı 1 olarak kalır.



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
U
7 yıl
Er
Konu Sahibi

quote:

Orijinalden alıntı: Joshualinekano

Herseyi sessionda tutmak yanlış bir yaklaşım. Sessionda sadece username ı tut sayfaya erişim yapmadan önce veritabanından rankı çekip yetkisi varmı yokmu diye kontrol et. Senin yaptığın şekilde veri tabanında rankı değiştirsen bile session düşmediği sürece rankı 1 olarak kalır.
Tamam anladımda işte o veritabanından çekmeyi nasıl yapcam.
Kodunu yazabilirmisin?



F
7 yıl
Er

C
7 yıl
Teğmen

zaten gene aynı devam edebilirsin ki bu şekilde de sonuçta üye elle girip veritabanından değiştirmicek bunu değişiklik yaptığı sayfada değiştiricek ordada rankı yenilersin. Yada her sayfaya kontrol atarsın rankı kontrol ettirirsin yada funciton.php sayfanda her defasında çektirirsin sonuçta her sayfaya include ettiğin için bu sefer anlık çalışır sistemin. Session da ön bellekte tuttuğu için değiştirsende görmez o yüzden tekrar ataman gerekir ama dediğim gibi sonuçta bu kişi veritabanına girip değiştirmicek senin yaptığın işlem sayfasından değiştirecek o işlemi yaparken onu yenileyebilirsin ya da diğer seçenekleri düşünürsün



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.