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

Xbox フォーラム
【お知らせ】 Xbox フォーラム 日本における公式サポート終了のお知らせ
かねてよりリニューアル準備中として公開を停止しておりました
Xbox フォーラムですが、諸般の事情により日本でのサポートが
終了することとなりました。
http://www.xbox.com/ja-JP/community/forums?xr=shellnav
危なかった・・・(´・ω・)ス
色々考えさせられる箱・・・
自作フレームワークの記録 パスを保持(´・ω・)ス
// 例のごとく作業しながら記録中。
引き続き作業。
先程、データベース接続を用意していたが、
require_once '../接続のアレ.php';
$db = getDb();とか呼び出すのに素敵じゃない。
他のCMSみたいにパスをがっちり保持しておきたい所。
要は汎用インクルード用に用意という事(´・ω・)ス
まずはいつも使うWordPress風にしたいので、
ここはどうなっているのかヲチ。
ヲチする前に予想するに方法としては、
dirname(__FILE__)でパスを解決
include path 設定することでパスを解決
このふたつぐらいしか思いつかない。では、追う。
-->結果、set_include_pathで一度設定する事に。
理由として毎回dirname(__FILE__)より軽そうだから。
で、ここで、テストしてみるか。
-->当然といえば当然、include_pathを変えれば、
pear絡みがまためんどくさい事に。当たり前田敦子。
定数用意。
ここで、WordPressみたいにTEMPLATEPATH設定しているようにするか。
ちとまたコードを追う。
お、get_template_directoryか、そこも追う。
おkおk
ここまでの流れ ----------------------------------
マズイと思う。
開発環境を用意
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.受け取り処理を用意
まずは接続を書いておく。
エラーの分岐は違う処理の方がいいか・・・。
お、ここで何か実際にサーバー用意しないと・・・
早速用意。実際にこれから作る案件があるから、
そこでテストしてみるか。外部ファイル化するのが前提なので、
dbというディレクトリーを一つ用意。
外部からは関数として使う為、受け取りを用意。
TODO おっと徳丸浩氏の文字コードも書いておかないと、
まずはこれで呼び出してみる。
そして、ファイル自身のパスも・・・
あ、そこもちゃんと保持しておかなきゃか。
ここは、その基本部分を再度見直すか。
ここまでの流れ ----------------------------------
作らないとマズイと思う。
開発環境を用意
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レイアウトを作る
レイアウトをしっかり組む
モデルを用意する。←いまここ。




