session変数
スーパーグローバル変数である
=[];
にするとsession変数の中身がからになる。
$_SESSION=[];
$_SESSION["login"]とかがあったら、それがtrueとかはもちろんそのキーごと消す
session_destroy();
webサーバに残されていたクッキーを消す
消してくれと言ってもお前誰やねんになるので、sessionを開始しておく必要がある
サーバー側のはアパッチのどこぞに保存されるらしい。自分で見たけどapacheのlogsのssl_request.logあたりかな??
教科書p236
ステートフルなセッション管理が必要
反対がステートレス
セッションIDをブラウザ上のクッキーに保存
『3ステップでしっかり学ぶPHP入門(技術評論社)』
問題3
$a="a";
これはprint_rしたらa
$a=["a"];
これはArray ( [0] => a )
問題文(修正せよ)
if (isset($_SESSION["cart"])==true && isset($_POST["item"])==true){
$_SESSION["cart"]=$_POST["item"];
//はじめてitemがpostで送られてきた
}else if (isset($_POST["item"])==true){
$_SESSION["cart"]=[$_POST["item"]];
}
[$_POST["item"]]んとこがおかしい。
多次元配列が分かってないのでこまりましたね
→多次元と連想配列をごちゃまぜに考えてるですよ
$a["cart"]="a";
print_r($a);
出力結果
Array ( [cart] => a )
echo $a["cart"];
出力結果
a
<?php
$ary["hoge"]="foo";//これは連想配列
$ary=["foo"];//0番目にfooをいれるよという多次元配列
$ary["hoge"]=["foo"];//多次元配列×連想配列
$ary["hoge"]=["foo"];
$ary["hoge"]=["nyaa"=>"foo"];
echo "<br><pre>";
print_r($ary);
echo "</pre>";
?>
--->p236_02.php
<?php
$a["cart"]="a";
print_r($a);
echo $a["cart"];
$b=["b"];
echo $b[0];//bを出す書き方
$c["c"]=["c"];
echo $c["c"][0];//これがcを出す書き方
//----------------------
//$ary["hoge"]="foo";//これは連想配列
//$ary=["foo"];//0番目にfooをいれるよという多次元配列
$ary["hoge"]=["foo"];//多次元配列×連想配列
//$ary["hoge"]=["foo"];
//$ary["hoge"]=["nyaa"=>"foo"];
echo "<br><pre>";
print_r($ary);
echo "</pre>";
?>
自分でいろいろ変数をつくって出力してみるといいよ
配列が1こだけだから余計分かりにくいと思う
中身をたくさんいれてな。