#概要
phpでは外部からデータを受け取る際に、htmlのフォームから受け取れたりする。
その際に$_POST
とか$_GET
みたいなスーパーグローバル変数を使う。
##$_POST変数
$_POST変数の使い方はとても簡単で、以下に例を示す。post.html
とpost.php
を用いる。
<html>
<body>
<form action="post.php" method="post">
<input type="text" name="postdata" /><br />
<input type="subimit" name="submit" value="Send Data" />
</form>
</body>
</html>
<?php
echo $_POST['postdata'];
?>
以上。post.html
にアクセスし、formのtextboxに文字を入力してsubmitボタンを押すとpost.php
へとジャンプする。その際に、php側の$_POST変数に自動的にデータが代入される。
そのデータを用いる際には$_POST['inputのname']
とすれば良い。
例えば、inputに"Hello, World"と入力すればphp側で"Hello, World"と出力される。
ちなみにこれで動く事は動くのだが、POSTデータは偽装できたりするのでそのままだとセキュリティ面でかなり危険。
どうしたらいいかは調べてください。私は機会があれば調べようと思います。
##$_GET
$_GET変数も使い方は簡単。これはURLで変数を指定する。
例えば、次のようなget.php
というphpプログラムを用いるとする。
<?php
echo "inputData -> ".htmlspecialchars($_GET['input_data']);
?>
アクセスする際のURLをsample.com/get.php
とすると、sample.com/get.php?input_data=inputString
と言った感じに末尾に?変数名=値と入力してアクセスすると、$_GET
変数に値が格納される。
上記の例だと、$_GET['input_data']
にinputString
という文字列が格納されることになる。
ちなみに、htmlspecialchars
関数は、コードと読み取れてしまう特殊文字を変換してくれる関数。って認識でいいと思う。厳密には少し違うけど。
##まとめ
外部から入力を受け取る方法として、html経由とかになってしまうが、$_GETとか$_POSTみたいなスーパーグローバル変数を使うと良い。
セキュリティ面では改ざんが容易だからかなり危ない。対策は調べれば出てきたはず。
でも、ローカルで回すだけなら正直気軽にさくっと扱えるから優秀だと思う。そもそもローカル以外でphp使いたくないと思うし割と関係ない・・・
今回は以上。前から言ってはなかったけど掲示板プログラムを組んでみたいと思っているのでそれに必要な知識を書き溜めています。あくまでも独学で知識を伸ばす事が目的なので意見は受け付けていません。
コメントは一応参考にはします。でも答えは勘弁してください。