Home > 梅原 > 2/17水、PHP『 超 』初心者勉強会に参加して来ました。2

2/17水、PHP『 超 』初心者勉強会に参加して来ました。2

20100218
Category:梅原 /Tags:,

PHP 『 超 』 初心者勉強会 – ステップ 3&4に行って来ました。
今回はsessionとcookieの回でした。

今回は粛々と重要関数の説明。
sessionとcookieは両方とも、php宣言の前にhtml表記どころか空白や改行があってもダメなので、そこが気をつけるポイントらしい。

session

<?php
//htmlが開始される前にsession_start()が必要
//だから、空白や改行があるとダメ。
session_start();

//$_SESSIONは予約語。「$_大文字」は予約語。他には$_POST,$_GET,$_SERVERなどがある。
$_SESSION["count"]++;
print $_SESSION["count"];
print "←セッションのカウント数";
//セッション情報はサーバー(アパッチ)上に置かれる。ブラウザに対して紐づけられる。
//サーバー側の設定によって保存時間を設定できる。
//通常はブラウザを閉じるまでとか、20分とか。

print "<br />".__LINE__."<br />";
$_SESSION["name"] = "なまえ";
print __LINE__."<br />";
print $_SESSION["name"];
print "<br />".__LINE__."<br />";

print "<br />".__LINE__."<br />";//何行目まで実行したかを確認できる。

//呼び出しているurlの末尾に?name=hogehoge;が付いていた場合に
//$_GET["name"]で取得できる。
print $_GET["name"];
?>

cookie

<?php
//htmlが開始される前にsetcookie()が必要
//だから、空白や改行があるとダメ。
//http://php.net/manual/ja/function.setcookie.php

setcookie("key2","XYZ");
setcookie("key","value");
setcookie("key1","abc");

print $_COOKIE["key2"];
print $_COOKIE["key"];
print $_COOKIE["key1"];
//cookieはローカルPC側のブラウザに残る
?>

第三引数で有効期限を指定する。

<?php
//htmlが開始される前にsetcookie()が必要
//だから、空白や改行があるとダメ。
//printもhtmlを操作するようなものなので、
//setcookieより前に置いちゃダメ
//http://php.net/manual/ja/function.setcookie.php

//time()で1970年1月1日からの秒数を取得できる
$expire = time()+60*60*24*365;
//print $expire;//ここに書くと、setcookieがきかなくなる。

setcookie("key2","XYZ9999",$expire);//第三引数で有効期限を指定できる。
setcookie("key","value");
setcookie("key1","abc");

print $_COOKIE["key2"];
print $_COOKIE["key"];
print $_COOKIE["key1"];
//cookieはローカルPC側のブラウザに残る

print "<br />";
print $expire;
print "<br />";
?>

dump.inc.php

あと、dump.inc.phpというツールも使ってたみたい。
http://ubuntu.php-beginner.net/setup2/debug/dump.html

雑記

全くのプログラム未経験者も少なくないみたいなので、ゆっくりとした進み方しかしないのですが、自分も油断しているとちょっとした表記のクセにはまってしまったりしたので、そのゆっくりスピードに助けられました。だからきっとちょうどいいスピードだったんだと思います。

▼PHP初心者勉強会
http://php-beginner.net/php-beginner/Information/Information.html

▼前回の様子はこちら
http://www.mztm.jp/2010/01/31/php/

関連記事:

Comments are closed.