PHPを学ぼう!

▼PHPを学ぶチャプターです。


SMS付き2Gは、900円。
通話付きは、1600円。

 

素材メニュー

 ◆Chapter 1

 ◆Chapter 2

 ◆Chapter 3

 ◆Chapter 4

 

制作ヒント

 ◆制作のヒント

 

レッスンメニュー

 ◆Chapter2 練習問題

 ◆Chapter3 DB練習問題

 

サイト運営者がPHPを学んだ
お勧めの書籍です!
これ一冊で基本的なPHPの仕組み、簡単なプログラムの作成、SQLiteを使ったデータベースなどかなり学べる要素が詰まっています!

↓↓↓ ↓↓↓

PHPレッスンブック―PHP5対応

新品価格
¥2,520から
(2013/2/24 04:38時点)

 

 

サイバーテロの技法について書かれた書籍です!
ハッカーの手法を知ることでご自身のサイトがハッカーに攻撃されたときそれを防ぐ手法を紹介しています。

↓↓↓ ↓↓↓

PHPサイバーテロの技法―攻撃と防御の実際

新品価格
¥1,890から
(2013/11/5 10:09時点)

 

 

★初年度100円! サブドメインやメールアカウントを無制限に設置できます。
PHPやCGIは勿論、WordPress、Movable Type Open Source、掲示板、ブログ、ショッピングサイトなどが簡単に導入できるので複数サイトを運営したい場合に便利なサービスです。

↓↓↓ ↓↓↓

 

PHPが動作するサーバー

 

はじめてのHP | 無料素材 | タグ辞典 | CSSガイドEX | PHPを学ぼう!

◆Chapter 2 - GETとPOST

パラメーターの受け渡し方法に " GET " と " POST " があります。
" GET " と " POST " 、ホームページ制作を経験したことがあるなら、一度は聞いたことがあるでしょう。
form タグを利用する時に method の指定で使います。
ブラウザーの URL の欄で以下のようなものを見たことはありますね。

アドレスバーサンプル

 

検索エンジンを利用すると、 URL の最後に何やら記号付きの URL になります。

アドレスをよく見ると、" ? " マークの後に文字がついてますね。
これがパラメーターなのです。
上記のアドレスでは、" p=4 " と " n=13 " の値が付けられています。
" GET " の場合は、このようにパラメーターが確認できるのです。

 

" GET " の場合は、以下の場合に使われます。

  • フォームの method に " get " を指定した場合
  • パラメーターを含むリンクをクリックした場合
  • パラメーターを含む URL を直接入力した場合

 

フォームの method に " get " を指定した場合、そこで入力された値がパラメーターとして送信され URL の後に付加されます。
パラメーターを含むリンクをクリックした場合、そこに含んでいるパラメーターの情報をそのまま送信します。
パラメーターを含む URL を直接入力した場合、意図するパラメーターを含むことで情報を送信することができます。

といっても、よく理解できないでしょうから、サンプルを使って実際に動かしてみましょう。

 

次のフォームを使って " GET " でパラメーターを送信してみます。
名前と年齢を入力して送信ボタンを押してください。
年齢は半角数字を使います。

<form action="./sample/sample2_9.php" method="get">
お名前:<input type="text" name="name" maxlength="8" size="12">
年齢<input type="text" name="age" size="4" maxlength="2">
<input type="submit" value="送信">
</form>

このコードを表示すると、次のとおりになります。
実際に動作しますので試してみてください。

お名前: 年齢

 

パラメーターを含むリンクとは、下記のようなリンクです。

<a href="./sample/sample2_9a.php?name=naomi&age=17">リンク</a>

このリンクを表示すると、次のとおりになります。

リンク

クリックすると先ほどのフォーム同様に動作しているのがわかりましたね。

アドレスバーに直接、 " ./sample/sample2_9a.php?name=nomi&age=17 " と入力しても同じ結果を出します。

"GET" は、簡単にパラメーターが渡せるのです。

 

ただし、" GET " では注意しなければならない点があります。

  • パラメーターとして受け渡す文字数に制限がある
  • パラメーターで渡した値は可視化される

可視化されるということは、アドレスバーで直接パラメーターを改編することができるということです。
悪意を持ってパラメーターで情報を得ようと、適当な値を入れてみたりする人もいます。
基本的には、" GET " では改編されてもよい(見られてもよい)値を利用するようにしましょう。

 

ちなみ、「初心者向 PHPを学ぼう!」では指定されたパラーメーター以外は、エラーページを表示するようにしています。
試しに、このページのアドレスに表示されている " n=chap2_8 " のパラメーター値を " n=chap2_100 " に変更してみてください。
存在するページなら該当のページを表示し、存在しないページならエラーページを表示させています。

 

" POST " の場合は、以下の場合に使われます。

  • フォームの method に " POST " を指定した場合

 

" POST " は、" GET " のように気軽に使うことができません。
form タグを利用する時に method で " post " を指定することで利用します。
送信されたパラメーターは、アドレスバーに表示されることもなく、隠匿性があります。
設置するパラメーター数に制限もありません。
SSL などを併用して使うとより強固なセキュリティが構築できます。

 

先ほど利用した " get " の送信フォームを " post " に変更し動作確認をしてみましょう。
修正点は、 method の値だけです。

<form action="./sample/sample2_9.php" method="post">
お名前:<input type="text" name="name" maxlength="8" size="12">
年齢<input type="text" name="age" size="4" maxlength="2">
<input type="submit" value="送信">
</form>

このフォームを表示すると、次のとおりになります。
当然のことながら、見た目は変わりません。

お名前: 年齢

 

実行した後、アドレスバーを確認してみてください。
" GET " のようにパラメーターが付いていないのがわかりますね。

 

" GET " と " POST " は一長一短です。
どちらを使うかは、特性を考えた上で利用しましょう。

 

form から送信された name 属性の値は、 name 属性で付けた名前でパラメーター値と共に引き渡せます。
パラメーターを受け取るページが " GET " なら、

$_GET['name'];

" POST " なら、

$_POST['name'];

で値を受け取ることができるのです。

age の値なら次のとおりとなります。

$_GET['age']; $_POST['age'];

 

" GET " と " POST " は、スーパーグローバル変数と呼ばれる種類になります。

 

【追記 : 2014/1/21】

GET で送信する際の文字をデコードすることができます。
詳しくは、ツールEXの『URLエンコード&デコード』を参照ください。

 

【追記 : 2014/2/21】

GET でパラメーターを渡す場合に "#" (シャープ)を含むことができません。
これはブラウザが意図的に "#" の箇所で中断する使用による現象とのことです。 文字色や背景色などで RGB カラーの値を与えたい場合には、 "#" を使わずカラーネームで対処する必要があります。

 

POST と GET の値を得るのに PHP ではでグローバル変数の $_REQUEST が使えます。
$_REQUEST を使うことでプログラム上、POST と GET を区別することなく利用できます。

 

 

練習問題

 

 

 

 

 

 

 

 

 

 

 

 

 

ex-mode.net | ツールEX | 素材EX | アフィモール | 初級者向 初めてのホームページ作り | Htmlタグ辞典 | 初めてのプランター菜園 | リンク・ボード
気のみ気のままなブログ | CSSガイドEX | ホビ★コレ | 班長日記!

▲UP

Copyright (C) ex-mode.net 2017. All Rights Reserved.