2012年3月22日木曜日

2012年03月19日 講義032日目

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 件のコメント:

コメントを投稿