Formlar ve hiçbir Çerezler - formları göndermek için zarif yolu

2 Cevap php

Hoi!

Ben göndermek isteyen bir form var, ancak bazı müşteriler hiçbir çerezlere izin çünkü, PHPSESSID eklemeniz gerekir.

Kullanıcıların bir listesini görüntüler sayfamda birkaç javascript fonksiyonları (arama, sıralama, açık ayrıntıları) vardır, sayfa PHP tarafından oluşturulur.

Bu birkaç sayfada yapılması gerekiyor, bu yüzden kolay bir çözüm için umut - Şimdi PHPSESSID sahip zarif bir yol arıyorum her zaman formun teslim dahildir. Eylem ya da gizli bir alana PHPSESSID ekleyerek düzgün çalışmıyor.

Ya da bu sorunu başka bir yerde bulunur? Bu müşteri bir çok kısıtlayıcı güvenlik duvarı veya bir şeyin arkasından olabilir. Bu yönde (özellikle çözümleri ile ;-)) Herhangi bir fikir de açığız!

Örnek kod (son derece basitleştirilmiş):

<form name="userlist" method="POST" action="./myuserlist.php">
[...some formfields and stuff..]
</form>

<script>
//one example function, there are several on my page
function next_page()
{
  //set some hidden field to get the next page
  document.forms[0].submit();
}
</script>

Şimdiden teşekkürler!

Bye, Basty

[EDIT] session.use_trans_sid is set to true

2 Cevap

Gizli alanını kullanarak çalışması gerekir - o zaman php.ini muhtemelen kapalı session.use_trans_sid vermezse

Bunu söylemek o zaman gizli bir alana eklemek olabilir

if (!empty($_POST['PHPSESSID']))
   session_start($_POST['PHPSESSID']);
else
    session_start();

Eğer gizli bir alana koyarak çalışmıyor derken, bu konuda ne çalışmıyor detaylandırabileceğiniz?

Formu gönderen her (veya çok) Geçilecek bazı devlet bilgi gereken bir durum ile karşı karşıya, = gizli alan bunu yapmak için kurallı yolu bir giriş türüdür.

Sadece burada karanlıkta tahmin. "Display: none" ya da buna benzer bir şey mi style = bir giriş gibi bir şey yapıyor musunuz? Eğer öyleyse, iyi niyetli bir etiketi değiştirin. None: tarayıcılarda bir sürü ekran aracılığıyla gizli form alanları teslim olmaz.

Karanlıkta başka bir bıçak: Eğer javascript ile sayfa gizli formu ekleyerek mı? Bir foo.innerHTML çağrısı gibi mi? Yine, bazı tarayıcılar düzgün bir sayfa için bu şekilde eklenen form alanlarını idare olmaz. Sen baştan orada Sessionıd olması gerekir, ya da verileri oldukça innerHTML daha dom manipülasyon yoluyla giriş alanı eklemek için sunucudan dönen kolları ajax yöntemi yeniden ya.