SQLの窓

2011年06月30日


PHP : ImageMagick : 背景が透過する画像を作成

▼ クリック


色指定で 'none' を指定してみて下さい。ネタ元は、PHP マニュアルの テキスト描画ページの投稿データです





posted by lightbox at 2011-06-30 23:59 | PHP + WEBアプリ | このブログの読者になる | 更新情報をチェックする

2011年06月26日


IE 専用 : 「信頼済みサイト」でのみ行う、InternetExplorer.Application オブジェクト

通常の「インターネット」では行いません。「イントラネット」または、「信頼済みサイト」でのみ ActiveX を実行可能にして、WEB ページのデータを Excel のブックに転送して保存します。

業務アプリケーションとして、「運用ルール」がきちんと決められ、システム管理者が居られるとい前提で通常は利用されます。

▼ 以下、前提となる設定( 通常アプリケーションで設定します )




画像では、「localhost」ですが、イントラネットですと、単純にサーバー名になります
<?
header( "Content-Type: text/html; Charset=utf-8" );
header( "pragma: no-cache" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
header( "Cache-control: no-cache" )


?>
<!DOCTYPE html>
<html>
<head>
<neta http-equiv="Content-type" content="text/html; charset=utf-8">
<script type="text/javascript">

var ie

window.onunload = quitIe;

function openIe() {

	if ( !ie ) {
		ie = new ActiveXObject("InternetExplorer.Application");
		ie.Width = 800;
		ie.Height = 600;
		ie.Left = 100;
		ie.Top = 100;
		ie.Visible = true;
	}

}
function quitIe() {

	if ( ie ) {
		ie.Quit();
		ie = null;
	}
}

function naviIe( str ) {

	if ( ie ) {
		ie.Navigate( str )
	}

}

function checkIe( ) {

	var result;

	if ( ie ) {
		result = ie.Document.getElementsByTagName("img")(0).src
		alert(result)
	}

}


</script>
</head>
<body>
<pre>
<input type="button" value="IEを開始する" onclick='openIe()'>
<input type="button" value="IEを終了する" onclick='quitIe()'>
<input type="button" value="SQLの窓へ" onclick='naviIe("http://winofsql.jp/")'>
<input type="button" value="処理" onclick='checkIe()'>

</pre>
</body>
</html>


Excel の操作とは違い、呼び出したページの操作を行うので、都合のよい JavaScript でオブジェクト操作を行っています。Navigate2 という POST できるメソッドがあるのでプログラムからの投稿も一応は可能だと思います



posted by lightbox at 2011-06-26 13:52 | IE | このブログの読者になる | 更新情報をチェックする

PHP雛型(2会話DB更新処理) : MySQL、XMLHttpRequest、XML、JSON、Canvas





位置指定は、全て position:absolute です
  ( プレースホルダは、position:relative )

データ参照に XMLHttpRequest を使用しています

main.php の data_format 変数に "xml" をセットすると、xml で呼び出します

xml の Content-Type は application/xml です
  ( デバッグ時はブラウザで直接確認します )

json の Content-Type は text/plain です
  ( デバッグ時にブラウザで直接確認する為です )

mysql のデータは mysql_fetch_array で取り出しています

入力エリアの枠は canvas を使用しています

更新は form で IFRAME に対して送信しています
  ( IFRAME 内に書き出された JavaScript で元の画面操作を行います )



posted by lightbox at 2011-06-26 13:01 | PHP + WEBアプリ | このブログの読者になる | 更新情報をチェックする

2011年06月24日


りそな銀行が、平成23年5月25日から「Visaデビットカード」を取り扱います

「りそなVisaデビットカード<JMB>」の取扱開始について(PDF : 956KB)

今日りそな銀行に行くと、でっかいポスターがところ狭しと貼ってあるのでびっくりしました。Visa デビットは、つい一年前まで、日本国内で、楽天銀行、スルガ銀行、日興コーディアル証券の3つしか無かったとてもレアなカードです。

Visa Worldwide Tokyo | Visaデビットカード

現在は、りそなを加えて以下のような銀行が発行しています。

 楽天銀行:楽天銀行デビットカード
 スルガ銀行:SURUGA Visaデビットカード
 ジャパンネット銀行:JNBカードレスVisaデビット(ワンタイムデビット)
 りそな銀行:りそなVisaデビットカード
 あおぞら銀行:あおぞらキャッシュカード・プラス
 埼玉りそな銀行:りそなVisaデビットカード
 近畿大阪銀行:近畿大阪デビットカード
 三菱東京UFJ銀行:三菱東京UFJ-VISAデビット

そもそも、どんなカードかはあまり一般的では無く、Visa のマークのある店でショッピングに使えるのですが、クレジットカードのような信用取引による「後払い」では無く、その場で引き落とされるものです。

りそなは、パンフレットで「第三のカード」と言い、クレジットカードでも電子マネーでもないと大きくタイトルに書いていますが、今日受付の人に専門的な事を聞いてみると、頭の上に「?」が3つぐらい出てたので、

「あ、べつにいいです」

と言うと、ほっとした表情で笑ってあやまっていました。無理の無い事です。ですが、Visa デビットは、ネットショッピングでも使えたりするので注意が必要です。

「二重引き落とし」が発生する可能性があります

原因としては、ネットショッピングで、決済したあと訂正、変更処理をしようとするとその場で引き落とされている為、すぐに元に戻す事ができません。ですから、最初の商品をやめて、次の商品に変えたつもりでも、ある期間は両方の代金が引き落とされてしまいます。

これは、店側としては仕方の無い事で、クレジットカードのシステムでデビットを使っているため、店側として別々の対処は不可能です。ですから、最近では店側が「デビットカードをできるだけ使わないようにお願いします」と、理由を説明してお願いする文章が「支払い方法」のページにあったりします。

そもそも、クレジットカードは店側がクレジットカード会社に「売上票」を送付するまで「売上」になっていないので、書類上の変更で済みますが、デビットカードの場合は、返金処理が月毎の締め処理に行われる為、「二重引き落とし状態」が起こります。

これは、店頭で使った場合でも、お店の処理に間違いがあると( 人間ですからあります )同様の「二重引き落とし状態」が発生する可能性があります。

さらに、Visa デビットではないですが、日本国内で使える各銀行のキャッシュカードで決済できる j-Debit にも同様の問題は発生すると思いますので、使う側がきっちりその特性を把握しておく必要があります。

最近は、代金引換の運送業者が専用端末で j-Debit を利用できるようにしている場合もあるので、「クレジットカード」とは違った意味での注意と、さらに、暗証番号を使う場合は、セキュリティにも気をつけましょう。( j-Debit )

関連する記事

VISA認証サービスとパーソナル・メッセージ



タグ:debit visa
posted by lightbox at 2011-06-24 13:42 | 記録 | このブログの読者になる | 更新情報をチェックする

2011年06月21日


「Control Userpasswords2」による自動ログオン

「自動ログオン」で検索するとたくさんヒットしますが、それだけに確かな
「裏付け」が欲しかったので、MSDN で検索しました。

その結果ヒットした Microsoft 文書が以下のページです。

Windows XP、Windows Vista、および Windows 7 にログオンするための
 Ctrl + Alt + Del キー シーケンスを有効または無効にする方法

内容は「自動ログオン」ではありませんが、「自動ログオン」設定する為の
ダイアログを表示する方法は同じです。にも、かかわらず、

1) [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックし、
「Control Userpasswords2」と入力して Enter キーを押します。

とありました。やはり、このダイアログは「Control Userpasswords2」でし
か出せないようです。


関連する記事

Windows7 の control.exe の引数



posted by lightbox at 2011-06-21 22:38 | Windows7 | このブログの読者になる | 更新情報をチェックする

2011年06月20日


Flex4 : ローカルPCデータをテキストエリアにロード、テキストエリアの内容をローカルPC に保存



サンプルでは、Flex 内部のテキストエリアを使用していますが、Flex より
外部の JavaScript にアクセスする事によって、HTML 上にローカル PC の
ファイルの内容を利用する事ができます( 保存も同様です )

新規でテキストエリアに入力すると、改行コードが CR でした。HTML 側の
データを使う場合は、変換は必要無いと思います。

▼ クリックすると、実行ページが開きます

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
	xmlns:mx="library://ns.adobe.com/flex/mx"
	xmlns:s="library://ns.adobe.com/flex/spark"
	initialize="initData()"
	usePreloader="false"
>
<!--
***************************************************
 Flex4 における 絶対位置指定
*********************************************** -->
<s:layout>
	<s:BasicLayout />
</s:layout>

<!--
***************************************************
 現在のクラスの非デフォルト、非ビジュアルプロパ
 ティ を宣言します。例えば、効果、バリデーター、
 およびフォ ーマッターを定義します。
*********************************************** -->
<fx:Declarations>
</fx:Declarations>

<!--
***************************************************
 名前空間が必要になっています
 #id で個別設定が可能です
*********************************************** -->
<fx:Style>
@namespace mx "library://ns.adobe.com/flex/mx";
@namespace s "library://ns.adobe.com/flex/spark";

s|Button {
	color : #990000;
	font-size : 12;
}

</fx:Style>

<fx:Script>
<![CDATA[

	import mx.formatters.*;

	// HTTPService のイベント用
//	import mx.rpc.events.*;
	// Alert 用
	import mx.controls.*;

	// テキストファイルを読み込む為のオブジェクト
	private var fr:FileReference;

	// ファイル名をパネルのタイトルに表示する為の変数
	[Bindable]
	private var fname:String = "";

	// データ保存用
	import mx.graphics.codec.*;
	private	var png_enc:PNGEncoder;
	private var ba_data:ByteArray;
	private	var text_data:String;
	private var ctype:String = "utf-8";


	// *********************************************************
	// ログ表示
	// *********************************************************
	private function log(data:Object):void {

		// 日付編集用
		var fmt:DateFormatter = new DateFormatter();

		fmt.formatString = "YYYY/MM/DD HH:NN:SS";
		var logdt:String = fmt.format( new Date );

		// JavaScript の呼び出し
		ExternalInterface.call(
			"console.log", logdt,
			" "+data
		);

	}

	// *********************************************************
	// アプリケーションの初期化
	// *********************************************************
	private function initData():void {

		// メッセージ
		log("initData() が実行されました" );

		Security.allowDomain("*");

		// ファイル読み込み用
		fr = new FileReference();
		// PNG 画像作成用
		png_enc = new PNGEncoder();


		// IO エラー
		fr.addEventListener(IOErrorEvent.IO_ERROR, 
			function (event:IOErrorEvent):void {
				Alert.show("IOError:" + event.text );
			}
		);

		// キャンセル
		fr.addEventListener(Event.CANCEL, 
			function (event:Event):void {
				Alert.show( "ファイル選択をキャンセルしました" );
			}
		);

		// ファイルが選択された
		fr.addEventListener(Event.SELECT,
			function (event:Event):void {
				log("ファイルが選択されました" );
				var file:FileReference = FileReference(event.target);
				fname = file.name;
				log("name : " + file.name );
				// 読み込み開始
				fr.load();
			}
		);

		// バイナリロード完了
		fr.addEventListener(Event.COMPLETE,
			function(event:Event):void {

				// ByteArray(バイナリ) を作成
				ba_data = ByteArray(fr.data);

				// ボタンによって、キャラクタセットを変更
				// ( バイナリより、テキストを読み込む )
				text_data = ba_data.readMultiByte(ba_data.length, ctype);

				// CRLF の場合、LF に変更
				var myPattern:RegExp = /\r\n/g;
				text_data = text_data.replace(myPattern,"\n");
				textCheck.text = text_data;

			}
		);

	}

	// *********************************************************
	// ファイル参照ダイアログを開く
	// *********************************************************
	private function selectFile():void {

		try {
			fr.browse();
		}
		catch (e:Error) {
			log(e);
		}

	}

	// *********************************************************
	// 保存
	// ※ テキストエリア内のテキストの直接保存
	// *********************************************************
	private function saveText():void {


		ba_data = new ByteArray();

		// テキストエリア内の文字列
		text_data = textCheck.text;

		// CR を CRLF に変更
		// デフォルト状態で入力すると、改行が \r になるようなので
		// どんな場合もいったん \r に変換してから、\r\n に再変換
		var myPattern:RegExp = /\r\n/g;
		text_data = text_data.replace(myPattern,"\r");
		myPattern = /\n/g;
		text_data = text_data.replace(myPattern,"\r");
		myPattern = /\r/g;
		text_data = text_data.replace(myPattern,"\r\n");

		ba_data.writeMultiByte( text_data, ctype );

		try {
			fr.save( ba_data, "save_data.txt" );
		}
		catch( e:Error ) {
			log( e );
		}

	}

	// *********************************************************
	// 保存
	// ※ Panel オブジェクト全体を画像として保存
	// *********************************************************
	public function saveImage2():void {

		// パネルサイズのビットマップデータを作成
		var bitmapData:BitmapData = new BitmapData(imagePanel.width, imagePanel.height);

		// 用意したビットマップデータにパネルを描画
		bitmapData.draw(imagePanel);

		// ビットマップデータを PNG に変換
		ba_data = png_enc.encode(bitmapData);

		// PNG バイナリ(ByteArray) を保存
		fr.save( ba_data, "save_panel.png" );

	}

]]>
</fx:Script>

<!--
***************************************************
 Flex4 における 絶対位置指定の画面定義
*********************************************** -->

<s:Button 
	id="loadButton1"
	x="10" y="10"
	width="140"
	label="UTF8N テキスト選択"
	click="ctype = 'utf-8';selectFile();"
/>

<s:Button 
	id="loadButton2"
	x="160" y="10"
	width="140"
	label="SJIS テキスト選択"
	click="ctype = 'shift_jis';selectFile();"
/>

<s:Button 
	id="saveButton"
	x="310" y="10"
	width="140"
	label="テキストファイル保存"
	click="saveText();"
/>

<s:Button 
	id="savePanelButton"
	x="460" y="10"
	width="120"
	label="Panel 保存"
	click="saveImage2();"
/>

<mx:Panel
	id="imagePanel"
	title="{fname}"
	x="10" y="40"
	paddingLeft="0"
	paddingRight="0"
	layout="absolute"
>
	<mx:TextArea
		x="0" y="0"
		id="textCheck"
		width="650"
		height="500"
	
	/>
</mx:Panel>

</s:Application>



posted by lightbox at 2011-06-20 02:48 | Flex | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり