今回からHTTP通信をやっていこうと思います。
なんだ!HTTPって!という方はいるかいないか分かりませんが、ブラウザのアドレスバーの一番先頭に入れる「http://」ってやつです。
そんな難しくないです。
そのHTTP通信を利用して、サーバ側へ値の受け渡しをするわけなのですが、受け渡し方法は大きく2つと初心者の方は教わるはずです。
それは、POST と GET ですね。
これは、HTTP通信するときの関数(メソッド名)なのですが、実際は7つあります。
まあ、そんなウンチクはさておいて。
PHPをWindowsで実行したいのであれば、XAMPP(ザンプ)をインストールすると、自分のPCでも簡単に動作させることが出来ます。
インストール方法は、以下のサイトから。
WINDOWS XAMPP にて LARAVEL をインストール (XAMPP V1.8.3インストール)
phpedu09.php
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>tech.pjin.jp HTML5 Template</title> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css"> <!--[if lt IE 9]> <script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.min.js"></script> <![endif]--> </head> <body> <div class="container"> <div class="page-header"> <h1><i class="fa fa-check-square"></i> PHP問題9</h1> </div> <div class="jumbotron"> <h1><?= $_GET['abc'] ?></h1> </div> </div> <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> </body> </html>
※CSSには、Bootstrap、Font-Awesomeを利用しています。
※Javascriptには、jQuery1.11.3を利用しています。
問題:「http://localhost/phpedu09.php?abc=ノーベル賞」 の結果(実行結果)を答えなさい(複数選択可)
- 「$_GET[‘abc’]」と表示される。
- 「abc」と表示される。
- 「ノーベル賞」と表示される。
- 特に何も出力されない。
- エラーが出力される。
正解:3.「ノーベル賞」と表示される。
ブラウザからサーバへ値の受け渡し方法は大きく2つと教わります。
1つ目は、formタグを利用して、method=”POST” を指定し、POSTで送信。
2つ目は、それ以外のGETの送信。
POST送信は、<form action=”url” method=”post”> のように指定し、submitボタンなどを利用し送信します。
それ以外はGETでの送信になります。
今回は URL に ?abc=ノーベル賞 と指定があります。
この「?」以下のことを、クエリーストリングといい、サーバ側(PHPのプログラム)では $_GET[キー] で取得できます。
クエリーストリングの書式は、?キー=値&キー=値&・・・という形式なので、今回のキーは abc であることが分かります。
HTTPメソッドはGETで送信しているので、$_GET[‘abc’] で値が取得できます。