初めてのシステムと日記

システムも日記も初めてです。

PEAR:Pager セパレータの表示設定

Pager使った時のセパレータの表示方法を設定する。デフォルトではリンク間に半角スペースが1つで区切られている。 $options = array( "totalItems" => 100, "perPage" => 5, "delta" => 5, "separator" => ":", ← 区切り文字の指定 "spacesBeforeSeparator" …

テーブルスペース

テーブルスペーステーブルとかデータファイルを入れるための表領域。テーブル消しただけだとテーブルスペースは残ってる。

Ethna 二重POST対応

登録処理で二重登録を防ぐ対応。 1.登録画面の前のページ入力画面かもしくは確認画面か、ほとんどが確認画面だと思う。 <form method=post action=hoge.php> </form>

UNIXコマンド

色々勘違いしてた、新しく知ったコマンド。 suユーザーのアカウントを切り替える。管理権限に入るためのコマンドと勘違いしてた。。 manオンラインマニュアルページを表示する。引数でコマンドなどの単語を指定すると、使い方の説明が表示。 phpphpを実行す…

http_build_query

与えられた連想配列からURLエンコードされたクエリ文字列を生成する。 ・URLエンコード URLで使用禁止の値を使う際にやる符号化。 'bar', 'baz'=>'boom', 'cow'=>'milk', 'php'=>'hypertext processor'); echo http_build_query($data); // foo=bar&baz=boom…

LEFT JOIN と INNER JOIN

テーブル結合について ・LEFT JOIN - 左外部結合 左側のテーブルの全てのレコードを含む、 それに対応する右側の全てのレコードを結合。 人物ID 人物名 国ID Expr1 国名 1 リチャード1世 1 1 イギリス 2 シェークスピア 1 1 イギリス 3 孔子 3 NULL NULL 4 …

formのoptionを動的にする

