PHP: '$ isim' değişkeni $ _SESSION ['Adı'] veri çoğaltarak Sunucu

1 Cevap

Ben sadece benim localhost ayarlardan farklı bir site geliştiriyorum sunucuda bir ayarı keşfetti ettik, ancak, ben burada bunu değiştirmek için izini olamaz.

Burada ne oluyor basit bir örnek.

$_SESSION['Animal'] = "Dog";
echo "#1: ".$_SESSION['Animal']."<br/>";
echo "#2: ".$Animal;

Benim localhost üzerinde, sunucu döndürür:

#1: Dog
#2:

Kamu host, sunucu döndürür:

#1: Dog
#2: Dog

Ben bu ortak sunucuları, php.ini dosyasındaki bir ayar olduğunu tahmin ediyorum, ancak, bunu ayarı hangi bulamaz.

1 Cevap

Registered Globals directive ile ilgili olduğu görülmektedir.

Bu özellik PHP 5.3.0 ÖNERİLMEMEKTEDİR ve PHP 6.0.0 'da ÇIKARILDI olmuştur. Bu özelliği dayanarak önerilmez.

Information about the register_globals ini setting

Yukarıdaki açıklamada belirtildiği gibi, oldukça sizin ortak sunucu üzerinde php.ini dosyasında bu devre dışı bırakmanız önerilir.

Eğer kamu sunucusu üzerinde php.ini dosyasına erişim yoksa, manuel bir alternatif öneriyor:

Register_globals zamanında (ini_set ()) ayarlanmış olamaz unutmayın. Rağmen, kullanabilirsiniz. Htaccess host yukarıda tarif o kadar izin veriyorsa. . Örnek bir htaccess girdi: register_globals kapalı php_flag.