Bir sayfa PHP oturumları yok yenileniyor mu?

4 Cevap php

Ben bir Oturum değerini ayarlar ve sonra CAPTCHA kodu doğru değilse, sayfayı yeniler captcha komutu var.

Sayfanın doğrulama bölümünde:

$_SESSION['refresh']=1;
echo '<META HTTP-EQUIV="Refresh" Content="0"; URL="contact-test.php">';

Sayfa yüklendiğinde bir oturum değişkeni için belirlenen bir değer var ise o vücutta bir onLoad komutu ile çağrılan bir uyarı kutusu için o yankılanırken bir javascript fonksiyonu varsa, görmek için php script biraz çalıştığında.

Kodunun başında:

session_start();

if (isset($_SESSION['refresh'])) {
    echo '<script type="text/javascript">
       function loadalert ()
       {alert("Incorrect security code, please try again.")}
    </script>';}

Sayfa yeniler zaman oturumları değeri kaybolur söyleyebilirim yakın, ben session_start () komutu önceki tüm oturumları temizleyerek şüpheli. Ben önce döngü ve döngü hem de bazı metin ve oturumu değerini göndererek bir test yankı denedim; döngü önce tek bir refresh'te bir oturum değeri olmayan yankılandı alır.

4 Cevap

() Işlevi ya da ne zaman son kullanma tarihi ayarlanır session_destroy aradığınızda oturumu sadece tahrip edilir.

Ayrıca OTURUM içinde ne olursa olsun "yok" OTURUM dizi boşaltabilirsiniz.

Josua oturum sadece session_destroy tahrip dediği gibi () denir. Eğer bir önceki sayfada yayınlanan bir formdan oturumda değerleri saklamak olup olmadığını kontrol edin. Eğer sayfayı yenileyin zaman eğer öyleyse önceki sayfada formu değerleri tahrip edilir (?)

Burada önemli olabilecek bir şey ÇEREZLERİN ile bir hile var olmasıdır. Ben session vars hakkında soran biliyorum ama bu sizi etkileyebilir ve bir ya da iki baş ağrısı beni daha fazla neden olmuştur.

Eğer bir sayfada bir çerez ayarlarsanız, size çerez okurken orada olmak güvenemez. Yani bir sayfa beraberlikle, çerez var yazılı olamaz ve bu bir değişken sanki okunur, olduğunu. Kodunuzu görmektir çerez bu noktada "bayat" olduğu gibi sadece yazdı şey yok - bu yüzden hiç ona yazmak ve sadece doğru geri okuyabilirsiniz sanmıyorum uzak bir şeydir. Ben mantıklı umuyoruz.

Oturum vars ki onlar beklediğiniz tam olarak çalışmak harika.

bilinmeyen bir nedenle ... kod dizisi ise ....

$_SESSION['refresh']=1;
echo '<META HTTP-EQUIV="Refresh" Content="0"; URL="contact-test.php">';

session_start();

if (isset($_SESSION['refresh'])) {
    echo '<script type="text/javascript">
       function loadalert ()
       {alert("Incorrect security code, please try again.")}
    </script>';}

o alışkanlık iş. session_start () Sayfanın en üst kısmında ise, daha sonra kod ok çalışması gerekir.

Bazı çıkışı varsa da zaten ..... önce başladı ..

$_SESSION['refresh']=1; echo '';

Eğer bir hata almalısınız ama sanırım fark için yenileme çok hızlı olacaktır. başlığını kullanabilirsiniz ("location: İletişim-test.php"); bunun yerine eski meta yenileme.