Kenapa session di PHP tidak tersimpan setelah redirect
Halo semua,
Saya sedang membuat aplikasi login sederhana menggunakan PHP native. Saat proses login, saya melakukan verifikasi user, lalu menyimpan data ke session seperti ini:
session_start();
$_SESSION['user_id'] = $user['id'];
header("Location: dashboard.php");
exit;
Tapi setelah redirect ke `dashboard.php`, datanya tidak terbaca. Session-nya seperti hilang atau tidak pernah diset.
Saya sudah memastikan session_start() juga dipanggil di `dashboard.php`, tapi tetap kosong. Tidak ada error juga, hanya saja data tidak tersimpan.
Apa ada hal lain yang bisa membuat session gagal atau tidak tersimpan?
Apakah masalah dari browser, konfigurasi server, atau urutan kode?
Terima kasih ?2 Jawaban
Masalah ini sangat sering terjadi terutama kalau ada output (echo, spasi, HTML) sebelum `session_start()` atau `header()` dipanggil.
Pastikan tidak ada karakter apapun sebelum kode berikut:
<?php
session_start();
Jika ada spasi, BOM (byte order mark), atau baris kosong di atas tag PHP pertama, maka session bisa gagal karena PHP sudah mulai mengirim header ke browser.
Cek juga konfigurasi `php.ini`:
session.auto_start = 0
session.save_path harus bisa ditulis (biasanya /tmp di Linux)
Dan pastikan juga browser tidak memblokir cookie, karena session PHP disimpan via cookie.
0
taniaokta•1 tahun yang lalu
Saya pernah ngalamin juga. Waktu itu ternyata saya lupa menambahkan `session_start()` di file target setelah redirect (dashboard.php).
Walaupun session sudah dibuat sebelumnya, kamu tetap harus panggil `session_start()` di semua file yang mau akses data session.
Dan jangan lupa: semua pemanggilan `session_start()` harus ada di baris paling atas, sebelum output apapun muncul di browser.
0
rinamarlina•1 tahun yang lalu
Kadang juga masalahnya dari file `.htaccess` atau konfigurasi server seperti nginx yang tidak menyimpan session dengan benar.
Solusi saya waktu itu: ganti session handler ke file atau database manual agar lebih bisa dikontrol, dan tidak bergantung ke default folder system yang bisa jadi tidak writable.
0
Silahkan Login untuk menjawab.