71日目 | web制作
本日は…
■php復習
■php.iniファイル
※Dateのところ、timezoneをAsia/Tokyoに変えて、上のBerlinのところを先頭に;を入れておく
※default_charsetの先頭のセミコロンを取る
ini=initialization=初期設定
■XSS対策
echo htmlspecialcharset($name,ENT_QUOTES,'utf-8');
■issetの使い方
<issetによるphpファイルを直に開いたときのエラーが出ないようにする設定の仕方>
ifを使って場合わけしてやる
<?php if(!isset($_POST['name'])||!isset($_POST['age'])){ header('Location:./post.html'); } exit; ?>
※issetは変数の中に値があるか否かを判別する関数
※!は、trueを反転させる…つまりtrueじゃないとき、という条件に変更する
○headerは色々できるが、今回はLocationによって、そこへ飛ばす。
○Location:./post.htmlでpostに飛ばせる。
※./ はついてもつかなくても意味は同じ。混在させてはいけないが、どっち使うも可。
⇒なぜnameとage両方必要か。。。
htmlのほうをDLされたとき、そこからデータをオンラインのphpファイルに飛ばすことができるが、そこで、項目を減らすなど改ざんされたhtmlからphpに飛ばされたときに、項目が全部設定してないと抜けてしまうことがある。セキュリティ的な問題。
■var_dumpの使い方
echoやprintでは配列変数は表示できない77が、var_dumpは可能。
array(n){['name']=>string(8)"お名前"['age']=>・・・・・}
と表示。
※print_r($_POST)でも似たような結果は出せる
■空文字問題
空欄で送っても値的には""になるので、中に文字があるものと判別される。
つまりissetでは判別できない。
■PHPの癖
<?php $hensu1 = 2; $hensu2 = '2s'; if($hensu1==$hensu2){ print 'おなじだよ'; } //phpの場合、文字列でも一番最初に半角数字が入っていると、数値としてみなすという癖がある
例えば
<?PHP $hensu1 = 2; $hensu2 = '2s'; $hensu3 = $hensu1 + $hensu2; echo $hensu3;//4が出てきてしまう
ので、===で同型同値比較をしてやる。
頭が文字列だと0になる。
間に文字列があるとその後ろはシカト。
'33s7'なら、33になる。
'aa'なら0になる。
■メールを作成