2012年03月19日
講義032日目
------------------------------1H------------------------------
★データベースを使ったウェブページ作成実習の補足と解説
●物理削除と論理削除
・物理削除
実際に消すのでサルベージ不可
・論理削除
DELETEでデータベースの内容を消すのではなく
削除フラグカラムを用意して消えているものとみなす
●wrapper
・システムから見て、関数的な機能を持つ一塊の部分
授業で作ったdbChoiceがそれにあたる
●投稿確認画面をリロードで同じ内容を再投稿してしまう問題の解決
(いくつか方法がある)簡単な方法の例
・index.phpを改変
//↓↓↓↓↓セッションIDを取得する部分↓↓↓↓↓
$_SESSION["submit_id"] = session_id();//←セッションIDを取得する関数
//$_SESSION["submit_id"];//表示テスト
//↑
<input type="hidden" name= "session_id" value=<?php echo $_SESSION["submit_id"]?>">
・submit.phpを改変
//<!--↓↓↓↓↓セッションIDを書き換える部分↓↓↓↓↓-->
if($_SESSION["submit_id"] != $_POST["session_id"]) {
header("Location:http://localhost/bbs/index.php");
return false;
}
//何度も投稿できないようにセッションIDを書き換える
session_regenerate_id();
$_SESSION["submit_id"] = session_id();
//<!--↑↑↑↑↑セッションIDを書き換える部分↑↑↑↑↑-->
------------------------------2H------------------------------
★データベースを使ったウェブページ作成実習の補足と解説
●投稿確認画面をリロードで同じ内容を再投稿してしまう問題の解決
→を関数化する
BBS/myUtil.phpを改変
function submitPageCheck(){
//<!--↓↓↓↓↓セッションIDを書き換える部分↓↓↓↓↓-->
if($_SESSION["submit_id"] != $_POST["session_id"]) {
header("Location:http://localhost/bbs/index.php");
return false;//exitはソースにはあまり使われない
}else{
//何度も投稿できないようにセッションIDを書き換える
//再度読み込みすると書き換わったセッションによって
session_regenerate_id();
$_SESSION["submit_id"] = session_id();
return true;
//←セッションIDを取得する関数
//<!--↑↑↑↑↑セッションIDを書き換える部分↑↑↑↑↑-->
}
}
●他のページにも適応させる
・submit.phpを改変
関数化する前に関数があった場所に
if(submitPageCheck()):
ソースの終了に
<?php endif;?>
・reprysubmit.php
もsubmit.phpと同様に改変
・reply.phpもindex.phpと同様に改変
●session_regenerate_id();
で毎ページごとに新しいセッションIDを書き換える手法もある
------------------------------3H------------------------------
★データベースを使ったウェブページ作成実習の補足と解説
●hogeについて
・プログラムのテスト用、一時的な変数によく使われる表現
●preg_macthについて
検索をしてくれる関数
正規表現、メールアドレスの正常性チェックとかにも使われる
(メールアドレスの形になってるかどうか)
詳しくはメール送信の講義
→mb_send_mail関数
★外部に課題で作成したウェブページを置いてみる
●toypark
・MySQLが使えるので使ってみる
●BASIC認証
・pleiadesの直下(わかりやすい所)
.htaccessというテキストファイルを作る
作れない場合はa.htaccessなどと仮に作っておき、
コマンドプロンプトで名前を変更
C:\Documents and Settings\mis>cd c:\pleiades
C:\pleiades>ren a.htaccess.txt .htaccess
で変更する
・アクセス制御ができるファイル
・作った○○○.toypark.inのアドレスをブラウザに直に打つ
このファイルを置き換えてページを作成してください。
というメッセージが表示されるページを確認
------------------------------4H------------------------------
★外部に課題で作成したウェブページを置いてみる
●.htaccessに以下を記述
AuthUserFile /home/vhosts/ryousyu-input.toypark.in/public_html/.htpasswd
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
●.htaccessをサーバにアップロードする
・ファイルのアップロード画面に従いアップロードする
・作った○○○.toypark.inのアドレスをブラウザに直に打つ
ログインの画面を出す
●.htpasswdの作成
・コマンドプロンプトC:\pleiades>cd c:\pleiades\xampp\apache\bin
C:\pleiades>cd c:\pleiades\xampp\apache\bin
→移動する
C:\pleiades\xampp\apache\bin>htpasswd -c .htpasswd パスワード
Automatically using MD5 format.
New password: ******
Re-type new password: ******
Adding password for user ユーザ名
→c:\pleiades\xampp\apache\bin内に.htpasswdファイルが作られてる事を確認
●.htpasswdのアップロード
●データベースにログインする
http://www.toypark.in/phpmyadmin
を直打ち
------------------------------5H------------------------------
★外部に課題で作成したウェブページを置いてみる
●講義で作ったBBSをアップロードする
・toyparkにソースを移行する
・toyparkのデータベースにテーブルを移行する
●データベースの移行
member,comment,replyテーブルを.sqlにエクスポートする
・localhostにある自分のデータベースmyphpadminを開く
エクスポートタブを選択し、必要事項にチェックを入れて実行する
・.sqlファイルを確認する
・toyparkのphpmyadminを使ってインポートする
●BBSファイルをコピーし改変する
・header関数を書き換える
session.phpを
header("Location:http://○○○.toypark.in/bbs/login.php");
に書き換える
login.php
logout.php
lib/myUtil.php
の
header("Location:http://localohst/bbs/index.php");
を
header("Location:http://○○○.toypark.in/bbs/index.php");
に書き換える
・DBラッパーを書き換える
lib/myUtil.php
$username = "ユーザ名"
$password = "パスワード"
$dbname = "データベース名"
↓
$username = "toyparkから発行されたMySQL ID"
$password = "toyparkのDBに接続するためのpassword"
$dbname = "toyparkから発行されたMySQL ID"
●FFFTP
・ホストの新規作成
ホスト名→○○○.toypark.in
ホスト名アドレス→○○○.toypark.in
ユーザ名→○○○.toypark.in
パスワード→○○○.toypark.inのパスワード
を入力
・toyparkのブラウザ上でアップロードするより早い
・右側のファイルは編集可能なので注意する
●FTP接続→暗号化しない
SFTP接続→暗号化するので安全
-----------------------------memo------------------------------
0 件のコメント:
コメントを投稿