yuri memo

コーディングとかのメモ帳

PHPプログラミング入門講座を受けてきました

先日、PHPプログラミング入門講座を受けに行ってきました。
そのことについて、記憶のあるうちにメモしておきます。
(word campの次の記事書けてなくてごめんなさい土下座します)

講座を受けた経緯

・業務で使いたい
・ゆくゆくは自分でプログラムを書きたい(今はHTMLやCSSがメインです)
・とにかくプログラムの勉強がしたい

講座での習得目標

・お問い合わせフォームを作る(ざっくりすぎかな)
未入力やメールアドレスの不一致があった場合にはエラーを出し、最終的にはthanksページまで誘導する
・プログラミングは楽しいことだと知る

以下、講座で学習した内容です。

■忌まわしき(?)文字化け問題

そもそも文字コードとは
・一文字一文字ごとに割り振られた背番号みたいなやつ
文字コードの規格は複数存在する(Shift_JISとかUTF-8とか)

文字化けが起きる理由
文字コードが同じ機械同士であれば文字化けは起こらないが、文字コードが違うと割り振られた番号がずれて違う文字が表示されてしまう
※もっと論理的な説明は以下の記事などをご参考ください。
http://michisugara.jp/archives/2015/mozibake.html

今の標準の文字コードはなに
UTF-8が標準と考えていい

文字コード対策
・サーバー側と開発側の2か所にする必要がある

■サーバー側
.htaccessに文字化けしないようにいろいろかく

php_value output_buffering OFF
php_value default_charset UTF-8
php_value mbstring.detect_order SJIS,EUC-JP,JIS,UTF-8,ASCII
php_value mbstring.http_input pass
php_value mbstring.http_output pass
php_value mbstring.internal_encoding UTF-8
php_value mbstring.substitute_character none 
php_value mbstring.encoding_translation OFF

現在のレンタルサーバーなどはすでに対策がされてるものが多いので不要な場合もある

■開発者側
TeraPADを例にしますf:id:yurixxx8:20161030234604p:plain
以下の2つにチェックを入れる
□文字/改行コードを自動認識する
□再読み込みは現在の文字コードで行う
文字コード:UTF-8N(※UTF-8ではないので注意)
改行コード:LF
UTF-8にはBOMありのもの?もあるらしいが、プログラムが正しく動作しない場合があるためBOMは不要

もし名前が入力されていなかったら「入力されていません」の文言を表示する

<? php
$name = $_POST['name'];

//PHP文は最後に必ずセミコロン
if ($name == ''){
//nameが空だったら
    print 'お名前が入力されていません。';
}
else {
//そうでなければ(名前が入力されていたら)の時に実行させたいプログラムを書く
    print 'お名前:'.$name.'';
    //printのほかにechoもある
}
?>


ここまで書いて疲れてきました・・・。
あとはフラグ制御、XSSXSSの対策を学びました。

感想

自分が書いたプログラムが動くのは最高に楽しいです、気分がいい。
私はビビりのチキンなので、とりあえず書いてみようぜイエ!みたいにできなくて、地道に理屈から勉強するタイプですが、今回の講座でとりあえず書いてみるほうが何倍も吸収できるとな思いました。
で、実際にやって動かなかったりしたらなぜ動かないのか?を考えて調べればいいだけなんですね、簡単!(全世界のプログラマの皆様怒らないでください)
今回の講座で、やっぱり楽しいなーと思えたのでこれからどんどん学んでいこうと思います。
普段はすでに出来上がったものを修正したり、ベースをもとにして、という触れ方なので一から作るのは新鮮でよかったです。
またいろんな勉強会に行きたい!!!!!