2012年3月7日水曜日

2012年03月06日 講義025日目

2012年03月06日
講義025日目
------------------------------1H------------------------------
★職業能力基礎
  ●履歴書、職務経歴書の書き方
    IT関連ならば、データで作成して構わない
    ・履歴書
        ツリー構造のトップの情報が書かれる箇所
        「職歴」欄の詳細は職務経歴書に書く
    ・職務経歴書
        まとめられる箇所(グループ企業内での移動など)は一つにまとめる
        職を転々としているイメージをなるべく持たれないようにする
        転職理由は答えられるようにしておく
        より詳細な業務内容、作業
        ハードウェア、ソフトウェア情報もここに書く
          例:OSはLinaxの仮想環境で、開発ツールxamppのpleiades
             webサービスを業務内容としているMis株式会社で
             内部アプリケーションの開発を行った
        就業していた社名に関しては、ありのまま書く(公開情報に限る)
        自分以外の個人情報は書くことは避ける       
  ●「長所」「短所」「成功経験」を元にして記述する
      基本、プラスの内容を記述する
      マイナスの内容を記述するならそれを補う内容も記述する
      自己PRの内容と志望動機はリンクする
      自分の意思が大事
      自己PR→志望動機という流れで文章を作る
        例:自分は~~に興味があり、~~という成功を収めてる
            なので、御社の業務を通じて~~を学び、~~になっていきます
    ・自己PR
        自分が何をしてきたか、どういう人間か
        自己紹介に近い
        職務経歴書に関係ないがアピールしたいこと
          例:趣味で作ったサイトの情報、URL
        学生時代の体験(実例を出せると良い)
    ・志望動機
        今後の展望、会社でやりたいこと
        業務内容に合わせるのではなく、自分の意思に合わせる
          例:自分のやりたいことが~~であり、業務内容に即してるので
        ×:業務内容の~~が自分のできる内容と考えたため
    ☆自己PR、志望動機は自己分析と密接に関わる
------------------------------2H------------------------------
★掲示板作成
  ●掲示板の機能追加
    ・htmlspecialchars();
        htmlやjavascriptの記述を無効化する関数
        テキストエリアの入力に制限をかける
    ・nl2br();
        改行コード<br>を挿入する関数
       
        例:print nl2br(htmlspecialchars($row_reply["content"]))."<br>";
            htmlspecialchars()が先に走ると挿入された<br>が無効化されるので注意する
    ・関数の入れ子は優先度を考え、テストしながら調整する
------------------------------3H------------------------------
★掲示板作成
  ●プログラミング言語
    ・低級言語
        マシン語に近い
    ・高級言語
        人間に近い
  ●掲示板拡張1
    ・commentテーブルにurlカラムを追加する
        ALTER TABLE comment ADD url TEXT AFTER content;
    ・フォームの追加
        url<br>
        <input type="text" name="url" size="60"><br>
    ・submit.phpで受け取る
        $url = $_POST["url"];
        を追加
    ・sqlにurlをinsertされるようにする
        INSERT文で受ける欄に追加
        $url . "','" .
    ・urlカラムにデータが入っていたら名前にリンクを貼る
            if($row["url"]!=""){
            print "<a href=\"" . $row["url"] . "\">";
            print nl2br(htmlspecialchars($row["nickname"]));
            print "</a>";
            print "さんの投稿<br>";
            }else{
            print nl2br(htmlspecialchars($row["nickname"]))."さんの投稿<br>";
        }       
------------------------------4H------------------------------
★掲示板拡張2
  ●画像を表示できるようにする
    ・photoカラムを増やす
    ALTER TABLE comment ADD photo TEXT AFTER url;

    ・フォームタグ改変
        <form action= "submit.php" method="post" enctype="multipart/form-data">
        画像<br>
        <input type="file" name="photo"><br>
    ・データベースにバイナリのカラムを作って保存
        早い
        引き出すのが少し面倒
   
    ・何かしらファイルを保存するフォルダを作って保存
        少し遅い
        直リンクできる
    ・submit.phpを改変
       ファイルを受ける
         $photo = $_FILES["photo"];
         $_FILES→スーパーグローバル変数
         Array
         (
             [name] => Water lilies.jpg
             [type] => image/jpeg
             [tmp_name] => C:\pleiades\xampp\tmp\php661.tmp←ここに一時的に保存される
             [error] => 0
             [size] => 83794
         )
         tmpフォルダに一時的に保存された
   
    ・画像をid順に保存する
        最後にinsertした行のIDを取得する
            $sql = "SELECT id FROM comment ORDER BY id DESC";
            $result = mysql_query($sql);
            $row = mysql_fetch_row($result);
           
    ・画像データを保存する
        if (is_uploaded_file($photo["tmp_name"])) {
            move_uploaded_file($photo["tmp_name"],"./img/".$row[0].".jpg");
            $sql = "UPDATE comment SET photo = \"".$row[0].".jpg\" WHERE id = ".$row[0];
            mysql_query($sql);

------------------------------5H------------------------------
★掲示板拡張2
  ●index.php
    ・画像を出力する
        if($row["photo"] != ""){
            print "<img src=\"./img/".$row["photo"]."\" width=\"100\"><br>";
    ・is_uploaded_file()
        アップロードされたファイルがあれば、ture無ければfalseを返す関数
        アップロードされたファイルの配列にある[tmp_name]があるか無いか
        ・move_uploaded_file(移動元,移動先)
        移動元に一時的に保存されてるtmpフォルダ
        移動先に保存したい場所
        uploaded関数はアップロードされてるかを見てる
------------------------------6H------------------------------
★掲示板拡張2
  ●企画 設計+プログラミング
    ・設計→データベースの構造、データの受け渡し
  ●$_FILES
    ・アップロードされたファイルの情報が配列で格納される
   
  ●テーブルのロック
    ・画像の投稿に際し、insertした行のIDを取得する時に
        同じ処理による競合を防ぐため、commentテーブルをロックする。
        //commentテーブルをロックする
        $sql = "LOCK TABLE comment WRITE";
        $result = mysql_query($sql);
    ・テーブルのロックの解除
        //commentテーブルのロックを解除する
        $sql = "UNLOCK TABLES";
        $result = mysql_query($sql);
       
"SELECT id FROM comment ORDER BY id DESC"で最後にinsertした行のIDを取得してるから
同時にデータベースにアクセスされた場合に画像データの保存先のパスが被ってしまう
なので、テーブルへのアクセスをロックしてIDの取得と保存先生成のタイミングに隙が無いようにできる

MySQLでユーザ名の権限を変更(root状態にできる)
GRANT ALL *(データベースに対する権限)*(テーブルに対する権限) (ユーザ名)
IDENTIFY (パスワード)
WITH GRANT OPTION
-----------------------------memo------------------------------
だんだん理解しなければならない範囲が増えてきた

0 件のコメント:

コメントを投稿