İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Cookie denetleme problemi

desoLate

0
İyinet Üyesi
Katılım
14 Haziran 2006
Mesajlar
220
Reaction score
0
abidik dosyasından gubidik dosyasına şöyle bir link veriyorum
Kod:
<a href="gubidik.php?goster=<?php echo $row [id] ?>

gubidik dosyası da şu şekilde

Kod:
<?php
extract($HTTP_COOKIE_VARS);
include ("db.php");
$id = $HTTP_GET_VARS[goster];

$sql = "select * from tablo WHERE id='$id'";
$res = mysql_query($sql) or die('Invalid query: ' . mysql_error());
$rc = mysql_num_rows($res);
$row = mysql_fetch_array($res);

if ($qwerty[hooop] == $id) {
echo "yok öyle 3 kuruşa 5 köfte"; }
else {
echo "bakıyorsunuuuz";
setcookie ("qwerty[hooop]", $id, time()+3600);
}
?>

Yukardaki kodun çalışması durumunda, gubidik dosyasını ilk kez görüntüleyen biri "bakıyorsunuz" mesajı ile karşılaşcak ve cookie oluşturulacak. 2. kez gubidik sayfasını görüntülemek istediğinde , daha önceden oluşturulmuş cookie'nin varlığını kontrol edip "yok öyle 3 kuruşa 5 köfte" yazısı ile karşılaşması gerek teknik olarak , ama pratik de öyle olmuyor 2 günden beri sorunu çözemiyorum :) Yardımcı olursanız sevirim, teşekkürler.
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
PHP:
<?php
include ("db.php");
$id = addslashes(htmlspecialchars($_GET[goster]));
$sql = "select * from tablo WHERE id='$id'";
$res = mysql_query($sql) or die('Invalid query: ' . mysql_error());
$rc = mysql_num_rows($res);
$row = mysql_fetch_array($res);

if ($_COOKIE[qwerty] == $id) {
echo "yok öyle 3 kuruşa 5 köfte"; }
else {
setcookie ("qwerty", $id, time()+3600);
echo "bakıyorsunuuuz";
}
?>

Yaparsan calisir sanki.
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
Update ettim post'u. Setcookie'den once ekrana herhangi bir output (echo : bakiyorsunuz gibi) gonderilmemesi lazim. Zaten error olarak da vermesi lazimdi onu.
 

desoLate

0
İyinet Üyesi
Katılım
14 Haziran 2006
Mesajlar
220
Reaction score
0
Aynı kodları yazıp, açtığımda bakıyorsunuuuuz yazıyor. refresh ettiğim zaman da aynı yazı çıkıyor.

edit : id diğer sayfadan sorunsuz bir şekilde alınıyor. Bundan %100 eminim. Sanırım cookie oluşturmada bir problem var. Çünkü pc'de cookies klasörüne bakınca yazdığımız gibi bir cookie göremiyorum. (pc cookie alımlarına kapalı değil)
 

zbahadir

0
İyinet Üyesi
Katılım
19 Mart 2006
Mesajlar
2,416
Reaction score
0
Konum
Trabzon
Bir de sayfanın başına;
ob_start();

ve sayfanın sonuna;
ob_end_flush();

koyarak deermisin.
 

desoLate

0
İyinet Üyesi
Katılım
14 Haziran 2006
Mesajlar
220
Reaction score
0
Evet bu kodlar sayesinde oldu sanırım. Çok teşekkür ederim :) +rep angelo ve senin ilginiz ve yardımlarınız için.

Bu arada ezberci olmak istemediğim için, ob_start(); ve ob_end_flush(); mantığını ve bunlar olmadan neden çalışmadığını kısaca açıklayabilir misin ?
 

Senol

0
İyinet Üyesi
Onaylı Üye
Katılım
25 Haziran 2005
Mesajlar
4,856
Reaction score
1
Konum
Bursa
zannedersem ob_start();cookiye oluşturma başlangıcı ve ob_end_flush();cookiye oluşturmayı bitir şeklinde calışıyor olması gerek kod start ve stop başla ve bitir yerine geciyor ve bu şekilde cookiyeniz oluşuyor biraz karmaşık yazdım umarım anlamışsınızdır
 

zbahadir

0
İyinet Üyesi
Katılım
19 Mart 2006
Mesajlar
2,416
Reaction score
0
Konum
Trabzon
Siz sayfada cookie göndermeden önce bir ekran çıktısı alıyorsanız (Header gibi) cookie gönderemezsiniz. Bu ob_start() ve ob_end_flush() fonsiyonlarının özelliği bu durumu düzenliyor/kontrol ediyor ve cookie kullanımını mümkün kılıyor diye biliyorum.

Yanlış biliyor olmam muhtemel zira bu sorunu yaşadığımda bu fonksiyonları kullanmamı önermişlerdi.



 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
Dogru, output buffering fonksiyonlari ama demek ki arkadasin scriptinde bize gostermedigi bir yerde output veren birsey var demek ki.
 

desoLate

0
İyinet Üyesi
Katılım
14 Haziran 2006
Mesajlar
220
Reaction score
0
Size sadece yapmak istediğim şeyin ana mantığını göstermek istedim. Tam olarak size bütün kodları versem, siz düzenleyip tekrar bana geri verirdiniz. Bu durumda ezberci bir şekilde İstediğim programı hazırlar, çalıştırırdım. Böylesi (olayın mantığını kavramak) inanın benim için daha iyi oldu. Hepinize ilginiz ve yardımınız için teşekkür ederim :)
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst