僕ログ日記

主にプログラミングと雑記。

php学習&備忘録()

現在ショッピングカートサイト製作中。

重要な言語ルールなどをまとめておく。

 

phpってどんな言語?

 

HTMLと組み合わせて動的(アンケートフォームがあったり

商品の予約、購入といった動作)なページが作れる言語。

後述します。


phpを使用したサイトにはどんなものがあるの?

Yahoo 、Wikipediaぐるなびなど。

ちなみにWordPressは、ばりばりphpです。


●なぜ初心者向け?

①仮想サーバやデータベース構築などの、プログラミングに至るまでの環境設定が比較的容易に出来るので、開発までがスムーズ(ちなみに僕は最初Javaにトライし、eclipseでの環境構築ができずに詰んだ事がある。)

②HTMLを埋め込み記述できる。(HTMLとは簡単に言うとWebページを作成する言語。)
 HTMLはあくまで文字データをや写真を表示させるだけだが、phpを使用してお問合せフォームや、ユーザーアカウント管理などの機能を実装することが出来る。
加えて、未だメジャーな言語なので、参考情報も豊富にあります。最初に手をつける言語として僕はお勧めします。


phpの基本ルール
-------------------------------
例:
<body>
<?
※ここにphpのプログラムを書いていく
?>
</body>
-------------------------------
■変数
変数とは、数字や文字を保管しておける箱のようなもの。
$name のように、必ず$で始まる

■変数にデータをコピーして保管する
-------------------------------
例:
$oyatu='ドーナツ';
print $oyatu;
実行結果:
ドーナツ
-------------------------------
プログラミングの世界では「=」は、
右から左へコピーせよ!とゆう意味です。
この場合、'ドーナツ'というデータを変数$oyatuに格納しています。

コピーした後でprint $oyatu;を実行すると
ドーナツが表示される。

■if文(重要)
-------------------------------
例:
if($staff_name==''||$staff_pass='')
{
print'<form>';
print<input type="button" onclick="history.back()"value="戻る">';
print'</form>';
}
スタッフ名とパスワードが空だった場合、戻るボタンを表示するプログラム。
「''」は入力が空っぽとゆう意味
----------------------------------
「もし〜だったらこうする、〜でなければ
 かわりにこうする」とゆう命令文を書くことで
 プログラムに自動で判断させる事ができる。

■htmlspecialchars
■htmlspecialcharsとはweb上の安全対策
-------------------------------
例:
$staff_name=htmlspecialchars($staff_name,ENT_QUOTES,'UTF-8');

$staff_nameの中にある危険な文字を、安全な文字に置き換えて
変数自身にコピーしている

-------------------------------
■おなじみの「戻る」ボタンの表示
-------------------------------
例:
<form>
<input type="button" onclick="history.back()" value="戻る">
</form>
-------------------------------

MD5
MD5とは暗号規格。
これをphpで使用する事により暗号化が簡単にできる。
-------------------------------
例:
$staff_pass=md5($staff_pass);
-------------------------------
クロスサイトスクリプティングとは
-------------------------------
Webページに入力データをオウム返しに表示している部分があると、
ページ内に悪意のあるスクリプトが埋め込まれ、れを見た
ユーザとサーバ自身の両方に被害を及ぼす。
少し難しいので改めて勉強していきましょう。
-------------------------------
■エアートラップ命令
【try~catch】
webサーバーが正常に作動しているのに、データベースが作動していない場合の
対策。
-------------------------------
例:
<?php
try
{
※(A)本来のプログラムをここに書く
}
catch (Exception $e)
{
※(B)本来のプログラムをここに書く.
文末に exit(); を入力して強制終了させる
}
?>
-------------------------------
データベースが正常稼働していればAのプログラムが動き、
ダウン、異常があればBのプログラムが動く。

■データベースに接続するプログラム
-------------------------------
$dsn='mysql:dbname=shop;host=localhost;charset=utf8';
$user='root'
$password='';
$dbh=newPDO($dsn,$user,$password);
$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXEPTION);

-------------------------------

danameにはデータベース名を、$userにはユーザ名、$passwordには
パスワードを入れる。
上記プログラムの①行目には、一切スペースを入れない事

SQLで指令を出すプログラム
-------------------------------
1 $sql='INSERT INTO mst_staff(name, password)VALUES (?,?)';
2 $stmt=$dbh->prepare($sql);
3 $data=$staff_name;
4 $date
=$staff_pass;
5 $stmt->execute($data);

-------------------------------
1の行で$sql変数に'INSERT INTO mst_staff(name, password)VALUES (?,?)';
の文をコピー
2の行で準備命令
3と4の行で[?]にセットしたいデータが入っている変数を順番に書く
5の行でSQL文で指示を出すための命令を書く。

■データベースから切断するプログラム

-------------------------------

$dbh=null;

-------------------------------

*1

接続→指令→切断

この手順は鉄則!!

■ラジオボタンの出し方

-------------------------------

例:

<form method="post" action="飛び先">

<input type="radio" name="staffcode" value="1">

<input type="radio" name="staffcode" value="2">

<input type="radio" name="staffcode" value="3">

</form>

-------------------------------

飛び先のページで、

$staff_code=$_POST['staffcode'];

とする事で値を受け取る事ができる。

$staff_codeには1,2,3のどれかが入っている。

■初期値設定

-------------------------------

(HTML文)

 1.<input type="text" name= "name" value="こぐまとたぬき">

  (php文)

2.<input type="text" name= "name" value="<?php print $staff_name;?>">

-------------------------------

2のコードのようにphp文は細かく幾つでも書く事ができる。

■データベースの更新(UPDATE文)

-------------------------------

UPDATE mst_staff SET name= "こぐまとねこ" WHERE code=1

-------------------------------

mst_staffテーブルのcodeが1のレコードの

nameカラムをこぐまとねこに変更する指令プログラム

 

■isset

 issetとは、変数に値が入っているのかを確認する関数

-------------------------------

例:

ファイル[testdado.php]

<form action="testdayo2.php" method="post">
<p><input type="checkbox" name="check">契約内容を承諾し、商品を購入します。</p>
<p><input type="submit" value="確定"></p>
</form>

実行結果

------------------------------------------------------

f:id:pineatapple:20180514150013p:plain

---------------------------------------------------

ファイル[testdayo.php2]

<?php
if(isset($_REQUEST['check'])) {
echo '商品をお届けします。';
}else{
echo 'またの機会をお待ちしています。';
}
?>

実行結果(チェックボックスにチェックがない場合)

--------------------------------------

f:id:pineatapple:20180514150212p:plain

--------------------------------------

実行結果(チェックボックスにチェックがある場合)

---------------------------------------

f:id:pineatapple:20180514150207p:plain

---------------------------------------

■header('Location:飛ばしたい画面のURL');

 で任意の画面へ飛ばす。

■ファイルの削除

---------------------------------------

unlink('ファイル名');

---------------------------------------

 

ふう-時間だ。

今日はここまで、、

 

 

 

 

 

 

*1:データベース3原則