私はセッションをデータベースに保存しようとしています。それをシリアル化してテーブルのTEXTフィールドに挿入することができます。私はそれを取り戻すこともできますし、それを「直列化しない」こともできます。私はそれを私のセッションに戻すことはできません。
私は基本的にテーブルからそれをつかみ、$ _SESSIONをそれに置き換えたいので、セッションのすべての値はこの$ _SESSION ['somevalue']のように再び利用可能になります。
私はそれをシリアル化:その後、
if(!empty($_POST)){
unset($_POST['submit_x'],$_POST['submit_y'],$_POST['submit']);
foreach ($_POST as $key=>$value) {
$_SESSION[$key] = $value;
}
$serialized_data = serialize($_SESSION);
setSession($userID,$serialized_data);
}
し、それを保存します。
function setSession($userID,$data){
//is there a row?
if(getSession($userID)){
$sql = "UPDATE session_data SET session = '".mysql_real_escape_string($data)."' where user_id = ".$userID;
}else{
$sql = "INSERT into session_data VALUES('',".$userID.",'".mysql_real_escape_string($data)."')";
}
$result = mysql_query($sql) or die(mysql_error());
return $result;
}
、その後、私はそれで私の$ _SESSIONを交換する必要がある部分に来ます。
foreach(unserialize($serialized_data) as $key=>$value){
$_SESSION[$key] = $value;
}
このようにforeachに入れることはできませんか?私は困惑していて、どこのステージで間違っているのかわからない。
あなたは 'session_start()'を思い出しましたか? – Ryan
あなたは絶対に 'foreach'を使うことができます - 問題は他の場所にあります! – rjz
データベースにセッションデータを格納する際のポイントは何ですか?*このように*?なぜ$ _SESSION配列を使ってみませんか? –