2012年3月9日金曜日

2012年03月07日 講義026日目

2012年03月07日
講義026日目
------------------------------1H------------------------------
★職業能力基礎
  ●自己分析
    ・書類の書き方
        プラスに持っていく書き方
    ・自己紹介書
        内容は志望動機、職務経歴書、自己PR
        メールで履歴書を送る場合はメールに書き込んでも良い
        面接で使用する書類ではないので挨拶のようなもの
        履歴書の内容と一致するようにする
    ・添え状
        あるほうが好印象をもたれる可能性
        無くても問題は無い
        定型文でかまわない
    ・お礼状
        面接をしてもらったお礼に出す
        今後の抱負
        無くても問題は無い
        定型文でかまわない
    ☆定型文の使い回しの場合は、社名、日時、文章の内容に注意
      入社前に何かしらの事情で求職の立場ではなくなった場合、その旨を連絡する
    ☆面接や職務経歴書に書く内容は、公開情報のみ
    ☆資格を多く持つ人はスキルシートを用意して、採用担当が見やすくするも良い
  ●データで書類を作るときの注意点
    ・プリントアウトしやすいように作る
    ・相手が望んでるであろうファイル形式を確認して送る
------------------------------2H------------------------------
★掲示板拡張2
  ●php設定ファイル(php.ini)について
    ・magic_quotes_gpc= On(デフォルト)
        Onで特殊文字(\,'など)のエスケープ
        php5.3ではデフォルトでOffなので注意
  ●reply.php
    ・nl2br(htmlspecialcharsを反映
  ●strtotime関数
    ・文字列の日時をtime型に変える
        1970/1/1 00:00:00 からの秒数の形式:「time形式」
        time()で得られる値
    ・index.phpの$row["created_at"]を改変する
        strtotime($row["created_at"])
  ●date関数
    ・date("Y年m月d日",time形式のデータ)
    第二引数の形式を第一引数の形式に変えてくれる
    上のstrtotime($row["created_at"])を改変
    date("Y年m月d日",strtotime($row["created_at"]))
------------------------------3H------------------------------
★セッション
  ●接続情報を維持できる機能
    ・サーバ側、クライアント側に接続情報が維持されてる
        クライアント側ではcookieを利用
    ・Eclipseでsessionプロジェクトを作って動作を確認してみよう
        session1.php
        session2.php
        という名のphpファイルを作る
    ・$_SESSION
        スーパーグローバル関数
    ・session_start()
        セッション情報の参照が行える
        session1.phpに
          session_start();
          $_SESSION["name"] = "username";

      session2.phpに
      session_start();
      セッション関数
      ()にはIDの生成関数などを入れる
      print $_SESSION["name"] = "テスト";

      session2に接続して"name"が表示されないのを確認
      session1に接続してからsession2に接続すると"name"が表示される

  ●Live HTTP headersを使ってみる
      クッキーの部分をテキストファイルにコピーしてみる↓
      Cookie: ZDEDebuggerPresent=php,phtml,php3; PHPSESSID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      ↑の
      PHPSESSID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      部分を
      ブラウザ側ではクッキーで保持
      サーバー側ではtmpフォルダに保持

      定期的にサーバ側のセッション情報は消える(設定で変更可能)

      httpheaderのHTTP/1.1 200 OK
      から上が送ったデータ
      下が受け取ったデータ
------------------------------4H------------------------------
★ログイン機能の実装
  ●セッションを利用してログイン
    ・ログインしないとwebページの内容が見れないようにする
  ●テーブルを新たに作る
     ・以前のmemberテーブルを削除
         drop table member;で削除

     ・新しいmemberテーブルの作成
         create table member (
         id int not null auto_increment,
         nickname text,
         mailaddress text,
         password text,
         created_at datetime,
         primary key(id)
         );
     ・テストデータを挿入していく
         mysql> insert into member(nickname, mailaddress, password ,created_at)
             -> values("test_name1","test_adress1","test_pass1");
            
  ●/BBSにlogin.phpを作成
      session_start();
      if ($_SESSION["login"] != "y") {
          header("Location:http://localhost/bbs/login.php");
      }
      サーバ側のセッションに何もない場合はhttp://localhost/bbs/login.phpに飛ばす処理

      ☆header()関数を使った場合にはファイルの先頭に記述があるとエラーになるので注意

      PECL→PHP拡張パック
------------------------------5H------------------------------
★ログイン機能の実装
  ●index.php
      <?php
      session_start();
      $mailaddress = $_POST["mailaddress"];
      $password = $_POST["password"];
      if ($_POST["mailaddress"] != "" && $password != ""){
          $sql = "SELECT count(*) FROM member
                  WHERE mailaddress = \"".$mailaddress."\"
                  AND password = \"".$password."\"";
          //mysql に接続する
          $db = mysql_connect("localhost", "username", "password");
          //データベースを選択する
          $sdb = mysql_select_db("study");
          //クエリを送信する
          $result = mysql_query($sql);
          $row = mysql_fetch_row($result);
          if ($row[0] > 0) {
              $sql = "SELECT id nickname FROM member
                      WHERE mailaddress = \"".$mailaddress."\"
                      AND password = \"".mailaddress."\"";
              $result = mysql_fetch_row($result);
              $_SESSION["login"] = "y";
              $_SESSION["member_id"] = $row[0];
              $_SESSION["nickname"] = $row[1];
              //ログイン処理
              header("Location:http://localhost/bbs/index.php");
          } else {
              $error_msg ="エラーがあります";
          }
      } else {
          $error_msg = "エラーがあります";
      }
      ?>
------------------------------6H------------------------------
★ログイン機能の実装
  ●$_SERVER['HTTP_REFERER'];
    ・どのページからきたかの情報を持ってきてくれる変数
      <?php
      echo $_SERVER['HTTP_REFERER']."<br>";
      if($error_msg != "" && $_SERVER['HTTP_REFERER'] == "http://localhost/bbs/index.php"){
          print $error_msg;
      }
      ?>
  ●$_SERVER
    ・アクセスしてきた人の情報を持っていてくれる変数
   
  ●CSSに追記
    ・style.css
        .header {
        border-bottom:1px solid #ddd;
        padding-bottom:3px;
        margin-bottom:10px;
        text-align:right;
        }
    ・index
        <div class="header">
        <?php echo $_SESSION["nickname"];?>
        さん、こんにちは | <a href="./logout.php">ログアウト</a>
        </div>
-----------------------------memo------------------------------
なんかメモってあったんだけどなんだろうコレハ……
一応張っとくか……
    $error_msg = "空白の部分があります";
    if($mailaddress == ""){
      $error_msg . = "メールアドレスを入力してください";
    }
    if($password == "") {
        $error_msg .= "パスワードを入力してください";
    }
   
   
        if ($_POST["mailaddress"] == "" && $password != "" ) {
        echo "メールアドレスが入力されてません";
    }elseif($_POST["mailaddress"] != "" && $password == ""){
        echo "パスワードが入力されてません";
    }
    $error_msg = "パスワードとメールアドレスが入力されてません";

0 件のコメント:

コメントを投稿