İ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ış <?phpbildiriminin hemen sonrasına, her şeyden önce koymaktır . Ayrıca açılış <?phpbildiriminden önce boşluk / sekme olmadığından emin olun .
headerYö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_globalsKapalı olduğundan emin olun , bunu php.inidosyada 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
$_SESSIONSü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.comiçin yourdomain.comileriye 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 localhostancak 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.phpkö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)