2012年3月6日火曜日

2012年03月05日 講義024日目

2012年03月05日
講義024日目
------------------------------1H------------------------------
★職業能力基礎
  ●チームミーティング
    ・企業研究について
------------------------------2H------------------------------
★掲示板作成
  ●先週の説明
  ●MySQLに接続する部分を関数化
    ・BBSlib/myUtilにPHPファイルを作成
      以下の部分を関数化
        //mysqlに接続する
        $db = mysql_connect("localhost", "ユーザ名", "パスワード");
        //データベースを選択する
        $sdb = mysql_select_db("データベース名");
       
    ・dbChoice();関数を作る
   
    ・require_onceで読み込ませる
        index.phpにdbChoice();を読み込ませる
        require_once("lib/myUtil.php");
        dbChoice();
    ・初期値を入れておける
        function dbChoice($host="localhost",$username="ユーザ名",$password="パスワード",$dbname="データベース名"){
    //mysqlに接続する
    $db = mysql_connect($host, $username, $password);
    //データベースを選択する
    $sdb = mysql_select_db($dbname);
    }
------------------------------3H------------------------------
★掲示板作成
  ●関数に置き換える
    ・各ページの先頭部分で関数を呼び込む
        require_once("lib/myUtil.php");
        各ページにあるデータベース接続してる部分に
        dbChoice();
  ●エラーチェックの関数化
    ・戻り値(retune命令で戻す値は)
      $error_arr["error_yn"]
      $error_arr["nickname_error_yn"]
      $error_arr["content_error_yn"]
      $error_arr["content_worderror_yn"]
      で作る
      呼ぶ側のphpファイル、submit.phpとreply_submit.phpでは
      データの挿入やエラーメッセージの出力において
      条件分岐してるため、各項目のynを確認するために配列で取得
------------------------------4H------------------------------
★掲示板作成
  ●myUtil.phpのエラーチェック部分
      function errorCheck($nickname, $content) {
          //retrun用の配列「$rtn」を作成
          $rtn = array();

          //エラーフラグ
          $error_yn ="n";//エラーがあるかどうか
          $nickname_error_yn = "n";//ニックネームが入ってるか
          $content_error_yn = "n";//内容が入ってるか
          $content_worderror_yn = "n";//

          //エラーチェック
          if ($nickname == "") {
              $nickname_error_yn = "y";
              $error_yn = "y";
          }
          if ($content == ""){
              $content_error_yn = "y";
              $error_yn = "y";
          }
          //strpos関数は、最初に見つかった位置を返す
          //一番最初に該当する文字があった場合「0番目」となるので、
          //falseと!==で比較して、0と区別します
          if (strpos($content, "NGワード") !== false){
              $content_worderror_yn = "y";
              $error_yn = "y";
          }
          $rtn["error_yn"] = $error_yn;
          $rtn["nickname_error_yn"] = $nickname_error_yn;
          $rtn["content_error_yn"] = $content_error_yn;
          $rtn["content_worderror_yn"] = $content_worderror_yn;

          return $rtn;
      }
  ●submit.phpとreply_submit.phpの関数を受ける部分
      $error_arr = errorCheck($nickname, $content);
          $error_yn = $error_arr["error_yn"];
          $nickname_error_yn = $error_arr["nickname_error_yn"];
          $content_error_yn = $error_arr["content_error_yn"];
          $content_worderror_yn = $error_arr["content_worderror_yn"];
     クラス化すると戻り値の配列で受け取らなくても良くなるが、それはそのうち……
     今は戻り値の配列の内容を変数に各々入れることで処理
--------------------------------------------------------------
  ●関数について
    多重定義禁止→同じ関数名を二度使うのを禁止すること
    ・require_once()
        読み込みに多重定義禁止されてる処理があったら無視する
    ・reqiuire()
        require_once()に比べて軽い(ほとんど同じ)
    ・include_once()
    ・include()
------------------------------5H------------------------------
------------------------------6H------------------------------
★先行教室見学
-----------------------------memo------------------------------
なんとか理解できた

0 件のコメント:

コメントを投稿