12日目^^
本日の進捗です。
今日はPHPの基礎をやっていました。
本当はもっと進めるつもりだったのですが...
・繰り返し命令は便利
・送信、受信で動く
・クッキー
・ファイルに保存
・セッション
・変数の型について
です。
このサイトの見出し達です。
ではまず、繰り返し命令は便利からです。
そもそもこの繰り返し文というのは、
”if文”と”while文”のことです。
While文
”~の間ずっと~する”
繰り返し変数に対して何かを指定するわけだが、PCは回数を制限しないとずっと繰り返してしまうので、回数を指定する。
例:$count=2;
while($count < 10 ) {
echo $count ;
$count++ ;
}
この例では、countが条件を満たすまでの過程を表示する文なので結果は ”2 3 4 5 6 7 8 9” となる
まとめ
変数の初期値設定
while (条件) {
条件1に合う時の命令 (trueの時)
変数に1を足す
}
for文
“~の間ずっと~する”
書き方が違うだけでwhile文と意味は変わらない。
例:for($count=3; $count<=8; $count++){
echo $count.”<br>”;
}
この例ではcountが3から8になるまでの結果を示せということなので結果は ”3 4 5 6 7 8” になる
”<br>”はphp文ではなくhtml文のタグなのでダブルクォーテションで囲む。countとの間に . を忘れない
まとめ
for(初期値 範囲 1増加) {
数値が範囲内の時、実行される
}
for文で説明した"<br>”をつけると縦に表示される。
"<br>”に限った話ではなく、htmlタグを中にいれると縦に表示される。タグの役割もそのまま果たす。
送信、受信で動く
methodをPOSTで書く。
送信編
phpの最大の特徴はユーザーの行動(書き込みやクリック)がページに反映すること、クライアント側からの送信とサーバーの受信で動く。
送信はhtmlのメールで使う”form”を使う
htmlとphpの2ファイルを使って送信することも可能だが、1ファイル形式で送信こともできる。
書き方
まず、html形式で<form>タグを使う。
例:<form action=“ファイル名” method=“post”>
<input type=“text” name=“data1” size=“10”>
<input type=“submit”value=“送信">
</form>
これが送信画面になる。
<frorm>タグはphpでも有効なタグなので1ファイルでまとめる時はphpに書く。
“ファイル名”は自分が文字を表示させたいファイル。
”name”はphpでデータを受け取る時のキーワードとなるので受信の時のものと間違えないようにする。
methodは”get”と”post”があるがここでは”post”を使う。
上記例で出来た送信画面の送信ボタンを押すと”action”に書かれたファイルに対してメッセを送ることが出来る。
受信編
書き方
送信編の対応した例を書く。
例:$data1=$_POST[‘data1’] ;
echo $data1 ;
“$_POST[‘data1’] ; “ がformで送られた情報を受け取るための記述、” $_POST ”は大文字で書かれた変数である。
これは予約語といい、phpで予め設定されている変数。スーパーグローバル変数といい、サーバーとクライアント間でデータをやり取りする際に使われる。
送信編で送られた<form>の内容が”$_POST”で受け取られechoによって画面に映し出される、という仕組み。
<form>では複数の情報を一度で送ることが出来る。
methodをGETで書く。
formのようにデータを入力して送るのではなく、すでにその画面上にあるデータなら、formを記入する必要がなく、違う書き方をする。
URLにデータを埋め込んで送信する方法である。
形式は簡単だが、直接送れるのは半角英数字と記号の一部のみ。
URLで送信する。
<a herf=“”>でリンクを付けられるが、この後を”?”で区切り、”名前=内容”をくっつけてデータを送信する。
例:<a href=“filename.php?name=AAA”>AAA</a>
これが送信用リンクである。
受信はGETでする。
上記例に関連させる。
例:name=$_GET[’name’] ;
echo $name ;
英数字以外の文字はエンコードにより、文字コードを対応させなければならない。
クッキー
クッキーとは、表示した、もしくは使ったデータをクライアント側のPCに記憶させておくファイルのこと。
書き方
phpの<html>タグよりも先に書く事。
<php?~?>内に記載する。
例;$word=“お酒飲みたい”
setcookie(“data",$word,time()+60*10);
上記例の ” time()+60*10 “というのは60*10という事で、つまり10分間cookieにデータを記憶させているという事。
次はクッキーファイルからデータを取り出す命令。
上記例と関連させるので結果として ” お酒飲みたい “ と表示される。
例:$word=$_COOKIE[“data”] ;
echo $word;
まとめ
書き込み setcookie(“名前”,内容,記憶する時間)
読み込み 変数=$_COOKIE [ “名前” ] ;
クッキー配列
クッキーは変数のように配列形式を使う事が出来る。
クッキーの名前の部分が配列の仕組みになっているので注意。ループと組み込むことで実力を発揮する。
例:$word_0=“ビール”
$word_1=“日本酒"
$word_2=“ワイン”
setcookie(“data[0]”,$word_0,time()+60*10);
setcookie(“data[1]”,$word_1,time()+60*10);
setcookie(“data[2]”,$word_,2time()+60*10);
読み出しの場合は [キー] を指定して個別に読み出せるが、 ”foreach” を使えば全ての配列の要素を一気に取り出す事が出来る。
実行結果は
0:ビール
1:日本酒
2:ワイン
となる。
ファイルに保存
ファイルに保存する。
クライアント側の記憶装置はクッキーであるが、サーバー側の記憶装置の代表はファイルである。
formで受け取ったデータをphpのスプリクトでファイルを作成しそこに書き込む、という事。
フォルダを作る事も可能で、書き込んだファイルからデータを取り出したり、書き換えたり追加したりなど、様々な事が出来る。
例えば、掲示板などのシステムはこのファイルを開き、新しい書き込みをファイルの中に記述し、上書きし続けている。
書き込み方。
次に出てくるスクリプトは” $word "に文章を代入し、何かしらのサブディレクトリ内のファイルに書き込むという命令である。ファイルのロックとは同時に2つアクセスがあった場合にファイルが壊れるのを防ぐために、一度に1人しか書き込めないようにするためである。
スプリクト記入方法
$word=“お酒飲みたい”;
$pointer=fopen(“記入したいファイルの指定”,”w”);
flock($pointer,$word);
flock($poi$nter,LOCK_UN);
fclose($pointer);
記入場所はどこでも良い。
fopenの説明。
fopenはUnixのコマンドに似ている。(個人的にはですが…)
$pointer=fopen()内の”w”がfopenに対応しているコマンドで、この場合は ” 書き込みのみでオープンする。内容をまず削除、ファイルがなければ作成 “ という意味である。
他にもコマンドがある。(全6種類)
ファイルを読み込む
書き込んだファイルを読み込んで表示する。
記入方法。上記例に関連付けする。
$pointer=fopen(“記入したファイルの指定”,”r”);
$line=fgets($pointer);
echo $line;
fclose($pointer);
fgetsは一行だけを取り出す命令である。モードが読み取りの” r “になっている。
セッション
セッションとは、例えば会員IDとパスワードを使ってログインする仕組み。
一度入力されたデータが保存されているシステムである。
SNSやポータブルサイトではログインが必要なサイトではほとんどがこのセッションを使っている。
クッキー・ファイル・セッションの比較をする。
ページを移動したり、ブラウザが終了してもデータが消えないようにする方法として下記の3つが上げられる。
・クッキー
クライアントのコンピュータにテキストファイルを 作り、そこにデータを書き込むもの。
・ファイル
サーバーにテキストファイルを作り、そこにデータ を書き込む。
・クライアント
IDを残し、サーバーにデータのファイルを作る。
クライアントのIDはクッキーを使うが、クッキーは意識する事無く作成できる。書き方はクッキーに似ている。
書き方
・セッション
$_SESSION[‘word’]=$word;
$word=$_SESSION[‘word’];
・クッキー
setcookie(“word”,$word,time()+60*10);
$word=$_COOKIE[“word”];
これにより、サーバーのどこかにwordのデータが保存される。保存場所は通常であれば ” /temp ”だが、ローカルでPHPを動かす場合はOSに保存先が違う。
同時にクライアント側にはIDがクッキーとして保存される。
このIDをもとにサーバー側のセッションファイルを読み出している。
セッションではクッキーの保存時間をtime()+60*10として設定するのに対して、セッションでは時間の設定がない。通常ではブラウザを終了するとセッションデータは消えてしまう。
”php.ini” での設定を変更することで、ブラウザ終了後もデータを残す事が出来るが、初期設定のデータではなくなってしまう。
php.iniでの設定は秒単位で設定できる。ちなみにこのような文。
“ session.cookie_lifetime=0 "
セッションスタート
セッションを開始する前に、開始を宣言する。
“ session_start “はPHPの一行目に宣言する。
でないとエラーになる。
例:<?php
session_start();
?>
開始があれば終了もある。
例:session_start();
session_unset();
session_destroy();
一行目:セッションデータを初期化、セッションを行う場合は必ず必要。
二行目:全てのセッション変数を解放
三行:セッションに登録されたデータを全て破棄する。
これらunsetやdestroyはログアウトなどの時に使用されている。
変数の型について
変数の「型」とはなにか
”$asd=3”のようにいきなり代入する前にまずは宣言をしなければならない。
その際に、まずこの変数に何を代入するのが決めなければならない。
それが型の宣言と呼ばれるもの。
型の種類は4種類
この変数の型は8種類であるがわかりやすい4種類を説明していく。
1、論理型 boolen trueかfalseにどちらか二種類
2、整数型 integer その名の通り整数
3、浮動型小数点 float 少数の事。
4、文字列型 string文字。
C言語等では変数を使用する前に、この区別を行わなければならないが、phpでは使用しない。
その他には配列型・オブジェクト型・リソース型・ヌルがあって配列もひとつの型である。
型の使いかた
これはほとんど無視してよい(?)が、使用する場面もある。
それは型キャストである。これは数を入れられたことにより自動的に決まる「型」を強制的に他の型に変えるということ。
$asd=(int)$total;
という使い方。intはinteger、整数型に変更される命令。
関数は$asd=count($total);と括弧が逆。
この ” int “を使うことにより小数点が消える、ということ。
最後はタイピングです。
-Aをキープしています。
あと一段階上げたいですね。
以上が本日の進捗となります。