2014年5月5日月曜日

CM やらどこかでよく聴くクラシック曲


リンク先は Youtube :リンク切れてたらごめんなさい。

2013年3月12日火曜日

スマホ:画面サイズを合わせる(回転、Android、iphone 対応)


以下の bwidth = 640 は作成しているサイトの幅を指定する。
幅が 960px だったら、 bwidth = 960 とする。

<meta name="viewport" content="width=device-width">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>
<script>
$(window).bind('resize load', function(){
    var rw = $(window).width();

    var swidth = 320;  // 小さい機種などの解像度
    var bwidth = 640; // 自分のサイトのサイズ

    if(rw <= swidth) {
        $("html").css("zoom" , bwidth / swidth);
    }
    else {
        $("html").css("zoom" , rw / bwidth );
    }
    $("body").css("-webkit-text-size-adjust" , "100%");
});
</script>

一応要テスト。

2012年8月27日月曜日

IIS 7 (Windows 2008 r2 64ビット) + PHP 5.3 に OCI8 をインストールする

手順自体は、

1) Oracle の HP から Oracle Client Instant をダウンロードする
* ユーザー登録が必要
* OS が 64bit でも PHP の OCI8 を使う場合は 32bit 版のOracle Client Instant (basic) をダウンロードする事!!

2) 適当な所に解凍 (c:/oracle 等)


3) 以下の環境変数に上記 2) の値を追加
Path, NLS_LANG, LD_LIBRARY_PATH
詳しくは PHP のマニュアル参照 http://php.net/manual/ja/oci8.installation.php 


4) php.ini の extension のコメントを外す

extension=php_oci8.dll      ; Use with Oracle 10gR2 Instant Client
extension=php_oci8_11g.dll  ; Use with Oracle 11gR2 Instant Client

5) Windows を再起動して上記 3) の環境変数を反映させる



6) phpinfo 関数などで OCI8 が利用できるか確認。「OCI8」の記述があれば使用できる


[注意]
上記 1) にもあるように PHP で OCI8 関数を使用する場合には Oracle Client Instant は 32bit 版をDLすること!これに気づかず長い事試行錯誤してしまった‥。



2012年5月14日月曜日

PHP 5.3 で CakePHP 1.3 でエラー: DEPRECATED が表示される


cake/libs/configure.php ファイルで error_reporting(E_ALL) 関数の後ろに追加

  error_reporting(E_ALL);

  // 追加
  if (error_reporting() > 6143) {
  error_reporting(E_ALL & ~(E_DEPRECATED|E_STRICT|E_NOTICE));
  }
  // 追加

大体 290~300行目くらい?

2012年4月23日月曜日

ECCUBE 2.11.5 (MySQL) で管理ページにログインできない場合


ECCUBE を開発環境から本番環境にアップした際に、管理ページにログインできなくなってしまった。
ID、PWD は間違っていないのにログインができず非常に困った。

原因は、DB を dump した際の dtb_member テーブルのパスワードと Salt の値が開発環境と異なるためらしい。
以下はその場しのぎ的な処理。
dtb_member の login_id, password, salt を更新する SQL を生成する関数。

function sfGetAuthInfo ($loginid, $password) {
$sql = "";
$result = "";
if ( AUTH_TYPE == 'PLAIN') {
$result = $password;
}
else {
$_tmp = sprintf("%s:%s", $password, AUTH_MAGIC);
$result = hash_hmac(PASSWORD_HASH_ALGOS, $_tmp, AUTH_MAGIC);
}
$sql = sprintf("UPDATE dtb_member SET login_id='%s', password='%s', salt='%s' WHERE id=2", $loginid, $result, AUTH_MAGIC);
return $sql;
}
実行は以下のように実行する。

$loginid = "ログイン名";
$password = "パスワード";
$sql = sfGetAuthInfo ( $loginid, $password )
echo $sql;

上記を ECCUBE 内のどこかのファイル( html/index.php など)で実行し、結果に出力される SQL をMySQL上で実行して、本番環境用のパスワードに書き換える。




2012年4月5日木曜日

Apache の access_log に PHP の情報を表示する

■目的:
自前会員システムの会員毎のアクセスログを収集したい。

■やりたいこと:
Apache の access_log に PHP で取得される一部の変数/セッションを書き出しできるようにしたい。

■ PHP の Apache 関数を使う。
http://jp.php.net/manual/ja/function.apache-note.php


PHP の変数が出力できれば、
acces_log -> シェルで会員ID(上記 apache_note で登録する変数 )毎に集計(cron) -> 集計結果を HTML or DB に出力という流れを試してみる。

2012年3月30日金曜日

ASP.NET ( IBatis.NET ) から SQL Server 2008 への接続について

IBatis.NET にて、

# sqlmap.config

<provider name="sqlServer2.0"/>
<dataSource name="lec2" connectionString="Persist Security Info=False;Data source=(local)\SQLEXPRESS;Initial Catalog=xxxx;User ID=xxxxx;Password=xxxxx;" />

# provider.config

<provider
     name="sqlServer2.0"
     enabled="true"
     description="Microsoft SQL Server, provider V2.0.0.0 in framework .NET V3.5"
     assemblyName="System.Data, Version=2.0.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089"
     connectionClass="System.Data.SqlClient.SqlConnection"
     commandClass="System.Data.SqlClient.SqlCommand"
     parameterClass="System.Data.SqlClient.SqlParameter"
     parameterDbTypeClass="System.Data.SqlDbType"
     parameterDbTypeProperty="SqlDbType"
     dataAdapterClass="System.Data.SqlClient.SqlDataAdapter"
     commandBuilderClass=" System.Data.SqlClient.SqlCommandBuilder"
     usePositionalParameters = "false"
     useParameterPrefixInSql = "true"
     useParameterPrefixInParameter = "true"
     parameterPrefix="@"
     allowMARS="true"
/>
上記でも接続できなかったので Windows ファイアーウォールで TCP/UDP 1433 の確認と「SQL Server 構成ツール」の 「SQL Server 構成マネージャー」のTCPおよび名前付きパイプが有効になっているか確認。
> どうも TCP は関係無かった模様…

それでも繋がらなかったので色々と見直し悩んだ結果、上記 sqlmap.config の dataSource の接続文字列で data source=(local)\SQLEXPRESS; の所を data source=(local)/SQLEXPRESS; としていたのが原因と分かる。

気づくまで 1時間30分ぐらい掛かった・・・。

環境: Windows 2008 r2 (64bit), IIS 7.5, SQL Server 2008 r2 Express, .NET Framework 3.5