Kami menggunakan modul uRapidFlow yang sangat baik oleh Unirgy, tetapi telah mengalami sedikit gangguan. Ketika Anda menjalankan salah satu profil mereka, mereka memanggil session_write_close
. Masalahnya adalah ini berarti bahwa jika kita ingin menjalankan proses dari pengontrol adminhtml, kita tidak dapat mengatur pesan sesi flash untuk menginformasikan pengguna tentang keberhasilan atau pengecualian yang tertangkap.
Apakah mungkin untuk memulai kembali sesi setelah proses selesai, untuk menambahkan pesan sesi?
Saya awalnya tidak yakin apakah mungkin untuk memulai kembali sesi dalam PHP, tetapi bukti konsep PHP berfungsi:
session_start();
// if this is the second run, show the value
if (!empty($_SESSION['foo'])) {
echo $_SESSION['foo'], PHP_EOL;
}
// set an initial value
$_SESSION['foo'] = 'bar';
// start running profile
session_write_close();
// after running profile
session_start();
// set a value to see if it takes
$_SESSION['foo'] = 'foo';
Saya belum dapat mengatur pesan flash dengan benar pada sesi adminhtml. Saya pikir saya mungkin bisa menyebut sesuatu seperti:
Mage::getSingleton('adminhtml/session')
->init('core', 'adminhtml')
->addSuccess('Whoop');
Tapi ini sepertinya tidak berhasil.
Jawaban:
Ini seharusnya bekerja:
Sesi tidak hilang setelah
session_write_close()
, jika Anda ingin menulis lagi, Anda harus membukanya kembali. Bukti dari konsep:sumber
session_write_close
).unset($_SESSION)
. Setelah melakukan iniinit
akan memuat ulang sesi dengan benar.init
pemanggilan metode (baikstart
yang dipanggil olehinit
). Selain itu, itu harus bekerja.