第4回 占いソフトを作ろう2 - データ取得・エスケープ・コメント挿入 - - PHP基礎講座

Saity先生のPHP基礎講座

Lecutures on PHP

第4回 占いソフトを作ろう2 - データ取得・エスケープ・コメント挿入 - (その1)

 このエントリーをはてなブックマークに追加
  • さぁ、PHP講座の第4回、今回も元気に頑張っていこうか。
  • 先生!今度こそもっときちんとした占いソフトの作り方を教えてくれるんですよね?!私は占いにコダワリますよ!!
  • えっ?も、もちろんさ(汗)。じゃあ、今回は年齢を元に占い結果を出すプログラムを作るようにしようか。
  • 本当は生年月日とか血液型も、って言いたいところだけど。。。まぁシンプルなところで、年齢で手を打とうじゃないの!
  • ホッ

ユーザーからの入力を受け取る

  • じゃあ、まずはユーザーの年齢を聞くところからですね。
  • うん。それでもいいんだけど、きちんと学ぶには、よく会員登録画面とかにあるフォームの知識が必要になる。今回はまず、占いの内部の仕組みを説明するために、フォームを使わない方法で年齢を聞いてみよう。

  • フォームを使うと性別とかも聞けそうですね。まぁ、次回まで気長に待つか~。
  • URLを使ったプログラムへの引数の渡し方を説明するね。GET方式(GETメソッドとも言う)と呼ばれているやり方で、検索エンジンでキーワードを指定するときなどによく使われているやり方だ。
  • 具体的に、どういうものなの?年齢をどうやって渡すの!?
  • 今回作るページをuranai.phpと名づけよう。そうすると、以下のような感じになるかな。今まで使ってきたURLとの違いをよく見てね。

http://localhost/uranai.php?age=22

  • uranai.phpの後ろに?age=22って付いていますね。
  • うん。実は、?の後ろに「変数名=値」という形式で指定することで、PHPに値を渡すことができるんだ。
  • んーっと、要するに「age=22」って書いてある部分の、ageが変数名、22が値っていう事ですね。
  • そうだね。まずは、このURLで受け取った22っていう数字を出力するプログラムを作ってみよう。
<?php
if (is_numeric($_GET["age"]) == true) {
  print(
"あなたの年齢は:");
  print(
htmlspecialchars($_GET["age"]));
  print(
"才です");
} else {
  print(
"入力された値は数字ではありません。");
}
?>
  • なんですかこの$_GET~って?最初に「$」がついてるから変数っぽいけど、まだ何にも代入してないですよ~。新しい関数も色々出てきたし・・・。
  • $_GETは特別な変数で、スーパーグローバル変数と呼ばれてるものの1つなんだ。例での使い方を見るとわかるかもしれないけど、$_GET変数は連想配列になっていて、URLで渡された変数名がキー、URLで渡された値が配列の値になっているんだ。今回の例の場合だと、age=22のうちの、ageが配列のキー、22が配列の値という事になるよ。
  • 連想配列!前回やりましたね。覚えてますよ~。キーが数字じゃなく文字になってる配列、でしたよね。つまり$_GET["age"]は・・・22が入ってるんですね。
  • その通り。それを使っているis_numeric関数は、引数が数字かどうかを調べるための関数なんだ。戻り値がtrueの場合、$_GET["age"]は数字が入ってるってわかるんだ。URLだから値のところに何でも入れられちゃうから、変な値を入れたときははじくようにしてるんだ。ちなみに、trueは調べた結果が正しかった場合の戻り値で、正しくなかった場合はfalseという値が返ってくるよ。
  • なるほど~、実行してみたら確かに「あなたの年齢は:22才です」って表示されますね。

  



Pick Up Q&A

Q
ログファイルの中の空のデータ行を削除したい
 このエントリーをはてなブックマークに追加 
A
ログのデータ個数(列数)が固定で、空のログが"<><><>"だと既知であれば if ($line === "<><><>") { continue; } で読み飛ばしてもいいのでは? ...

>>続きを読む

まずは配列や文字列の扱いから、じっくり勉強して行きましょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)

Q&A掲示板 新着情報