2014年5月5日月曜日
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 をダウンロードする
2) 適当な所に解凍 (c:/oracle 等)
3) 以下の環境変数に上記 2) の値を追加
4) php.ini の extension のコメントを外す
6) phpinfo 関数などで OCI8 が利用できるか確認。「OCI8」の記述があれば使用できる
[注意]
上記 1) にもあるように PHP で OCI8 関数を使用する場合には Oracle Client Instant は 32bit 版をDLすること!これに気づかず長い事試行錯誤してしまった‥。
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 に出力という流れを試してみる。
自前会員システムの会員毎のアクセスログを収集したい。
■やりたいこと:
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
# 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
登録:
投稿 (Atom)