・option input タグの value 値をキーにして、表示するラベルを値にした配列を指定 optionを置くと、指定した配列で値を表示できる。これを静的ではなく動的にやる。 class Test_ActionForm extends Ethna_ActionForm { var $form_template = array( 'prefl…

クエリ where,having

・where カラム値に対して条件分岐を行う。 select * from testm where key1 = 'a001' order by key1 ; ・having 集計値に対して条件分岐を行う。 select key1, count(*), sum(data1), avg(data1) from testm group by key1 having sum(data1) > 10;

.htaccessでのRewriteRule

.htaccessでリダイレクトとかの設定をしてみる。RewriteRuleで設定する。 ・RewriteRule パターンを置換対象で置き換える。 書き方は正規表現とほぼ同じ。。なはず。 www://test スラッシュなしでアクセスしたらありでリダイレクト RewriteRule ^test$ test/…

PHPにおけるシングルコーテーションとダブルコーテーションの違い

気になったので調べてみる。変数の処理で違うとのこと。 ・シングルコーテーション:文字列中の変数を展開する ・ダブルコーテーション:文字列中の変数を展開しない 例 ||< << 出力 >> >|| 変数 \$string は「$string」 変数 $string は「てすと」 シングル…

RSSを作ってみる

RSSを作ることになったので記載。 ■RSSニュースやブログなど各種のウェブサイトの更新情報を簡単にまとめ、配信するための幾つかの文書フォーマットの総称である。色んなWebサイトの更新を統一して効率的に把握できる。 <rss version="2.0"> <channel> <title>名前</title> <link>ウェブサイトのURL</link> <description>説明</description> <language>言語</language></channel></rss>…

vimのカスタマイズ

vimの設定を色々してみる。 ■エディタの配色設定カラースキーマで設定できる。カラースキーマはWebで公開されていたりする。今回は「名無しのVIM使い」さんのところから、BlackSeaというカラースキーマを頂きました。URL:http://nanasi.jp/colorscheme.html $ …

PHPのNOTICEエラーの非表示設定

フレームワークを使っていてブラウザで確認するとNOTICE:〜〜〜というエラーログが表示させる。 ■E_NOTICE 実行時の警告。エラーが発生しうる状況を示す。 ただし、通常のスクリプト実行の場合でも表示される場合がある。 自分で作成したファイルからのNOTIC…

PHPでエラーが表示されない(画面が真っ白)になる現象の解決法

フレームワークを使っていたら、ブラウザで確認すると画面が真っ白になる現象が度々あった。これはPHPにエラーがあるけど表示されないという現象。 ■チェックリスト1.display_errorsがOnになっていることを確認。 →なっていなければPHPの設定でdisplay_error…

研修(フレームワーク:入力フォーム作成1)

社内のフレームワーク(ベースはEthna)で入力フォームを作成する。ディレクトリ構造は以下の通り。 +----app (アプリケーションのスクリプト) | | | +----action (アクションスクリプト) | | | | | +----Index.php (初期画面アクションスクリプト) | | | | | …

研修(apache2のmod_rewrite設定)

apache2にmod_rewriteをインストールするため、リコンパイルする。 ■mod_rewrite apacheの機能でモジュールを組み込むことで利用可能。 アクセスURLの正規表現を書き換えることが可能。リダイレクト処理に有効。 以下、リコンパイル。 $ make clean $ ./conf…

研修(svn:ignore設定)

リポジトリに上げたくないデータ(環境設定ファイル、logなどなど)これらはsvn管理下から外さなくてはいけない。そこで管理下から外すファイル、ディレクトリに対し、ignore属性を付ける。 $ svn propset svn:ignore 'tmp' . svn propsetで属性の変更ができる…

研修(Ethna:文字化け対策)

サンプルを作ってブラウザで確認すると文字化けが起きた。原因は以下の通り ・Ethnaの内部文字コード:EUC-JP ・PHPの内部文字コード:UTF8 →内部文字コードが違う→プログラム実行すると文字化け なのでPHPの内部文字コードをEUC-JPにする。しかし、php.ini…

研修(Smartyのロジックとテンプレートの作成)

Smartyを用いて、入力フォーム、管理画面のロジックとテンプレートを作成する。 ■ロジック作成phpの処理をロジックで行う。Smartyによって変更になった部分だけ抜粋。 // エラー文 $smarty->assign("error", $error); $smarty->assign("error_array", $error…

研修(フレームワークとは)

フレームワークを学ぶ。 ■フレームワークアプリケーションの土台。データベースへの接続、データの登録編集削除ページの作成などWebアプリケーションに必須な機能を提供するソフトウェア。一から作らなくてよいので効率が良い。 ■フレームワークのメリット …

研修(Ethnaのインストールと動作確認)

■インストール公式ではPEARでのインストールを推奨しているのでそれで行う。 PEARチャンネルの選択、アップデート、そしてethnaのインストールを行う。同時にSmartyのインストールも行う。PEARだとインストールの設定をする必要がない。 $ pear channel-disc…

研修(パーミッション)

パーミッションについて復習。 -rwxr-xr-x 1 sato sato 801 7月 6 11:25 config.php drwxr-xr-x 2 sato sato 4096 7月 3 16:22 templates drwxrwx--- 2 sato www 4096 7月 6 11:40 templates_c 一番左ファイルタイプと各ユーザーの権限 ファイルタイプ -:フ…

研修(Smartyインストールと設定)

テンプレートエンジンである、Smartyを用いる。 ■テンプレートエンジン ロジックの部分(プログラム)とテンプレート(html)部分を分けて作成し、 プログラムとデザインを別々に管理できるソフトウェア。 ■Smarty PHPのためのテンプレートエンジン。 特徴 ・高…

研修(Webセキュリティ)

Webセキュリティについてこういうことが起きるというのと対策方法をまとめた。 ■SQLインジェクション攻撃ショッピングサイトなどの入力フォームでSQLインジェクション攻撃を受け、個人情報、クレジットカード情報が盗まれて不正に扱われるケース。 ・原因 サ…

研修(管理画面作成:PEAR_Pager)

実装したページングをPEAR_Pagerを用いて実装する。 ■PEAR_Pagerページング機能のライブラリ ■Pagerの設定PEAR_Pagerを使用する場合、プログラムの先頭で「Pager.php」を読み込む必要がある。 ■Pagerクラスのオブジェクト作成Pagerを利用するためのオブジェク…

研修(管理画面作成:データ件数取得と表示)

DBに保存したデータを参照できる管理画面を作成する。この管理画面にはページング機能を実装する。 ■ページングとは 閲覧上の負荷を下げる目的で複数ページに分轄して表示させるナビゲーション。 簡単に言うと、Googleなどで検索した後に出てくる 1 2 3 4 5 …

研修(PEAR::DBでのMySQL接続)

今まで作成したphp上のMySQL関連の部分を、PEAR::DBを使用するよう変更する。 ■PEARphpのライブラリ群のこと。 PEAR::DBでMySQL接続する設定ファイルへと変更する。 getMessage()); } ?> PEAR::DBを使用…

研修(PEAR::DBでのクエリ送信とインジェクション対策)

PEAR::DBでクエリを送信する。 // クエリ作成 $query = "SELECT * FROM db_name"; // クエリ送信 $res =& $db->query($query); // エラーがあったら表示 if(DB::isError($query)){ print $query->getMessage(); } $res =& $db->query(クエリ文)でクエリを送…

研修(PEAR::DBでのクエリの結果の取得方法)

PEAR::DBでクエリを送信し、得た結果を取得する方法。PEAR::DBのget関数を使う。これはクエリ送信も一緒にやってくれる関数。 ■クエリ結果が1個の場合getOne()を使う。 // クエリ作成 $query = "SELECT name FROM db_name WHERE id=1"; // クエリ送信し結果…

研修(設定ファイル作成)

まず、MySQLに接続する設定ファイルをphpで作成する。設定ファイルは公開されたらサーバー情報が知られてしまうので、公開されない別のディレクトリに保存し、公開ファイルから参照するようにする。今回はhtdocsと同じ階層にetcディレクトリを作成し、そこに…