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 <?php
deklarasi pembukaan sebelum yang lain. Juga pastikan tidak ada spasi / tab putih sebelum <?php
deklarasi pembukaan .
- Setelah
header
pengalihan, 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_globals
tidak aktif, Anda dapat memeriksa ini pada php.ini
file dan juga menggunakan phpinfo()
. Lihat ini sebagai cara mematikannya.
- Pastikan Anda tidak menghapus atau mengosongkan sesi
- Pastikan kunci di
$_SESSION
array superglobal Anda tidak ditimpa di mana pun
- Pastikan Anda mengarahkan ulang ke domain yang sama. Jadi pengalihan dari a
www.yourdomain.com
ke yourdomain.com
tidak 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 localhost
tetapi 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.php
file 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)