[Çözüldü] Çalışan Session örnegi

Başlatan ahmet_matematikci, 19 Ocak 2013 - 21:11:20

« önceki - sonraki »

0 Üyeler ve 2 Ziyaretçi konuyu incelemekte.

ahmet_matematikci


<?php
session_start();
header("content-type:text/html;charset=utf8");
include 'ayar.php';

if( $_POST ) {
$uyeadi trim($_POST['ad']);
$parola trim($_POST['parola']);
$hatirla trim($_POST["hatirla"]);
$result1 mysql_query("SELECT * FROM uye_oturum WHERE eposta='$uyeadi'");
$result2 mysql_query("SELECT * FROM uye_oturum WHERE sifre='$parola'");

if($uyeadi == $result1 AND $parola == $result2 ) {
# doğru ise session değişkenlerini oluştur
$_SESSION["uyead"] = $uyeadi;
$_SESSION["uyemi"] = "evet";

if($hatirla == 1) {
setcookie("uye_cerez"$uyeaditime()+60*60*24);
}
header("location: index.php");
} else {
echo "Bilgileriniz hatalı, lütfen kontrol edin.<hr>";
}
}
?>


<form action="#" method="post">
<table>
<tr>
<td>Üye Adi:</td>
<td><input type="text" name="ad" value="<?php echo $_COOKIE["uye_cerez"]; ?>"></td>
</tr>
<tr>
<td>Parola:</td>
<td><input type="password" name="parola"></td>
</tr>
<tr>
<td></td>
<td><input type="checkbox" name="hatirla" value="1"> beni hatirla</td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Giris"></td>
</tr>
</table>
</form>



Veritabanına bağlanıyor ve if($uyeadi == $result1 AND $parola == $result2 ) dışında tüm kod calisiyor. hatta $result1 ve $result2  yerine  sayı konulursa da çalışıyor.   if($uyeadi == $result1 AND $parola == $result2 ) ise çalışmıyor.
Problemi bulamadım.
♥ Kız tavlamak için kahraman olmak gerekmez. Doğru kadın zaten sizi kahraman yapar ;)

acablack

Şimdi şöyle bir durum var. Veritabanından dönen değeri eşitlediğin $result bir nesne . Yani içinde ad şifre e-posta neler neler olabilir. Onu sadece bir ad'a eşitleyemessin bundan dolayı ilk önce


$array =mysql_fetch_assoc($result);

şeklinde atadıktan sonra
if(ad = $array ['sutunadı'])

ahmet_matematikci

Hocam verdiğiniz çözüm kısmen işe yaradı. Bu sefer kodu aşağıdaki şekilde seçince
tüm kullanıcılar bir birinin şifresi ile giriş yapabiliyor.
Sağlıklı bir giriş olmadı. Birde
$result1 = mysql_query("SELECT * FROM uye_oturum WHERE eposta='$uyeadi'");
result1 de formdan gelen veriyi result1 aramıyor mu.  yani dizide tek bir değer olması gerekmez miydi?


$array1 =mysql_fetch_assoc($result1);
$array2 =mysql_fetch_assoc($result2);

if($uyeadi == $array1['eposta'] AND $parola == $array2['sifre']  ) {
♥ Kız tavlamak için kahraman olmak gerekmez. Doğru kadın zaten sizi kahraman yapar ;)

acablack

Şimdi Sql cümleciğinde ufak bir mantıksızlık var. Şöyle düşün.

Cümle "şu e-postalı ve şu parolalı kişisini seç "
diye olmalı. Bu durumda sql cümlesi


$result = mysql_query("select uyeadi ,parola from  uye_oturum where eposta='$eposta' and parola='$parola' " )

$array =mysql_fetch_assoc($result);

if($array['uyeadi']==$uyeadi && $array['parola']==$parola)
{
// işlem
}



Eksik veya yanlış yazım varsa düzelt.

ahmet_matematikci

Yardımalrınız için çok teşekkürler
Yeni başlayan arkadaşlar kullansın diye uyarladığım çalışan bir oturum örneğini ekleyeyim.
index.php

<?php
session_start();
header("content-type:text/html;charset=utf8");

# uyemi isimli session değişkeni uygulamanın kontrol değişkenidir.
if( $_SESSION["uyemi"] == "evet" ) {
echo "Hosgeldin, " $_SESSION["uyead"];
echo " (<a href=\"cikis.php\">cikis icin tikla</a>)";
} else {
echo "Bu sayfa sadece üyelere özel.";
echo "Üye isen <a href=\"giris.php\">buraya tıkla.</a>";
}
?>




giris.php

<?php
session_start();
header("content-type:text/html;charset=utf8");
include 'ayar.php';

if( $_POST ) {
$uyeadi trim($_POST['ad']);
$parola trim($_POST['parola']);
$hatirla trim($_POST["hatirla"]);
$result mysql_query(" SELECT eposta,sifre  FROM uye_oturum WHERE eposta='$uyeadi' AND sifre='$parola'" );
$array =mysql_fetch_assoc($result);


if($array['eposta']==$uyeadi && $array['sifre']==$parola)
{
# doğru ise session değişkenlerini oluştur
$_SESSION["uyead"] = $uyeadi;
$_SESSION["uyemi"] = "evet";

if($hatirla == 1) {
setcookie("uye_cerez"$uyeaditime()+60*60*24);
}
header("location: index.php");
} else {
echo "Bilgileriniz hatalı, lütfen kontrol edin.<hr>";
}
}
?>


<form action="#" method="post">
<table>
<tr>
<td>Üye Adi:</td>
<td><input type="text" name="ad" value="<?php echo $_COOKIE["uye_cerez"]; ?>"></td>
</tr>
<tr>
<td>Parola:</td>
<td><input type="password" name="parola"></td>
</tr>
<tr>
<td></td>
<td><input type="checkbox" name="hatirla" value="1"> beni hatirla</td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Giris"></td>
</tr>
</table>
</form>



cikis.php

<?php
session_start();
session_destroy();
header("location: giris.php");
?>




ayar.php

<?php
header
('content-type:text/html; charset=utf-8');
session_start();
$baglanti mysql_connect("localhost""root""1") or die ("VEri tabanına Bağlanılamadı: " .mysql_error());
mysql_set_charset("utf8",$baglanti);

mysql_select_db("performans",$baglanti);
$sql =  mysql_query("SELECT * FROM uye_oturum");

?>



sql kodu

<?php
/**
 * Export to PHP Array plugin for PHPMyAdmin
 * @version 0.2b
 */

//
// Database `performans`
//

// `performans`.`uye_oturum`
$uye_oturum = array(
  array(
'id' => '1','eposta' => 'a','sifre' => '1','tarih' => '2013-01-19 14:46:51'),
  array(
'id' => '2','eposta' => 'b','sifre' => '2','tarih' => '2013-01-19 14:48:29'),
  array(
'id' => '3','eposta' => 'c','sifre' => '3','tarih' => '2013-01-19 14:48:40')
);

♥ Kız tavlamak için kahraman olmak gerekmez. Doğru kadın zaten sizi kahraman yapar ;)

burk

@ahmet_matematikci çalışan bir örnek ve etiket için teşekkürler.