Giriş yap
Fonksiyon içinde global SESSION [ÇÖZÜLDÜ]

merhaba arkadaşlar.

fonksiyon içinde

sessionları okutamıyorum

global ile tanımyım dedim oda olmadı

login kontrol için fonksiyon oluşturuyorum da login olmadan önce
tanımsız xxx diye hata veriyor bunu nasıl ortadan kaldırabilirim.

jct
90 gün önce

Anladığım kadarıyla cevap vermeye çalışayım; Henüz Login olmadığın için Session'lar tanımlanmamış demektir. Bir değeri fonksiyon veya herhangi bir yerde kullanmadan önce tanımlamazsan doğal olarak tanımlanmamış değişken veya bilgi hatası alırsın. Hata bastırma operatörü olan "@" işaretini kullanman bu hatayı baskılar. Örneğin;

    @$Login = $_SESSION["Login"];
arco
90 gün önce

aynen hocam tanımsız olduğu için veriyoru hatayı genelde bu gibi durumlarda başına "@" koyarsanız o kısımın hatasını engellemiş olursunuz

aydinkeskin
90 gün önce

hata bastırma ile hatayı kapatabiliriz ama sadece logdan ve görselden kapatmış oluruz
ama orda bir hata olmadığı anlamına gelmiyor malesef.

post get güvenliğini fonksiyon ile güvence altına almayız tmm deriz sesssion login true ise işlem yap diye yazarız fakat
bunu fonksyion aracılığı ile yapmak istediğim için yazdım.

yinede ilgiliniz için teşekkürler aradığım cevap şimdilik bu değil gibi duruyor.

makifgokce
90 gün önce
function session($name){
    return isset($_SESSION[$name]) ? $_SESSION[$name] : false;
}

Anladığım kadarıyla böyle bir fonksiyon işinize yarayacaktır.session('Login') gibi kullanabilirsiniz.

aydinkeskin
90 gün önce

function adminLogin(){

$adi = $_SESSION["isim"];
$kuladi = $_SESSION["user"];
$idsi = $_SESSION["id"];

$oku = pre("SELECT id,kuladi,ad FROM operator WHERE id=? and kuladi=? and ad=?");
$oku->execute([$idsi,$kuladi,$adi]);
$saydir = $oku->rowCount();
	if($saydir == 0){
		header('Location:'.sitedizin().'xxx/xxx/');
	}

}

ben bu şekilde kullanmaya çalışıyorum
haliyle hata veriyor login ismi yokken.

post get işlemleride ajax üzerinden tek dosyada topluyorum.
onlarıda isset post blabla and sesssion login == true ile işlem yaptırıyorum.
o alanı kısmak için fonksiyon yazayım dedim.

senin yazdığın da olabilir muhtemelen

sesssion login == true bölmesi için denemek lazım
bazen kafa duruyor bırakıyorum ne yapacaksam. aklıma gelene kadar :)

arco
89 gün önce

$adi = @$_SESSION["isim"];
$kuladi = @$_SESSION["user"];
$idsi = @$_SESSION["id"];

$oku = pre("SELECT id,kuladi,ad FROM operator WHERE id=? and kuladi=? and ad=?");
$oku->execute([$idsi,$kuladi,$adi]);
$saydir = $oku->rowCount();

if($saydir == 0){
	header('Location:'.sitedizin().'xxx/xxx/');
	
	
	böyle olması lazım hocam
aydinkeskin
89 gün önce

@arco ilgin için teşekkürler kardeşim

fakat hatayı bastırmak hata olmadığı anlamına gelmiyor malesef.

bunun kesin bir çözümü varda henüz biz bulamadık :)
hiç bir hata bastırma veya hata uyarısı olmadan bu işi çözmenin bir yolu mutlaka vardır da onu
bizimle paylaşacak babayiğit aranıyor :)

makifgokce
89 gün önce
$adi = session('isim');
$kuladi = session('user');
$idsi = session('id');

daha önceki verdiğim fonksiyon ile bu şekilde kullanırsan hata vermez.

kartal
89 gün önce

session bilgilerine ulaşamıyorsanız veri tabanından nasıl sonuç alacaksınız, fonksiyonun amacı ne.

makifgokce
89 gün önce
$adi = session('isim');
$kuladi = session('user');
$idsi = session('id');

if (!$adi && !$kuladi && !$idsi){
    //session var işleme devam et
} else{
    //session yok
}

gibi bir kontrol yaparak sorguya geçiş yapılırsa hiçbir sıkıntı çıkmaz.

aydinkeskin
89 gün önce

@makifgokce

işimi gördü kardeşim teşekkür ederim ancak ttest etme fırsatım oldu.
tek sorun fonksiyon ismini değiştirmek gerekti süper globaller değişken veya fonksiyon olarak kullanılmıyor en azından benim hosting de öyle.

Nasıl akıllıca soru sorulur?
Daha hızlı ve kaliteli cevaplar almak için önce nasıl soru sorulacağını bilmeniz gerekir. Eğer bilmiyorsanız bu yazı serisini okuyun.

Cevap yaz

Günlük Film Tavsiyesi