//tips
//unity連動ECサイト作成
引き続きxamppでのl処理を実行していく。
まずはwebコンテンツ読み込みフォルダであるhtdocsフォルダ内にstaffフォルダを作成し、その中にstaff_add.phpを作成。ほぼhtmlでの記載となっている。
<!DOCTYPE html>
<html>
<head>
<meta charset-"UTF-8">
<title>登録画面</title>
</head>
<body>
スタッフ追加<br/>
<br/>
<form method="post" action="staff_add_check.php">
スタッフ名を入力してください<br/>
<input type="text" name="name" style="width:200px"><br/>
パスワードを入力してください<br/>
<input type="password" name="pass" style="width:100px"><br/>
パスワードをもう一度入力してください<br/>
<input type="password" name="pass2" style="width:100px"><br/>
<br/>
<input type ="button" onclick="history.back()" value="戻る">
<input type ="submit" value="OK">
</form>
</body>
</html>
ブラウザにてhttp://localhost/staff/staff_add.phpを検索することでxamppフォルダ下の上記のphpを開くことができる。
OKボタンを押しても、まだformタグで指定しているstaff_add_check.phpを作成していないのでエラーになってしまう。
ここからはstaff_add_check.phpを作成していく。
セミコロン忘れでエラーが発生したので一部修正。
Parse error: syntax error, unexpected 'print' (T_PRINT) in /Applications/XAMPP/xamppfiles/htdocs/staff/staff_add_check.php on line 43
下記のようになった。
<body>
<?php
$staff_name=$_POST['name'];
$staff_pass=$_POST['pass'];
$staff_pass2=$_POST['pass2'];
$staff_name=htmlspecialchars($staff_name,ENT_QUOTES,'UTF-8');
$staff_pass=htmlspecialchars($staff_pass,ENT_QUOTES,'UTF-8');
$staff_pass2=htmlspecialchars($staff_pass2,ENT_QUOTES,'UTF-8');
if($staff_name=='')
{
print'スタッフ名が入力されていません。<br/>';
}
else
{
print'スタッフ名:';
print$staff_name;
print'<br/>';
}
if($staff_pass=='')
{
print'パスワードが入力されていません。<br/>';
}
if($staff_pass!=$staff_pass2)
{
print'パスワードが一致しません。<br/>';
}
if($staff_name==''||$staff_pass==''||$staff_pass!=$staff_pass2)
{
print'<form>';
print'<input type="button" onclick="history.back()" value="戻る">';
print'</form>';
}
else
{
$staff_pass=md5($staff_pass);
print'<form method ="post" action="staff_add_done.php" >';
print'<input type ="hidden" name="name" value="'.$staff_name.'" >';
print'<input type ="hidden" name="pass" value="'.$staff_pass.'" >';
print'<br/>';
print'<input type ="button" onclick="history.back()" value="戻る" >';
print'<input type ="submit" value="OK" >';
print'</form>';
}
?>
</body>
phpのプログラムは下記の形で記載されており、<body></body>の間に挿入される。
<body>
<?php
…
?>
</body>
変数名は$から始まり、$staff_nameのように記載される。
$_POST[‘~’]は前のページの<form>~</form>から送られてきた入力データが格納されており、
<input type=“text” name=“name” style=“width:200px”><br/>の”name”部分を$staff_name=$_POST[‘name’];の’name’に合わせることで入力されたデータを取り出すことができる。
安全対策として、エスケープ命令と呼ばれるhtmlspecialchars
を使用することで安全性を高めている。
$staff_name=htmlspecialchars($staff_name,ENT_QUOTES,’UTF-8’);
このエスケープ処理とは、例えば、名前やパスワードの部分にhtml,jsなどの内容を書き込まれると、外部からの命令を実行できてしまう問題を実行できなくし、記載文字として認識させることができるようになるもの。
ボタンへの戻る機能はtypeにbuttonを指定し、ボタンを発現させた後、イベントのonclick=“history.back()“で戻る機能を実行することができる。
print'<input type ="button" onclick="history.back()" value="戻る" >';
画面に表示せずに次のページへ情報を渡す方法として、<input type=“hidden”>でnameやvalueを一緒に設定すると画面に表示せずに$_POSTで情報を受け取ることができるようになる。