web制作 | 夜間飛行 備忘録

web制作講座で教わったあれこれを書き留めていきます

70日目 | web制作

本日は…
PHP
■開始
そもそもPHPとは…
・jsはクライアントのPCで動く言語だったが、phpはサーバーで動く言語
・xamppとは…
 ○xはクロスの意味
 ○aはapachephpを動かす環境)
 ○mはMySQL(データベース)
 ○pはPHPperl

0.フォルダを作成する

1.phpファイルを作ってみる
構文:

<?php

からはじめる!!
※閉じタグは

?>

だが、後ろにhtmlドキュメントなどがないときは必要ない。
body 内に書くなど、後ろにhtmlドキュメントがある場合のみつける。そうじゃないときはいらない。

phpの変数名:

<?
$変数名 ='';

で定義する。
※後ろに ; をつける。
 →最後の行= ?> の直前は必要ない( ?> が;も含む)が基本は;で終わる

このままだと、ソースを見たときに

<body>
<h1>見出し</h1
<p>呼び出される$○○</p></body>

という形で表示され、改行されない。

<?
echo $hensu."\n"

としてやると、

<body>
<h1>見出し</h1
<p>呼び出される$○○</p>//php上はこの後ろに."\n"が入っている
</body>

ちゃんと改行される。

※\n の「\」はバックスラッシュで、円マークではない。

※※「.」はjsで言うところの + で文字列連結の演算子

→書き方は

<?
$hensu = "<p>代入したい文字</p>.\n"

でもOK。

3.フォームを作ってみる
 ①htmlファイルを作る

<form action="post_recieve.php" method="post">
<input type="text" name="you">
<input type="submit" value="送信">
</form>

という中身のhtmファイルを作成。

 ②post_recieve.phpファイルを作る

<?
$you = $_POST['you'];
echo $you;

と言う中身のphpファイルを作成。

→htmlファイルを呼び出す、フォームのテキストエリアに文字を入力して、送信してみる
 →post_recieve.phpが表示されて、入力した文字が表示される

※_POSTの中には送信された情報が全部入ってくる
※name属性によってその中の一部を呼び出している

htmlファイルに

<input type="text" name="first">

を書き足してみる。

→テキストエリアがもう1つ増える

phpファイルに

<?
$first = $_POST['first']
echo $first;

書き足して、呼び出してやる。

youとfirstの中身が両方表示される。
※改行のために

echo $you.'<br>';

としてやると結果が改行される。

methodがgetのときは呼び出しも

<?
$name = $_GET['name']

という形になる。

※呼び出しの形は

<?
echo "あなたのお名前は{$name}です";

という形することも可能。

■POSTとGETの違いは…
postはURLに入力したパラメーターが表示されない。⇒機密性が高い(ただし完璧ではない)
getはパラメーターがURLに付加される。⇒機密性が低いし、履歴にも残る
 →これを利用して、URLをそのままアンカーリンクに貼ってやると、パラメーターが入った状態でphpファイルが表示される(任意のパラメータを入れたリンクを貼っておくことが可能)

■フォームへの悪戯防止!
出力側を

<?
echo htmlspecialchars($name,ENT_QUOTE,'utf-8');

をつけてやる。
<や>を実態参照の<などに読み替えてくれる