Webアプリケーションを作る際に使用されるPHPについての基礎を学習した内容をまとめています。
正直なところ学習を始める前、環境を準備するところで既に心が折れそうになりました。有名なところではXAMPPがありますが、何を思ったのかサーバーから作り始めてしまいましたので。。。笑
通常、PHPはHTMLの中に記述する。
<html>
<head>
<titile>PHP</title>
</head>
<body>
<!-- ここから -->
<?php
print "Hello, PHP";
?>
<!-- ここまでがphpのコード -->
</body>
</html>
コメントの記述
コメントを書かないと、どうなるだろう。
あるコードを例え3日後に確認したとしても、そのコードは既に他人のコードのように思え、なぜ自分がそのコードを記述したのか判らない時が多々ある。
なので、未来の自分の為でもあり、他のメンバーの為でもあるので使いましょう、というところ。
ただ、良いコメントを書くって難しい。
<?php
// で1行コメント
# でもコメント(非推奨となっている)
/*
で複数行
コメント
*/
?>
インデント
コードの可読性を上げるために字下げを行うことをインデントと呼ぶ。
インデントを行うには、行頭でスペースを挿入する。
ただし、誤って全角のスペースを挿入しないように注意したい。
<?php
// インデントなし
print "Hello, PHP";
// スペース4つ分のインデントあり
print "Hello, PHP";
?>
ヒアドキュメント
何行もの長い文章に名前をつけておき、その名前を指定して一度に処理する方法。
名前にはよくEOF(End Of File)やEOM(End Of Message)が使われるが、他の名前でも問題ない。
名前にはインデントを行ってはいけないことに注意が必要。
<?php
print <<< EOF
<p>改行は</p>
<p>気にする必要はない</p>
EOF;
?>
PHPの型
PHPの型は公式マニュアルによると10種類あり、基本的にはPHPが実行時に決めているとのこと。
よく使うであろうと思われる型を並べておくことにする。
FloatとDoubleは同じとのこと。
型 | 説明 |
---|---|
String | 文字列 |
Integer | 整数 |
Float, Double | 浮動小数点数 |
Boolean | 論理型 |
Array | 配列 |
Object | オブジェクト |
Null | ヌル |
エスケープシーケンス
特殊な文字のことをエスケープシーケンスと言い、¥マークと組み合わせて1文字を表す。
こちらも、よく使うであろうと思われるエスケープシーケンスを並べておくことにする。
エスケープシーケンス | 意味 |
---|---|
¥t | 水平タブ |
¥n | 改行 |
¥r | キャリッジリターン |
¥' | シングルクォーテーション |
¥" | ダブルクォーテーション |
¥¥ | 円マーク |
¥$ | ドルマーク |
文字列リテラル
文字列リテラルには以下の3パターンの記述方法がある。
それぞれの違いについて確認・・・
<?php
$hoge = "Hello";
// シングルクォーテーションで括る
print '$hoge'; // hoge
// ダブルクォーテーションで括る
print "$hoge"; // Hello
// 中括弧で括る
print '{$hoge}'; // {$hoge}
print "{$hoge}"; // Hello
?>
結果、文字列中に変数を使用した場合に違いが出てくる。
シングルクォーテーションで括った場合は、変数が展開されずに変数名をそのまま表示するようになっている。また、ダブルクォーテーションで変数は展開できるが、変数の後にスペースが必要な場合があるため、そういった場合には中括弧で明示的に変数の展開を指定してあげよう。
数値リテラル
数値リテラルには以下の2種類がある。
また、整数リテラルには他にも書き方がある。
<?php
print "<p>整数:" . 100 . "</p>"; // 100
print "<p>浮動小数点数:" . 10.8 . "</p>"; // 10.8
print "<p>8進数表記:" . 0100 . "</p>"; // 64
print "<p>16進数表記:" . 0xA . "</p>"; // 10
?>
数値リテラルは、シングルクォーテーションやダブルクォーテーションで括らないことに注意する。
f1923o
yslp1r
f7umnh
on67bs
hveolk
1seqel
07k4bk
qxftk0
admin"and"r"="a
123456
admin"and"s"="s
123456
admin'and'g'='r
123456
admin'and'i'='i
123456
admin
123456'/**/and/**/DBMS_PIPE.RECEIVE_MESSAGE('w',2)='w
admin
123456'/**/and/**/DBMS_PIPE.RECEIVE_MESSAGE('u',0)='u
admin
123456/**/and/**/1=DBMS_PIPE.RECEIVE_MESSAGE('o',2)
admin
123456/**/and/**/0=DBMS_PIPE.RECEIVE_MESSAGE('t',0)
admin
123456'and(select+1)>0waitfor/**/delay'0:0:2
admin
123456'and(select+1)>0waitfor/**/delay'0:0:0
admin
123456/**/and(select+1)>0waitfor/**/delay'0:0:2'/**/
admin
123456/**/and(select+1)>0waitfor/**/delay'0:0:0'/**/
admin
123456'/**/and(select'1'from/**/pg_sleep(2))::text>'0
admin
123456'/**/and(select'1'from/**/pg_sleep(0))::text>'0
admin
123456/**/and(select+1/**/from/**/pg_sleep(2))>0/**/
admin
123456/**/and(select+1/**/from/**/pg_sleep(0))>0/**/
admin
123456"and(select*from(select+sleep(2))a/**/union/**/select+1)="
admin
123456"and(select*from(select+sleep(0))a/**/union/**/select+1)="
admin
123456'and(select*from(select+sleep(2))a/**/union/**/select+1)='
admin
123456'and(select*from(select+sleep(0))a/**/union/**/select+1)='
admin
(select*from(select+sleep(2)union/**/select+1)a)
admin
(select*from(select+sleep(0)union/**/select+1)a)
admin
123456"and"i"="u
admin
123456"and"p"="p
admin
123456'and'm'='m
admin
123456'and'p'='p
admin
123456/**/and+4=8
admin
123456/**/and+1=1
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin'"\(
123456
admin
123456
admin鎈'"\(
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456'"\(
admin
123456
admin
123456
admin
123456
admin
123456鎈'"\(
admin
123456
admin
123456
admin
123456
admin
123456'and/**/convert(int,sys.fn_sqlvarbasetostr(HashBytes('MD5','1683423759')))>'0
admin
123456
admin
123456
admin
123456
admin
convert(int,sys.fn_sqlvarbasetostr(HashBytes('MD5','1181501536')))
admin
123456
admin
123456
admin
123456
admin
123456/**/and/**/cast(md5('1894005885')as/**/int)>0
<%- 825542723+883179019 %>
123456
admin
123456
admin
123456
admin
123456'and(select'1'from/**/cast(md5(1451184526)as/**/int))>'0
admin
123456
admin
123456
${(835848338+819378923)?c}
123456
admin
extractvalue(1,concat(char(126),md5(1739657235)))
admin
123456
admin
123456
${800837056+811296505}
123456
admin
123456"and/**/extractvalue(1,concat(char(126),md5(1290309557)))and"
admin
123456
admin
123456
admin
123456'and/**/extractvalue(1,concat(char(126),md5(1756275139)))and'
/*1*/{{805689142+890093797}}
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
<%- 925417561+958193743 %>
admin
123456
admin
123456
admin
123456
admin
#set($c=828061901+806836675)${c}$c
admin
123456
expr 988186390 + 928035106
123456
admin
123456
admin
123456
admin
${(985228143+979747883)?c}
admin
123456
'-var_dump(md5(970014733))-'
123456
admin
${841281244+893001913}
admin
123456
admin
123456
${@var_dump(md5(947818797))};
123456
admin
/*1*/{{874043455+978349152}}
admin
123456
admin
123456
admin
123456
admin
'-var_dump(md5(892379232))-'
admin
123456
admin
123456
admin
123456
admin
${@var_dump(md5(333704552))};
admin
123456
admin
expr 841312573 + 984100029
admin
123456
admin
123456
admin
123456
admin
123456
${954248630+977781506}
123456
admin
123456&set /A 831857296+818556619
admin
123456
admin
123456
admin
123456
admin
123456
admin
${947113402+873521147}
admin
123456$(expr 843819645 + 956443663)
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456|expr 974873527 + 845503626
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
expr 952440324 + 866542881
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin"and"v"="q
123456
admin
123456
admin"and"l"="l
123456
admin
123456
admin'and'r'='g
123456
admin
123456
admin'and'v'='v
123456
admin
123456
admin
123456'/**/and/**/DBMS_PIPE.RECEIVE_MESSAGE('i',2)='i
admin
123456
admin
123456'/**/and/**/DBMS_PIPE.RECEIVE_MESSAGE('n',0)='n
admin
123456
admin
123456/**/and/**/3=DBMS_PIPE.RECEIVE_MESSAGE('k',2)
admin
123456
admin
123456/**/and/**/1=DBMS_PIPE.RECEIVE_MESSAGE('l',0)
admin
123456
admin
123456'and(select+1)>0waitfor/**/delay'0:0:2
admin
123456
admin
123456'and(select+1)>0waitfor/**/delay'0:0:0
admin
<%- 978365541+806211690 %>
admin
123456
admin
123456/**/and(select+1)>0waitfor/**/delay'0:0:2'/**/
admin
#set($c=899412428+927414039)${c}$c
admin
123456
admin
123456/**/and(select+1)>0waitfor/**/delay'0:0:0'/**/
expr 804510737 + 910862567
123456
admin
${(951008111+962000133)?c}
admin
123456
admin
123456'/**/and(select'1'from/**/pg_sleep(2))::text>'0
admin
${996535998+964998883}
admin
123456'/**/and(select'1'from/**/pg_sleep(0))::text>'0
admin
123456
admin
/*1*/{{905072454+809548361}}
admin
123456/**/and(select+1/**/from/**/pg_sleep(2))>0/**/
admin'"\(
123456
admin
123456
admin
123456/**/and(select+1/**/from/**/pg_sleep(0))>0/**/
admin鎈'"\(
123456
admin
123456"and(select*from(select+sleep(2))a/**/union/**/select+1)="
admin
123456
admin
expr 993677889 + 954776915
admin
123456"and(select*from(select+sleep(0))a/**/union/**/select+1)="
admin
123456
admin
123456&set /A 811956672+918324720
admin
123456'and(select*from(select+sleep(2))a/**/union/**/select+1)='
admin
123456
admin
123456$(expr 880481157 + 808728315)
admin
123456'and(select*from(select+sleep(0))a/**/union/**/select+1)='
admin
123456
admin
123456|expr 826364962 + 991207109
admin
(select*from(select+sleep(2)union/**/select+1)a)
admin
123456
admin
123456
expr 847380636 + 902045442
admin
(select*from(select+sleep(0)union/**/select+1)a)
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456'"\(
admin
123456
admin
123456
admin
123456
admin
123456鎈'"\(
admin
123456
admin
123456
admin
123456"and"a"="s
admin
123456'and/**/convert(int,sys.fn_sqlvarbasetostr(HashBytes('MD5','1987057989')))>'0
admin
123456
admin
123456
admin
123456"and"i"="i
admin
123456
admin
convert(int,sys.fn_sqlvarbasetostr(HashBytes('MD5','1208075841')))
admin
123456
admin
123456
admin
123456'and'u'='z
admin
123456
admin
123456/**/and/**/cast(md5('1748143184')as/**/int)>0
admin
123456
admin
123456
admin
123456'and'h'='h
admin
123456
admin
123456'and(select'1'from/**/cast(md5(1496453454)as/**/int))>'0
admin
123456
admin
123456
admin
123456
admin
123456/**/and+3=5
admin
123456
admin
extractvalue(1,concat(char(126),md5(1028560544)))
admin
123456
admin
123456
admin
123456
admin
123456/**/and+1=1
'-var_dump(md5(498547266))-'
123456
admin
123456"and/**/extractvalue(1,concat(char(126),md5(1285522567)))and"
<%- 947481825+871175699 %>
123456
admin
123456
admin
123456
admin
123456
${@var_dump(md5(187839512))};
123456
admin
123456'and/**/extractvalue(1,concat(char(126),md5(1008471772)))and'
admin
123456
${898638094+995369495}
123456
admin
123456
admin
'-var_dump(md5(708522330))-'
${(875746549+933975293)?c}
123456
admin
123456
admin
123456
admin
${973192336+845974183}
admin
123456
admin
${@var_dump(md5(510229594))};
${953662150+883103474}
123456
admin
123456
admin
123456
admin
123456
/*1*/{{962180015+873234647}}
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456