Pertama, lakukan pemeriksaan biasa ini:
- Pastikan
session_start();dipanggil sebelum sesi apa pun dipanggil. Jadi taruhan yang aman adalah dengan meletakkannya di awal halaman Anda, segera setelah <?phpdeklarasi pembukaan sebelum yang lain. Juga pastikan tidak ada spasi / tab putih sebelum <?phpdeklarasi pembukaan .
- Setelah
headerpengalihan, akhiri skrip saat ini menggunakan exit();(Orang lain juga menyarankan session_write_close();dan session_regenerate_id(true), Anda dapat mencobanya juga, tapi saya akan menggunakan exit();)
- Pastikan cookie diaktifkan di browser yang Anda gunakan untuk mengujinya.
- Pastikan
register_globalstidak aktif, Anda dapat memeriksa ini pada php.inifile dan juga menggunakan phpinfo(). Lihat ini sebagai cara mematikannya.
- Pastikan Anda tidak menghapus atau mengosongkan sesi
- Pastikan kunci di
$_SESSIONarray superglobal Anda tidak ditimpa di mana pun
- Pastikan Anda mengarahkan ulang ke domain yang sama. Jadi pengalihan dari a
www.yourdomain.comke yourdomain.comtidak melanjutkan sesi.
- Pastikan ekstensi file Anda
.php(itu terjadi!)
Sekarang, ini adalah kesalahan paling umum, tetapi jika mereka tidak melakukan trik, masalahnya kemungkinan besar berkaitan dengan perusahaan hosting Anda. Jika semuanya berfungsi localhosttetapi tidak pada server remote / pengujian Anda, maka ini kemungkinan besar penyebabnya. Jadi, periksa basis pengetahuan penyedia hosting Anda (juga coba forum mereka dll). Untuk perusahaan seperti FatCow dan iPage, mereka mengharuskan Anda menentukannya session_save_path. Jadi seperti ini:
session_save_path('"your home directory path"/cgi-bin/tmp');
session_start();
(ganti "jalur direktori home Anda" dengan jalur direktori home Anda yang sebenarnya. Ini biasanya ada di panel kontrol Anda (atau yang setara), tetapi Anda juga bisa membuat test.phpfile di direktori root dan ketik:
<?php echo $_SERVER['SCRIPT_FILENAME']; ?>
Bit sebelum 'test.php' adalah jalur direktori home Anda. Dan tentu saja, pastikan folder itu benar-benar ada dalam direktori root Anda. (Beberapa program tidak mengunggah folder kosong saat menyinkronkan)