Php Session Sorunum
-
oturum kontrol fonksiyonum ;
--------
function oturum_kontrol($parametre1,$parametre2){
if($parametre1!="" && $parametre2!=""){
$kontrol = Sor("SELECT kullaniciadi, sifre FROM kullanicilar WHERE
kullaniciadi='{$parametre1}' AND sifre='{$parametre2}'");
if(say($kontrol)>0){
$yaz = yaz($kontrol);
if($_SESSION["kullaniciadi"]==$yaz["kullaniciadi"] and
$_SESSION["oturum"]==$yaz["sifre"].$_SERVER["REMOTE_ADDR"]){
return true;
}else{
return false;
}
}else{
return false;
}
}else{
return false;
}
}--------
Kontrol sorgum ;
--------
if(oturum_kontrol(session_yazdir("kullaniciadi"),session_yazdir("oturum"))){
echo "Oturum Açma Başarılı";
}else{
echo "Oturum Açma Başarısız.";
}--------
Bunu çalıştırdığım zaman oturum açma başarısız uyarısı alıyorum.
Ve error log da şunlar yazıyor.
[20-Mar-2016 14:02:14 Europe/Istanbul] PHP Notice: Undefined index: kullaniciadi in ......./fonksiyonlar.php on line 83
[20-Mar-2016 14:02:14 Europe/Istanbul] PHP Notice: Undefined index: oturum in ......./fonksiyonlar.php on line 83
Fakat ;
--------
echo isset($_SESSION['kullaniciadi']);
echo isset($_SESSION['oturum']);--------
Kontrolü yaptığım zaman da true değeri alıyorum.
Kafam karıştı :S
iLLuMiNaTi tarafından 20/Mar/16 14:21 tarihinde düzenlenmiştir -
session_start kullandın mı her sayfada?
-
Hocam mobilde olduğum için kodları tam olarak göremiyorum ama session ile ilgili sorunlar genelde session_start ve ob_start gibi eksikliklerin kaynaklanıyor. Kodların başına session_start(); koyarak dene. Yine hata alırsan ob_start a da bak
-
hepsi var arkadaşlar
hem session_start
hem de
ob_start
-
iLLuMiNaTi bunu yazdı
oturum kontrol fonksiyonum ;
--------
function oturum_kontrol($parametre1,$parametre2){
if($parametre1!="" && $parametre2!=""){
$kontrol = Sor("SELECT kullaniciadi, sifre FROM kullanicilar WHERE
kullaniciadi='{$parametre1}' AND sifre='{$parametre2}'");
if(say($kontrol)>0){
$yaz = yaz($kontrol);
if($_SESSION["kullaniciadi"]==$yaz["kullaniciadi"] and
$_SESSION["oturum"]==$yaz["sifre"].$_SERVER["REMOTE_ADDR"]){
return true;
}else{
return false;
}
}else{
return false;
}
}else{
return false;
}
}--------
Kontrol sorgum ;
--------
if(oturum_kontrol(session_yazdir("kullaniciadi"),session_yazdir("oturum"))){
echo "Oturum Açma Başarılı";
}else{
echo "Oturum Açma Başarısız.";
}--------
Bunu çalıştırdığım zaman oturum açma başarısız uyarısı alıyorum.
Ve error log da şunlar yazıyor.
[20-Mar-2016 14:02:14 Europe/Istanbul] PHP Notice: Undefined index: kullaniciadi in ......./fonksiyonlar.php on line 83
[20-Mar-2016 14:02:14 Europe/Istanbul] PHP Notice: Undefined index: oturum in ......./fonksiyonlar.php on line 83
Fakat ;
--------
echo isset($_SESSION['kullaniciadi']);
echo isset($_SESSION['oturum']);--------
Kontrolü yaptığım zaman da true değeri alıyorum.
Kafam karıştı :S
Fonksiyonundaki fonksiyonlardan bir şey anlamak zor, ama sanırım şuradaki kontrolde patlıyor olabilir;
// bunun yerine if($_SESSION["kullaniciadi"]==$yaz["kullaniciadi"] and $_SESSION["oturum"]==$yaz["sifre"].$_SERVER["REMOTE_ADDR"]) { return true; }else{ return false; } // şöyle bir kontrol dener misin? if( isset($_SESSION['kullaniciadi']) && isset($_SESSION['oturum']) && $_SESSION['kullaniciadi']==$yaz['kullaniciadi'] && $_SESSION['oturum']==$yaz['sifre']) { return true; } return false;
Ayrıca alt alta bir sürü return false koymuşsun. Gereksiz onların çoğu. En alta bir tane return false ifadesi koy. Diğerlerinin else kısmını kaldır. Zaten eğer if kısmına düşmezse if'ten sonra gelen return false dönecektir.
-
tutkun bunu yazdı
Fonksiyonundaki fonksiyonlardan bir şey anlamak zor, ama sanırım şuradaki kontrolde patlıyor olabilir;
// bunun yerine if($_SESSION["kullaniciadi"]==$yaz["kullaniciadi"] and $_SESSION["oturum"]==$yaz["sifre"].$_SERVER["REMOTE_ADDR"]) { return true; }else{ return false; } // şöyle bir kontrol dener misin? if( isset($_SESSION['kullaniciadi']) && isset($_SESSION['oturum']) && $_SESSION['kullaniciadi']==$yaz['kullaniciadi'] && $_SESSION['oturum']==$yaz['sifre']) { return true; } return false;
Ayrıca alt alta bir sürü return false koymuşsun. Gereksiz onların çoğu. En alta bir tane return false ifadesi koy. Diğerlerinin else kısmını kaldır. Zaten eğer if kısmına düşmezse if'ten sonra gelen return false dönecektir.
Hocam fonksiyon içindeki fonksiyonlar sor yaz gibi şeyler mysql_fetch_array gibi basit şeyleri kısatmak için kullandıklarım
returnları kaldırsamda, dediğin diğerini yapsamda değişmedi gene :(
-
echo isset($_SESSION['kullaniciadi']);
echo isset($_SESSION['oturum']);yerine var_dump($_SESSION); yazarmısın hocam neyi set etmiş set ettiği değerler doğrumu
-
babayarisi bunu yazdı
echo isset($_SESSION['kullaniciadi']);
echo isset($_SESSION['oturum']);yerine var_dump($_SESSION); yazarmısın hocam neyi set etmiş set ettiği değerler doğrumu
array(3) { ["kullaniciadi"]=> string(5) "Admin" ["sifre"]=> string(6) "123456" ["oturum"]=> string(32) "51ca77ddbc1ce7b5ff9c7cb56cd56892" } oturum açma başarılı olmadı
Değerler doğru
iLLuMiNaTi tarafından 20/Mar/16 16:46 tarihinde düzenlenmiştir -
iLLuMiNaTi bunu yazdıbabayarisi bunu yazdı
echo isset($_SESSION['kullaniciadi']);
echo isset($_SESSION['oturum']);yerine var_dump($_SESSION); yazarmısın hocam neyi set etmiş set ettiği değerler doğrumu
array(3) { ["kullaniciadi"]=> string(5) "Admin" ["sifre"]=> string(6) "123456" ["oturum"]=> string(32) "51ca77ddbc1ce7b5ff9c7cb56cd56892" } oturum açma başarılı olmadı
Değerler doğru
oturum_kontrol fonksiyonunda var_dump($yaz); yap bi hocam mysqlden gelenlere bakak.
-
dosyanin/dosyaların tamamını atabilir misin ?
-
if($_SESSION["kullaniciadi"]==$yaz["kullaniciadi"] and
$_SESSION["oturum"]==$yaz["sifre"].$_SERVER["REMOTE_ADDR"]){
Bunun üstüne önce isset yaptırcaksın, varsa bunlara bakacak.