Yeni Bir Php Session Vakası
-
başmadan önce forumda session kelimesi geçen tüm konuları okuduğumu bildirir herkese selam ederim.
minecraft sunucusundaki lag beni php ile bir şeyler yapmaya itti ve yapmaya çalıştığım panele session eklerken $_SESSION['auth']="ok"; ile kaydettiğim değer, aynı sayfa içinde kullanıldığında çalışıyor fakat başka sayfaya geçtiğimde session'daki değer yok!
örneğin deneme.php dosyasının içeriği;
<? ob_start(); session_start(); $_SESSION['deneme'] = "ok"; echo "$_SESSION['deneme']"; ob_end_flush(); ?>
kodu ekrana ok yazıyor, fakat
<? ob_start(); session_start(); $_SESSION['deneme'] = "ok"; echo "<a href=\"deneme2.php\">git</a>"; ob_end_flush(); ?>
kodunu çalıştırıp linke tıklayinca yes yazmasını beklerken no yazıyor. adı geçen deneme2.php dosyasının içeriği de aşağıdaki şekilde;
<? ob_start(); session_start(); if(isset($_SESSION['deneme'])) { echo "yes"; } else { echo "no"; } ob_end_flush(); ?>dosyaları kendi bilgisayarımda değil de netfirmsten aldığım hostta deniyorum, phpinfo() fonksiyonundaki session bölümü şu şekilde;
session
Session Support enabled Registered save handlers files user sqlite Registered serializer handlers php php_binary wddx Directive Local Value Master Value session.auto_start Off Off session.bug_compat_42 Off Off session.bug_compat_warn On On session.cache_expire 180 180 session.cache_limiter nocache nocache session.cookie_domain no value no value session.cookie_httponly Off Off session.cookie_lifetime 0 0 session.cookie_path / / session.cookie_secure Off Off session.entropy_file no value no value session.entropy_length 0 0 session.gc_divisor 100 100 session.gc_maxlifetime 1440 1440 session.gc_probability 1 1 session.hash_bits_per_character 4 4 session.hash_function 0 0 session.name PHPSESSID PHPSESSID session.referer_check no value no value session.save_handler files files session.save_path /var/php_sessions /var/php_sessions session.serialize_handler php php session.use_cookies On On session.use_only_cookies Off Off session.use_trans_sid 1 1 bu bölümün nasıl olması gerektiğini de bilmiyorum. yardım ediniz
-
ob_end_flush(); bunları kaldır. alakası yokta sen bi dene
diğer sayafada isset i kaldırıp
$a =
$_SESSION['deneme'];if($a!=""){
echo $a;
}else{
echo "Malesef gelmedi";
}
-
ob_end_flush();yerine session_destroy(); yaz
-
yok hocam yine olmadı her türlüsünü denedim,
aşağıdaki kodlar da kendi içinde gir çık yapıyor fakat diğer sayfaya geçince session gidiyor, kodlar:
<? ob_start(); session_start(); if ( isset($_POST['islem']) ) { if ( $_POST['islem'] == "gir" ) { $_SESSION['auth'] = "evet"; } elseif ( $_POST['islem'] == "cik" ) { $_SESSION['auth'] = "hayir"; } } if (isset($_SESSION['auth'])) { if ($_SESSION['auth'] == "evet") { $durum = "giris yapmis bulunmaktasiniz - session yes <br> <a href=\"deneme2.php\">diger sayfada dene</a><br>"; $islem = "cik"; } elseif ($_SESSION['auth'] == "hayir") { $durum = "giris yapmaniz gerekiyor - session no"; $islem = "gir"; } else { $durum = "giris yapmaniz gerekiyor - session degisik bir sey :D"; $islem = "gir"; } } else { $durum = "session kayitli degil"; $islem = "gir"; } echo "$durum"; ?> <form action="" method="post"> <input type="hidden" name="islem" value="<? echo "$islem"; ?>"> <input type="submit" name="gonder" value="<? echo "$islem"; ?>"> </form>http://www.kirktug.com/deneme/deneme.php
-
o zaman hocam soyle yap
if (strlen($_SESSION['auth']) == 4)
{ $durum = "giris yapmis bulunmaktasiniz - session yes <br> <a href=\"deneme2.php\">diger sayfada dene</a><br>"; <br> $islem = "cik"; } elseif (strlen($_SESSION['auth']) == 5)
{
$durum = "giris yapmaniz gerekiyor - session no"; <br> $islem = "gir";
} else
{ $durum = "giris yapmaniz gerekiyor - session degisik bir sey :D"; <br> $islem = "gir";
} -
malesef her türlüsünü denedim, her yerde de böyle gösteriyor fakat çalışmıyor, hostla ilgili bir şey olabilir mi?
-
tanımlamaları eksik kullanmışın. deneme2.php yi aşağıdaki şekilde denermisin :
<?
session_start();
if ($_SESSION['deneme'] == 'ok') {
echo "yes session iletilmis";
} else {
echo "hayır session gelmedi";
}
?>
cracker tarafından 13/Ağu/12 14:03 tarihinde düzenlenmiştir -
Şu ob_start() 'ı neden kullanırsınız anlamam :)) Header bilgilerinizi html basmadan önce gönderin olsun bitsin, niye eziyet çekiyonuz.
-
@cracker hocam öyle de olmadı
@NmC ben zaten kullanmıyordum ob_start() fakat nereye baksam sayfanın başına bu fonksiyonu yazın düzelir denmiş o yüzden ben de ekledim yine de kâr etmedi
-
PHP sürümü kaç?
-
pSkpt bunu yazdı
PHP sürümü kaç?
PHP Version 5.2.17
http://www.kirktug.com/deneme/phpinfo.php
