FlexでPHPセッションを使ったログイン方法
http://moeten.info/flex/20080620_sessionTest/bin-release/main.html
PHPのセッションの継続はどうするんだろう?って思っててとりあえずやってみたところ、それっぽくできました。
左上にあるhts.sendのボタンを押すたびに返り値のcntの値がひとつ増えます。
右のフォームにあるログインボタンでPHPでログイン管理を行います。返り値のloginが1になると認証成功です。
コツはPHPで管理されるセッションのIDをブラウザのクッキーで保存します。
ini_set('session.use_cookies' , 1); ini_set('session.use_only_cookies', 1);
PHPのソースはこちら
<?php ini_set('session.use_cookies' , 1); ini_set('session.use_only_cookies', 1); session_start(); $_SESSION['cnt'] ++; if( $_POST['name'] == "haruhi" && $_POST['passwd'] == "moe" ){ $_SESSION['login'] = 1; }else{ $_SESSION['login'] = null; unset( $_SESSION['login'] ); } var_dump( $_POST); var_dump( $_GET); var_dump( $_COOKIE ); var_dump( $_SESSION ); ?>
Flexのソースはこちら(ただ単にPHPにクエリを送って返り値を取得しているだけ)
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()" viewSourceURL="srcview/index.html"> <mx:Script> <![CDATA[ private function init():void{ } private function submitLogin():void{ hts.method = "POST"; hts.send({ "name":nameTxt.text, "passwd":passwdTxt.text }); } ]]> </mx:Script> <mx:HTTPService id="hts" url="http://moeten.info/flex/20080620_sessionTest/sessionTest.php" resultFormat="object"/> <mx:TextArea x="10" y="39" width="310" height="365" text="{hts.lastResult}"/> <mx:Button x="245" y="9" label="hts.send" click="{hts.send();}"/> <mx:Panel x="342" y="20" width="336" height="238" layout="absolute" title="ログインフォーム"> <mx:Form x="30" y="30"> <mx:FormItem label="アカウント" required="true"> <mx:TextInput id="nameTxt" text="haruhi"/> </mx:FormItem> <mx:FormItem label="パスワード" required="true"> <mx:TextInput displayAsPassword="true" id="passwdTxt" text="moe"/> </mx:FormItem> </mx:Form> <mx:Button label="ログイン" click="submitLogin()" x="212" y="120"/> </mx:Panel> </mx:Application>
結構前にFlexとPHPのセッション関連を調べてもまったく情報がなかったんだけど、これで大丈夫なんだろうか(ーー゛)
何かいいアイディアがありましたら教えてほしいです。