▼スポンサードリンク
◇PHPとは?
◇PHPは何が出来るの?
◇PHPを導入する
◇PHPの表し方
◇PHPプログラムの書き方1/3
◇PHPプログラムの書き方2/3
◇PHPプログラムの書き方3/3
◇コメントを記入する
◇簡単なアプリを作ってPHPの概念を学ぶ!
◇カウンターとは?
◇ブロックを作る
◇実際にプログラムを作成するフローにする
◇@ホームページにアクセスがあった時
◇補足:絶対パスと相対パス(1/2)
◇補足:絶対パスと相対パス(図)(2/2)
◇Aカウンター数が記入されたファイルを読み込む
◇B数を+1します
◇C総アクセス数をファイルに書き込む
◇参考:ファイルを開くモード
◇Dホームページにアクセス数を表示する
◇全体のプログラム
◇最後に・・・
◇始めに
◇用意するものの一覧
◇ANHTTPDをダウンロードしよう
◇次にPHPを実行するソフトをインストールしよう!
◇ANHHTPDの設定をしよう!(1/3)
◇ANHHTPDの設定をしよう! (2/3)
◇ANHTTPDの設定をしよう! (3/3)
◇各種設定しよう!
◇php.iniの設定をする
◇PHPが動くかテストしてみよう!
◇実行プログラムと結果
◇今後の利便性の為に・・・
◇始めに
◇フロー
◇@一言掲示板とは何か?
◇A掲示板のファイルを読み込む(1/3)
◇A掲示板のファイルを読み込む(2/3)
◇A掲示板のファイルを読み込む(3/3)
◇B掲示板を表示する
◇C書き込みがされる
◇D書き込みファイルが正常化確認する
◇Eファイルに書き込みする
◇F掲示板を表示する
◇全てのプログラム
◇最後に・・・
◇関数を使おう!
◇メニュー
◇関数とは何か?
◇関数の形
◇2つの変数を掛け算する関数を作りましょう
◇まとめ
◇条件分岐(if〜else)
◇繰り返し(whileとfor)
◇ファイルの読み書き(fopen)
◇日付を取得(time)
◇クッキー(setcookie)
◇セッション(session)
◇ニュースサイトの情報を取得しよう
「ブラックジャック」を作ろう!
ブラックジャックのルール
フローを考えよう!
先ずは絵柄を決めよう!
事前ルール
親を決めよう
初期手札を配る
トランプの絵柄の決定方法
初期絵柄を表示させる
次のトランプを取るかどうかを決めます
トランプを引く場合はフォームのデータを元に戻す
コンピュータのトランプ状況を表示する
ユーザがもう1枚トランプを引く
ユーザの点数を調べ、21であるかなど調べる
合計ポイントの数を計算する
合計点数により21か等を判定する
合計点数が21の場合
合計点数が21を超えた場合
合計点数がまだ21を超えていない点数がある
コンピュータがトランプの札を引く
ユーザ・コンピュータの点数を決定する
合計点数による条件判断を行う
どちらが勝つか決定する
両方とも21を超えている場合
どちらかが21を超える又は両方とも21未満の時
最後に
ブラックジャックのサンプルプログラム
ALL44964 TODAY10 YESTADAY72
(C)あいねこの館(aineko's YAKATA) |
◆一言掲示板を作ろう!
目次
▼始めに
▼フロー
▼@一言掲示板とは何か?
▼A掲示板のファイルを読み込む(1/3)
▼B掲示板を表示する
▼C書き込みがされる
▼D書き込みファイルが正常化確認する
▼Eファイルに書き込みする
▼F掲示板を表示する
▼全てのプログラム
▼最後に・・・
順番にPHPを学んでいる方なら簡単に出来ると思います
先ずは、プログラムが動くポイントを考え
それをフローにしていきます
その項目ごとに必要な関数を調べて組み立てる
その流れでPHPプログラムは簡単に
作れるでしょう!
一言掲示板を作るにあたって先ずは、フローをどのようにするか考えましょう
@ホームページにアクセス
A掲示板のファイルを読み込む
B掲示板を表示する
C書き込みされる
D書き込み内容が正常か確認する
E掲示板のファイルに書き込む
F掲示板を表示する
|
先ずは、流れを考えて
そのフロー毎にPHPプログラム化していきましょう!
サイトに訪問者がコメントを残せるアプリケーションのことを指します(下記の図を参照して下さい)。

⇒それでは早速、一言掲示板を作っていきましょう!
サーバー上に掲示板の内容を残しておくわけですから、ファイルで書き込み内容を記録していく必要があります

PHPプログラムで表すと以下のようになります。
$i=0;
$templog = file(“log.txt”);
while($templog[$i]!=""){
list($name,$zikan,$message)
=explode("\t",$templog[$i]);
print $name.”<font size=-1>(“.$zikan.”)
</font> :”.$message.”<br>";
$i=$i+1;
}
|
上記のプログラムが何をしているのかを・・・
それを1つずつ確認して、フローの考え方を
学ぶのも上達の1つです
⇒それでは、実際に1行ずつ確認していきましょう!
0:$i=0;
1: $templog = file(“log.txt”);
2: while($templog[$i]!=""){
3: list($name,$zikan,$message)
=explode("\t",$templog[$i]);
4: print $name.”<font size=-1>(“.$zikan.”)
</font> :”.$message.”<br>";
5: $i=$i+1;
6:}
|
フローを図で表しましたので、確認してみて下さい

下記は実際の画面です。

\tで区切った内容を読み込むことによりそれぞれの項目毎に表示させます
下記はコメントが書かれているテキストファイルです。


このFORMのソースファイルです。
下記はコメントを書き込むプログラムのソースです。
コメントを書き込むPHPプログラム
<?
1.$name=$_POST[“name"];
2.$message=$_POST[“message"];
3.$time = gmdate("Y/m/d H:i",time()+60*60*9);
4.$write = $name.”\t”.$time.”\t”.$message.”\n”;
5.$fp = fopen(“log.txt”,"a+");
6.fputs($fp,$write);
7.fclose($fp);
?>
|
それでは、プログラム無い羽陽を見ていきましょう。
1、2行目は以下の通りです。
FORMから送信されたPOSTのデータを取得します。
名前はFORMのname=nameからPHPプログラムに
nameに名前が代入され、変数$nameに読み込まれます
|
3行目は以下の通りです。
gmdataはグリニッジの時刻を返すので、日本は9時間先
なので60*60*9を足します。
Yは西暦、mは二桁の月、dは二桁の日です。/は表示形式
を整える為です
|
4行目は以下の通りです。
書き込む為に、データを整えます。
項目毎には\tで区切ります。
最後に\nをつけるのは、1行毎にデータを書き込む為です。
\nはテキストでは改行になります。
|
5-7行目は以下の通りです。
お馴染みのファイルに書き込む形式ですね。
ファイルを開くモードをa+にしているのは、
ファイルの最後に追記する為です。
|
コメントを書き込むPHPプログラム
|
<?
1.$name=$_POST[“name"];
2.$message=$_POST[“message"]
//以下は不要語を取り除くプログラムです
3.$name=str_replace("\n","",$name);
4.$message=str_replace("\n","",$message);
5.$name=str_replace("\t","",$name);
6.$message=str_replace("\t","",$message);
7.$name=strip_tags($name);
8.$message=strip_tags($message);
//以下は荒らし対策を行うプログラムです
9.$stop_word=array('殺す','死ね','出会い');
10.$num=count($stop_word);
11.for($i=0;$i<$num;$i++){
12.if(strstr($message,$stop_word[$i])==true){
13.print("禁止語が含まれています。");
14.exit;
15.}
16.}
?>
|
余裕がある方向けですが、(ここは飛ばしても良いです)
書き込み内容に\t等が含まれていると、
ファイルの読み書きが正常にできない可能性があります。
この為、不要な語を含んでいないか調べます。
また、書き込み内容に相応しくない語を含んでいないかも
調べることが出来ます。
|
それでは、プログラムの解説に入ります。
3〜6行目のプログラムの解説です。
ファイルに\t、\nを書き込みますので、
その内容が書き込まれるとエラーが出ます。
この為、\t、\nの書き込みを削除します。
str_replaceは変数内の単語を置き換えます
str_replace(“置き換える前”,“置き換えた後”,
置き換える変数);
|
7〜8行目のプログラムの解説です。
タグ<a>などを取り除きます。タグによる不正
なリンクの記述などを防ぎます
|
9行目のプログラムの解説です。
arrayは配列です。(後の章で説明します)
この語が入っている文章の書き込みを
荒らし対策の為にブロックします
|
10行目のプログラムの解説です。
11〜16行目のプログラムの解説です。
メッセージに、先程の荒らし対策の語が含まれていないかを調べます。
exitは強制的にそれ以後のプログラムを停止する
|
Cと同じ内容です
ファイルに名前と時間とメッセージを書き込みます

項目を\tで区切る理由
・エクセルのCSVにも対応させる
・項目毎を管理しやすくする
・,でも区切れますが、管理しやすい内容で区切りましょう
書き込むを実行するプログラムです。
$write = $name.”\t”.$time.”\t”.$message.”\n”;
$fp = fopen(“log.txt”,"a+");
fputs($fp,$write);
fclose($fp);
|
@〜Bの内容と同等です
<html>
<head></head>
<body>
<?
$i=0;
$templog = file("log.txt");
while($templog[$i]!=""){
list($name,$zikan,$message)=explode("\t",$templog[$i]);
print $name.”<font size=-1>(".$zikan.")</font> :".$message."<br>";
$i=$i+1;
}
?>
</body>
</html>
|
書き込むプログラム form.php
<?
$name=$_POST[“name"];
$message=$_POST[“message"];
//不要語を取り除く
$name=str_replace("\n","",$name);
$message=str_replace("\n","",$message);
$name=str_replace("\t","",$name);
$message=str_replace("\t","",$message);
$name=strip_tags($name);
$message=strip_tags($message);
//荒らし対策
$stop_word=array('殺す','死ね','出会い');
$num=count($stop_word);
for($i=0;$i<$num;$i++){
if(strstr($message,$stop_word[$i])==true){
print("禁止語が含まれています。");
exit;
}
}
$time = gmdate("Y/m/d H:i",time()+60*60*9);
$write = $name."\t".$time."\t".$message."\n";
$fp = fopen("log.txt","a+");
fputs($fp,$write);
fclose($fp);
?>
|
書き込むフォーム兼、掲示板の表示 index.php
<html><head></head><body>
<form action=form.php method=POST>
●コメント</b><br>名前<input type=text name=name size=6>
メッセージ<input type=text name=message size=20>
<input type=submit NAME=send VALUE=send></form>
<?
$i=0;
$templog = file("log.txt");
while($templog[$i]!=""){
list($name,$zikan,$message)=explode("\t",$templog[$i]);
print $name."<font size=-1>(".$zikan.")
</font> :".$message."<br>";
$i=$i+1;
}
?>
</body></html>
|
・掲示板の基礎となる一言掲示板の作り方を学びました
・決して難しくはないでしょう?
・PHPプログラムはやりたいことを順番に記述することでアプリケーションを簡単に作れます!
・先ずは簡単なアプリから作って自身を付けていきましょう!
|