İlk önce şu olağan kontrolleri yapın:
session_start();
Herhangi bir seans çağrılmadan önce arandığından emin olun . Bu nedenle, güvenli bir bahis, sayfanızın başına, açılış <?php
bildiriminin hemen sonrasına, her şeyden önce koymaktır . Ayrıca açılış <?php
bildiriminden önce boşluk / sekme olmadığından emin olun .
header
Yönlendirmeden sonra, mevcut komut dosyasını kullanarak sonlandırın exit();
(Diğerleri de önerdi session_write_close();
ve session_regenerate_id(true)
bunları da deneyebilirsiniz, ancak kullanırım exit();
)
- Test etmek için kullandığınız tarayıcıda çerezlerin etkinleştirildiğinden emin olun.
register_globals
Kapalı olduğundan emin olun , bunu php.ini
dosyada ve kullanarak da kontrol edebilirsiniz phpinfo()
. Bakın bu onu nasıl kapatılacağı konusunda.
- Oturumu silmediğinizden veya boşaltmadığınızdan emin olun
$_SESSION
Süper küresel dizinizdeki anahtarın hiçbir yerde üzerine yazılmadığından emin olun
- Aynı alan adına yönlendirdiğinizden emin olun. Yani bir diğerine yönlendirme
www.yourdomain.com
için yourdomain.com
ileriye oturumu taşımaz.
- Dosya uzantınızın olduğundan emin olun
.php
(olur!)
Şimdi, bunlar en yaygın hatalardır, ancak hile yapmazlarsa, sorun büyük olasılıkla hosting şirketinizle ilgilidir. Her şey çalışıyorsa localhost
ancak uzak / test sunucunuzda çalışmıyorsa, büyük olasılıkla suçlu budur. Bu nedenle, barındırma sağlayıcınızın bilgi tabanını kontrol edin (ayrıca forumlarını vb. Deneyin). FatCow ve iPage gibi şirketler için belirtmeniz gerekir session_save_path
. Bunun gibi:
session_save_path('"your home directory path"/cgi-bin/tmp');
session_start();
("ana dizini yolunuzu" gerçek ana dizin yolunuzla değiştirin. Bu genellikle kontrol panelinizdedir (veya eşdeğeridir), ancak test.php
kök dizininizde bir dosya da oluşturabilir ve şunu yazabilirsiniz:
<?php echo $_SERVER['SCRIPT_FILENAME']; ?>
'Test.php'den önceki bit, ana dizin yolunuzdur. Ve elbette, klasörün kök dizininizde gerçekten var olduğundan emin olun. (Bazı programlar senkronizasyon sırasında boş klasörler yüklemiyor)