Dinda Permata
dindaprm 1 tahun yang lalu
365 3 PHP

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

Dewi Lestari
dewilestari1 tahun yang laluJawaban Terbaik
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
Tania Oktaviani
taniaokta1 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
Rina Marlina
rinamarlina1 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.

Top Coder

Nadia Putri
nadiaputri
630 Point
Laras Ayu
larasayu
565 Point
Arif Wibowo
arifwbw
520 Point
Aulia Rizki
auliarzk
515 Point
Rizky Hidayat
rizkyhdyt
480 Point
Ilham Nurdin
ilhamnrdn
475 Point