Yeni Bir Php Session Vakası
-
a.php
<?php session_start(); $_SESSION['auth'] = "ok"; echo "tamam"; ?>
b.php
<?php session_start(); var_dump($_SESSION['auth']); ?>
ekrana çıkan sonucu yazar mısın?
pSkpt tarafından 13/Ağu/12 20:01 tarihinde düzenlenmiştir -
1.php;
ZINDIK tarafından 13/Ağu/12 20:15 tarihinde düzenlenmiştir
<?php
session_start();
$_SESSION['deneme'] = 'Haci';
?>
2.php;
<?php
session_start();
if(isset($_SESSION['deneme'])) {
echo "Zaten giris yapmissin ya la?" . $_SESSION['deneme'];
}
?>
ekstra,
unset($_SESSION['name']);
session_destroy(); -
pSkpt bunu yazdı
a.php
b.php
ekrana çıkan sonucu yazar mısın?
önce a.php'ye girdim tamam dedi
b.php'ye girince NULL dedi
--
@outmost hocam onu da denedim olmuyor, session diğer sayfaya geçince yok oluyor
overbite tarafından 13/Ağu/12 20:20 tarihinde düzenlenmiştir -
Hacı senin server tarafında birşeyler var heralde. PHP.ini konfigürasyonunu kontrol edebilir misin.
Ben lokalde test ettim (PHP 5.4.5-dev / php.ini-production) bu konfigürasyon ile çalışmakta.
//I hope you have cookies enabled! @ 1:26
http://www.youtube.com/watch?feature=player_detailpage&v=yX8yrOAjfKM#t=86s
ZINDIK tarafından 13/Ağu/12 20:31 tarihinde düzenlenmiştir -
php.ini içindeki session bölümü aşağıdaki şekilde (yorum satırlarını sildim)
[Session]
session.save_handler = files
session.save_path = "/var/php_sessions"
session.use_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 100
session.gc_maxlifetime = 1440
session.bug_compat_42 = 0
session.bug_compat_warn = 1
session.referer_check =
session.entropy_length = 0
session.entropy_file =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 1
session.hash_function = 0
session.hash_bits_per_character = 4
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset=" -
"/var/php_sessions" klasörüne okuma yazma izni verilmemiş olabilir diyorlar.
Sunucu sahibiyle bir konuş derim.Olmadı PHP sürümünü yükseltirler.
-
PHP 5.2'de bazı kullanıcılar session ile ilgili sorundan söz etmiş.
ZINDIK tarafından 13/Ağu/12 21:17 tarihinde düzenlenmiştir
Kodun bu şekil kullanımının çalışmadığını;
<?php
session_start();
?>
Bu tip yazıldığında çalıştığını söylemiş;
<?php session_start();?>
______
Tabi senin sürüm 5.2.17'de bu sorunun giderildiği söyleniyor.
Benim php.ini konfigürasyonum şu şekilde: http://pastehtml.com/view/c83l439ur.txt
Düzenleme: phpinfo'na bir göz attımda "register_globals" açıkmış hacı..
register_globals = Off yap.
Neden? http://www.theblog.ca/session-register-globals -
pSkpt bunu yazdı
"/var/php_sessions" klasörüne okuma yazma izni verilmemiş olabilir diyorlar.
Sunucu sahibiyle bir konuş derim.Olmadı PHP sürümünü yükseltirler.
host netfirms.com'da, kontrol panelinden php versiyonunu 5.3.13 yaptım ve session.auto_start=1 yaptım hala aynı
edit:
hocalar public_html altına php_sessions diye bir klasör oluşturuğ yolu /var/php_sessions değil de kendi oluşturduğum klasörle değiştirdim sorun çözüldü. zaten kodlarda yanlışlık yok gibi görünüyordu böylece hallettik, hepinize teşekkür ederim
overbite tarafından 13/Ağu/12 21:05 tarihinde düzenlenmiştir -
ya amk bütün sayfada
<?02ob_start();03session_start();ob_end_flush(); <br>7?>kodunu kullanırsan çakışır sessionu okumaz include ettiğin sayfalarda yukardaki kodları kaldır öyle dene.
yani deneme2.php
<? <br>0205if(isset($_SESSION['deneme'])) { <br>06echo"yes"; <br>07}else{ <br>08echo"no"; <br>09} <br>1011?>şeklinde yapıştır.
-
@Media hocam ob_start() ve ob_end_flush() kullanmıyordum zaten, başka sitelerde ve tbt forumda araştırdığımda bunların eklenmesi önerilmiş, ekledim yine çalışmamıştı. session.save_path'i değiştirince sorun çözüldü zaten, teşekkürler
