swf 内から呼び出す php のセッション

  PHP のセッションを利用する



swf を HTML 上の部品として使い、単独でサーバーと通信しながら、
セッション変数を利用して、WEB アプリケーション処理として全体のコントロールが可能です

ここでは、パスワード入力によるログインを想定しています。

実装では、入力したパスワードがサーバー側で認証された場合、JavaScript を呼び出して
ページ表示を変更するか、または、別のページに移動するようにします。


( 実際のパスワード文字列は、こちら を使ってパスワードがネッワーク上を流れないようにします )

以下は、flex 内部から呼び出した php でセットされたセッション変数の内容を
リロードボタンで参照するサンプルです

サンプル

1) パスワードを入力
2) 送信ボタンをクリック
3) swf 内から password.php を呼び出して、入力した内容を セッション変数にセット
4) リロードボタンをクリックして、index.php 側でセッション変数を読み出す

以下、ソースのダウンロード
http://lightbox.on.coocan.jp/download/flex3_password_session.lzh

※ debug クラスのコードです

※ ビルド用のスクリプトです



  password.mxml



何もしなければ、php には UTF-8 のデータが渡ってしまいますが、System.useCodePage = true
する事で、SHIFT_JIS(OS のコードページ) で転送されます

URLLoader URLRequest URLVariables

  
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
	xmlns:mx="http://www.adobe.com/2006/mxml"
	initialize="initData();"

	paddingLeft="0"
	paddingTop="1"
	paddingBottom="0"
	paddingRight="0"

	backgroundColor="0xFFFFFF"
>

<mx:Script>
<![CDATA[

	import mx.controls.*;
	import lightbox.*;

	// リクエスト用
	private var post:URLLoader;

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

		// メッセージ
		debug.firebug("initData() が実行されました" );
		debug.open();

		// リクエスト用インスタンス
		post = new URLLoader();
		// IO エラー用イベント登録
		post.addEventListener(IOErrorEvent.IO_ERROR, systemError);
		// URL 呼び出し官僚イベント登録
		post.addEventListener(Event.COMPLETE, completeUpload);

		// PHP を SHIFT_JIS で書くため
		System.useCodePage = true;

	}


	// *********************************************************
	// 処理
	// *********************************************************
	public function ActionStart():void {

		// パスワード( そのまま )
		debug.firebug( pass.text );

		// URL リクエストに引き渡す変数を作成
		var param:URLVariables = new URLVariables();
		param.pass = pass.text;
		param.id = "lightbox";

		// 呼び出す時の情報セット
		var req:URLRequest = new URLRequest("./password.php");
		req.data = param;	// 変数セット
		req.method = URLRequestMethod.POST;

		// 呼び出して終了
		post.load(req);

	}

	// *************************************************
	// 処理終了
	// *************************************************
	private function completeUpload(event:Event):void {

		debug.firebug( post.data );
	}
			
	// *************************************************
	// IO エラー
	// *************************************************
	private function systemError(event:IOErrorEvent):void{

		debug.firebug( "IOError:" + event.text );
	}

]]>
</mx:Script>

<mx:HBox>
	<mx:TextInput
		id="pass"
		displayAsPassword="true"
	/>
	<mx:Button
		label="送信"
		click="ActionStart();"
	/>
</mx:HBox>

</mx:Application>
  



  password.php

session_start() PHP のセッションについて

  
<?
session_start();

$_SESSION['password'] = $_POST['pass'];
print session_id();

?>
  



  index.php

firebug について SWFObject について

SHIFT_JIS で書かれています
  
<?
session_start();
?>
<HTML>
<HEAD>
<META http-equiv="Content-type" content="text/html; charset=Shift_JIS">
<TITLE>デバッグ用</TITLE>
<STYLE type="text/css">
* {
	font-family: "MS Pゴシック";
	font-size: 12px;
}
BODY {
	background-color: white;
	color: black;
}
</STYLE>
<SCRIPT 
	language="javascript"
	type="text/javascript"
	src="http://homepage2.nifty.com/lightbox/firebug/firebug.js">
</SCRIPT>
<SCRIPT 
	language="javascript"
	type="text/javascript"
	src="http://homepage2.nifty.com/lightbox/swfobject.js">
</SCRIPT>
</HEAD>

<!-- *******************************************************
 BODY
******************************************************** -->
<BODY>

<TABLE><TR><TD>
パスワード入力 : 
</TD><TD>
<DIV id="flashcontent" style='display:inline'></DIV>
</TD></TR></TABLE>

<script type="text/javascript">
	var so = new SWFObject(
		"password.swf?reload=" + (new Date()).getTime(),
		 "idswf", "250", "25", "9", "#FFFFFF");

	so.write("flashcontent");
</script>

<br>
SESSION_ID = <? print session_id() ?>
<br>
PASSWORD = <?= $_SESSION['password'] ?>
<br>
<INPUT
	type="button"
	value="リロード"
	onClick='top.location.reload(true)'
>

</BODY>
</HTML>
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