PHP/phpbook/others

Last-modified: 2010-10-22 (金) 12:08:30

フォームのデータ

 PHPの定義済み変数から取得する

 $_GET
 $_POST
 $_SESSION
 $_COOKIE

 $_GET['name']のようにして使う。

 余談だが、
 フォームから値を入力すると、数字でも文字列として扱われている

サンプルの例

アクセスカウンタ

  • txtファイルに、数字を書き込んで読み書きする。
  • 一応、flockでロックしておく
  • rewind($fp)
    というのは、ファイル操作の項目でなかったが、
    ファイルポインタを先頭に戻す命令
    ちなみに、rewindは「テープなどを巻き戻す」という意味。
    Cにも同じ命令がある。
  • 000005のように表示する場合はsprintfを使う
  • 画像で表示する場合は、対応する数字を<img>タグに変えるだけ
    str_replaceを使うとよい

掲示板

  • $_SERVER['PHP_SELF']」を使う。
    これはこの構文が記述されているHTML自身を指すもので、たとえば、
      <form method="POST" action="<?php print($_SERVER['PHP_SELF']) ?>">
    のようにすると、POSTした内容がそのままPHP自身に反映される。
    補足)
    通常は、フォームには、action="hogehoge.php"のように指定するが、
    action="自分自身.php"という風になるということ。
  • 「nl2br」関数で改行を<br />に変更する
  • 複数表示する場合は、投稿内容を整形して、テキストに残しておく。
     
  • $_SERVER["REQUEST_METHOD"] を使うと、"POST"か"GET"かを判別できる
    PHP_SELF変数を使ったときに、フォームからPOSTされて呼ばれたのか、
    それともURLリクエストで(GETで)呼ばれたのかを判別するのに使える

PEAR

 共有ライブラリ的なもの。
 サーバでPEARが使えるかどうかは環境次第になるが、
 .htaccessやini_set関数を使うなどで使えるようにする方法もあるようだ
 (ただし、非推奨)
 http://www.s-memo.net/blog/2005/12/pear_1.php
 http://d.hatena.ne.jp/bro256/20100503/1272903226

smarty

 テンプレートと呼ばれており、デザインとロジックを分けることができる
 smartyを使うと、以下のようにデザインがわかりやすくなる。

14 {* 連想配列の利用 *}
15 <table border="1" cellpadding="3" cellspacing="0">
16 <tr><th>名前</th>
17 <th>価格</th>
18 <th>在庫数</th>
19 </tr>
20 {foreach from=$data item=value01 name=loop01}
21 <tr><td>{$value01.name|escape}</td>
22 <td>{$value01.price|escape}</td>
23 <td>{$value01.qty|escape}</td>
24 </tr>
25 {foreachelse}
26 表示させるデータがありません。
27 {/foreach}
28 </table>

PHP外部モジュール

 JpGraph: 各種グラフを描画できる(GDライブラリを使用)
 FPDF : PDFファイルを作成できる