WEB系技術電脳日記 -503ページ目

夜(´・ω・)ス

夜(´・ω・)ス

すごく・・・暑い。まだまだ夏のような・・。
しばし涼んでから作業するか。

そんな記録。

縄、蛇口編む(´・ω・)ス

photo:01



ちと編む。
編み方忘れた。
そんな記録。



iPhoneからの投稿

xbox360 撤退秒読み?公式フォーラム閉鎖

$WEB系技術電脳日記


Xbox フォーラム

【お知らせ】 Xbox フォーラム 日本における公式サポート終了のお知らせ

かねてよりリニューアル準備中として公開を停止しておりました
Xbox フォーラムですが、諸般の事情により日本でのサポートが
終了することとなりました。
http://www.xbox.com/ja-JP/community/forums?xr=shellnav



危なかった・・・(´・ω・)ス
色々考えさせられる箱・・・


天草四郎「農民の!ちょっといいとこ見てみたい!」

$WEB系技術電脳日記天草四郎「農民の!ちょっといいとこ見てみたい!」

1 :日本@名無史さん:2007/05/29(火) 23:59:03

「一揆!一揆!一揆!一揆!一揆!一揆!一揆!」



移動(´・ω・)ス

$WEB系技術電脳日記


午後は自宅の作業場に戻る事に。
たまにはノート持ってどっかのファミレスとか、
違う環境で作業も魅惑。
どうしようかと・・・。
いゃいゃ・・・自宅の鯖直さなきゃ・・・と。
色々考える昼前の一時。

自作フレームワークの記録 パスを保持(´・ω・)ス

// 例のごとく作業しながら記録中。

引き続き作業。

先程、データベース接続を用意していたが、
require_once '../接続のアレ.php';
$db = getDb();とか呼び出すのに素敵じゃない。
他のCMSみたいにパスをがっちり保持しておきたい所。
要は汎用インクルード用に用意という事(´・ω・)ス

まずはいつも使うWordPress風にしたいので、
ここはどうなっているのかヲチ。
ヲチする前に予想するに方法としては、

dirname(__FILE__)でパスを解決
include path 設定することでパスを解決
このふたつぐらいしか思いつかない。では、追う。

-->結果、set_include_pathで一度設定する事に。
理由として毎回dirname(__FILE__)より軽そうだから。
で、ここで、テストしてみるか。

-->当然といえば当然、include_pathを変えれば、
pear絡みがまためんどくさい事に。当たり前田敦子。
定数用意。
ここで、WordPressみたいにTEMPLATEPATH設定しているようにするか。
ちとまたコードを追う。

// default-constants.php
function wp_templating_constants( ) {
/**
* Web Path to the current active template directory
* @since 1.5.0
*/
define('TEMPLATEPATH', get_template_directory());

/**
* Web Path to the current active template stylesheet directory
* @since 2.1.0
*/
define('STYLESHEETPATH', get_stylesheet_directory());


お、get_template_directoryか、そこも追う。


function get_template_directory() {
$template = get_template();
$theme_root = get_theme_root( $template );
$template_dir = "$theme_root/$template";

おkおk




ここまでの流れ ----------------------------------
マズイと思う。
開発環境を用意
WEBレイアウトを作る
レイアウトをしっかり組む
モデルを用意する。
パスをしっかり保持する←いまここ。

自作フレームワークの記録  モデルは囁く

//例のごとく作業しながらメモなので、アレ(´・ω・)ス

ずいぶんと間が空いたが、また作り始める。
ここまでにレイアウトの表示はそこそこに、
次はDBからの操作をここに記録してみる。今回はPDOで行く。
気になるのは最近セキュア的にアレだと言われてるので、なにが悪いのか確認。
参照:PDOにおける一応の安全宣言と残る問題点


このSQLインジェクションは、プレースホルダを用いてSQL呼び出ししている場合にも起きえます。以下の条件がすべて満たされる場合です。
1.MySQLを用いている
2.接続時に文字エンコーディングを指定していない
3.MySQLとの接続の際の文字エンコーディングとしてShift_JISを使っている
4.動的プレースホルダ(MySQLのデフォルト)

こんなサイトがあるのかと思われる方もおられるでしょうが、私は意外にあると予想しています。この種のサイトをソースコード診断で見つけたこともありますし、去年のPHPカンファレンスの講師飲み会で「MySQLにShift_JISで接続しているサイトありますかね」と周囲の方に聞いてみたところ、ケータイサイトはShift_JISだし、文字コード変換したくない人はShift_JISで接続している場合もあるのではないかという答えでした。

確かに携帯の場合はあろうかと思うが、
あくまでVだけ育成させるから基本は文字コード指定だし、
接続の時にちゃんと文字コード指定しておけば・・問題がないな。
さて、まずは基本で書いていく。

流れとして、
1.接続書く、
2.外部ファイル化
3.受け取り処理を用意

まずは接続を書いておく。

$dsn = 'mysql:dbname=selfphp; host=127.0.0.1';
$usr = 'usr';
$passwd = 'password';

try {
$db = new PDO($dsn, $usr, $passwd);
print '接続に成功しました。';
$db = NULL;
} catch (PDOException $e) {
die("接続エラー:{$e->getMessage()}");
}


エラーの分岐は違う処理の方がいいか・・・。
お、ここで何か実際にサーバー用意しないと・・・
早速用意。実際にこれから作る案件があるから、
そこでテストしてみるか。外部ファイル化するのが前提なので、
dbというディレクトリーを一つ用意。
外部からは関数として使う為、受け取りを用意。

function getDb() {
$dsn ='mysql:dbname=データベース名; host=ホスト名';
$usr = 'アカウント';
$passwd = 'パスワード';

try {
$db = new PDO($dsn, $usr, $passwd,array(PDO::ATTR_PERSISTENT => TRUE ));
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//文字化け対策
$db->exec('SET NAMES utf8');
} catch (PDOException $e) {
die("データベース接続エラです。:{$e->getMessage()}");
}
return $db;
}


TODO おっと徳丸浩氏の文字コードも書いておかないと、
まずはこれで呼び出してみる。
そして、ファイル自身のパスも・・・
あ、そこもちゃんと保持しておかなきゃか。
ここは、その基本部分を再度見直すか。




ここまでの流れ ----------------------------------

作らないとマズイと思う。
開発環境を用意
WEBレイアウトを作る
レイアウトをしっかり組む
モデルを用意する。←いまここ。

朝(´・ω・)ス

朝(´・ω・)ス

昨夜は4時に寝たせいかすごく眠い。
だが、ここはしっかりと・・・。
まずはコーヒー。


そんな朝の記録。

中身の予測

さて、お酒飲むか・・・

$WEB系技術電脳日記

先ほど修理したノートも適度にインストールもいけそうなので、
ここでお酒を飲む事に。
タバコもないのでコンビニに行こうと・・・。

そんな夜の記録。