ホームページのお役立ち情報サイト
ホームページ作成 メニュー
HOME

HPのお役立ちトピック

Web作成のおすすめ本紹介

ホームページ作成入門

知って得するノウハウ集

HTML/CSSのテクニック集

JavaScriptのテクニック集

PHPを始めよう!
  基礎編
PHPってどんなもの?
文字を出力してみよう
変数を使ってみよう
演算子を使おう
配列を使おう
関数を自分で作ろう
  制御構文
[if]シンプルな条件分岐
[switch]if文を簡潔に記述
[while/for/foreach]ループ
  応用編
フォームのデータを受け取る
クッキーとセッション管理
  実践編
カウンタでファイルの読み書き
BBS(掲示板)を作ろう!


ホームページ 一言アンケート
HTML作成にメインで使っているソフトは?




 印刷用ページ

ご意見・ご感想
ご利用上の注意


実践Webデザイン塾
格安ADSL・電話加入権



PHPを始めよう!

PHPでフォームからデータを受け取ろう

今まで説明したPHPは、1つのスクリプトの中に変数を定義して、それを処理するという流れでした。ここでは、HTMLのフォームを使い外から入力された値によって処理を行う方法を説明します。掲示板なども、このようなフォームを利用したスクリプトの応用になります。

PHPのバージョンによるご注意

PHPのバージョンが4.1.X以前の場合は、フォームのデータを受け取る際の仕様が異なります。
$_POSTと書かれている部分を$HTTP_POST_VARSに、$_SERVER$HTTP_SERVER_VARSと書きなおすことによって動作します。

フォームから文字を出力してみよう

下のソースでPHPファイルを作り、動かしてみましょう。名前と性別が表示されます。
・ソース

念の為、HTMLのフォームについて簡単に説明致します。
HTMLのフォームは、<form>タグで囲まれた、フォームの内容(<input>タグで記述された部分)を、<form>タグaction属性に指定したファイルに送信します。

このサンプルでは、フォームデータの送信先を、$_SERVER['PHP_SELF']にしています。 これは、PHPで特殊な意味を持った変数(サーバー変数)で、自分自身のファイルのパスの情報が入っています。つまり、このスクリプトではフォームの送信先とフォームの入力が同じという意味で、送信後の処理もそのフォームのファイル地震が行っているということになります。(もちろん他のファイルを指定することも可能です)

また、フォームの送信方法は、2つあり「POST」形式「GET」形式があります。この送信方法は、<form>タグのaction属性で「method="POST"」「method="GET"」と記入します

2つの送信形式の違い
GET URLの後ろにデータを付けて送ります。(環境変数のQUERY_STRINGと呼ばれています)
サーチエンジンのほとんどはGETを使用しています。検索結果のURLが非常に長くなるのは、GETによりURLでデータを送っているからです。URLを使って送るため、データ量に制限があります。データを「GET(取得)」する際によく利用されます
POST ちょっと難しく言うと「HTTP ヘッダのボディ部でデータを送信する」という意味ですが、「データの制限が特になくそのまま送信」というイメージで覚えていただければ問題ないと思います。データを「POST(送る)」する際に、よく利用されます

※その他サーバー変数
フォームとは、あまり直接関係ありませんが、豆知識として何種類かのサーバー変数をご紹介致します。
記述方法 意味
$_SERVER['HTTP_USER_AGENT'] ブラウザの情報
$_SERVER['HTTP_REFERER'] 一つ前のページのURL
$_SERVER['QUERY_STRING'] URLで渡された値(URLの?マーク以下)
$_SERVER['HTTP_ACCEPT_LANGUAGE'] 言語(日本語の場合は「ja」)
$_SERVER['REMOTE_ADDR'] 閲覧者のIPアドレス


PHPによるPOSTデータの取得方法

それでは本題に戻りますが、PHPはフォームの"POST"メソッドで送られたデータが$_POSTという配列の中に入ります。
たとえば、<input type="text" name="yourName">から送られたデータというのは、$_POST['yourName']の中に入るわけです。これを前提に話を進ませていきますと、

if($_POST['submit']) { ・・・・・

の部分は、「もし、送信ボタンが押されたら・・・」という意味を示しています。つまり、送信ボタンのnameが"submit"ですので、$_POST[submit]に値が入っているかどうかを調べています。
ボタンが押された後は、入力内容の出力処理になります。
これは、一つ一つのPOSTのデータを出力していくだけです。ちなみに、性別の部分ですが、これはHTMLムの中にデフォルトで value="男" といったデータを入れています。ラジオボタンやチェックボックスなどでこれが指定されている場合は、このデータが送られてくる形になります。

いたずら防止をしよう

このままの状態では、フォームの中に< > で括ったタグが書けてしまい、フォームの中に、悪意のあるJavaScript等を書いたら取り返しのつかないことになるかもしれません。大きなセキュリティホールにもなりかねないので、$_`POSTで送られたデータをhtmlspecialchars()という関数を使ってタグとして解釈しないようにします。
htmlspecialchars()の使い方は以下の通りです。本来なら、赤い文字で出力される文章が、タグが通常の文字列のように表示されます。これは、<>などの文字列が、&lt;&gt; といったHTMLのエンティティに変換されているからです。
・ソース
また、このようないたずらは、クロスサイトスクリプティングと言われWeb上のセキュリティホールとして注目されています。
情報処理振興事業協会からレポートが出ておりますので、こちらをご覧下さい。 http://www.ipa.go.jp/security/ciadr/20011023css.html



オススメ!PHPが使える格安レンタルサーバーのご紹介

【格安】月々833円で独自ドメインも使える! (株)ジェイナビ
PHPが利用可能で値段が月々833円という格安のレンタルサーバーです。SSHでのアクセスも可能な上、MySQLも使えるので、ちょっとしたデータベース系のサイトの構築も可能です。充実したコントロールパネルや、無制限のPOP3アカウントなど、レンタルサーバーとして基本的な機能も揃っています。

3,000台超のサポート実績を誇る最強の専用ホスティング!
AT-LINK専用サーバ・サービス
Click Here! (株)リンク
本格的なWebサイトの運用を考えている方や法人の方には、専用サーバーがお勧めです。専用サーバーとは、1台のサーバーを1人のユーザーのみで運用が出来るサービスで、100人前後で切り分けて利用するレンタルサーバーに比べて安定した運用が可能になります。ページビューが多いサイトや、プログラムを使った高負荷なサイトに最適です。 (2003/06現在) Click Here! Click Here!

オススメ!分かりやすいPHP関連書籍を最短24時間でお届け!




  PageTop   
ホームページ制作
Copyright© 2003 1kara.net All right reserved.
[PR]おすすめコンテンツ:
iアプリ検索ゲーム通販転職自動車保険無料着メロゲーム攻略郵便番号検索ショッピングモール健康食品ダイエット年収
オンラインショップ「買っ得.com」
  ブランド品 販売(グッチ・ティファニー)美容健康 ダイエット サプリメント販売CD DVD 販売ゲームソフト 攻略 本 雑貨 インテリア英語教材 英語学習
豆乳クッキーダイエット自動車保険 口コミ通販化粧品 口コミダイエット 口コミ
画像カウンター