flandlescarlet's diary【情報工学生の備忘録】

元機械工学科所属だった情報工学生です。JavaScriptで適当に何かを作ったり、絵を描いていたりします。

PHPを本格的に始め思った事

グローバル変数利用の違いを見極める必要性

基本的にPHPJavaScriptで決定的に違う内容として

コンテンツの書き込みがあります。JavaScriptはセキュリティのためにCookie以外での直接的なデータの保存や書き込みはできないものです。

PHPJavaScriptに比べて予め用意された関数が多いように感じました。結果的にPHPにはDOMやイベント関係の要素が抜けるので大半は必要に応じて関数を調べるといった感じになると思います。(触りを見ての意見)

PHPで今回扱ったグローバル変数$_FILES,$_POST,$_GET,$SESSION,$COOKIE,$REQUEST

基本的にどのグローバル変数でも常にセキュリティの意識と向かい合わせになっています。

グローバル変数の注意についてまとめてみました。

$_GET

フォームのメソッドをgetにすることで得られるグローバル変数。送信時に?(プロパティ)の後ろにvalue値が追加される仕組みとなっている。

良点としては結果がURLに現れるのでブックマークしておける

欠点としては暗号等重要な送信内容の時はデータが筒抜けになるので適応してはいけない、また短いデータしか活用できない。

 

$_POST

フォームのメソッドをpostにすることで得られるグローバル変数、特に変化は見られない。

良点として比較的長い文章でも送信が可能になる。

 

$_SESSION

$_GET及び$_POSTの値を代入する事で一時的にデータを保存する事ができるグローバル変数。効果はWebページが閉じられるまで続く。

良点として、ログイン関係等、うっかりログアウトすることを忘れてしまってもWebページを閉じると同時に自動的にsessionデータも消えるのでセキュリティの面で良い

欠点としてWebを閉じる事でデータが消えてしまうため長期に渡るデータの保管ができない。

 

$_COOKIE

setcookie("Cookie名" , "保存するCookieの変数や値" , "保存期間") により設定してデータを補完するグローバル変数

良点として自由自在に値の保管を決められるため自由性が高い。

欠点として一定期間保存するため、ログイン関係での日付調整が必要となる。

 

$_FILES

フォームのメソッド値をpostにしてグローバル変数が得られる(連想配列式)

良点としてファイルを受信できるので需要度が比較的高まる。

欠点として得られるファイルの情報がわからないので厳密に分岐して安全なファイルを得られるようにソースを記述しなければならない(ファイルのサイズに拡張子等)

 

ざっと見た感じ、PHPはデータ処理系が多くそれで一塊な感じがしました。

関数もJavaScriptと類似するものとして(rand , substr , math系)関数に関しては多量にあるので必要な情報だけ調べて得るのが正解かなと思いました。