2008年2月アーカイブ

PEAR::Authの使い方 - その2

2008年2月29日 02:36
PEAR::Authでのログアウト認証期限切れアイドル時間超過のところでいままでになくつまづく。

1週間以上悩んでようやく解決。
長かった、、ホント

問題となったのはブラウザのリロード戻る進む
ログアウトだけならはそれほど問題なく出来たけど、認証期限切れ、アイドル時間超過でいったんログアウトしてその後、「リロード」やら「戻る」をやると認証されてしまう!

↓こちらの記事を参考に、トークンを発行してリロードを検地する、というやり方に挑戦してみた。

すごいリロード対策

あと、どうせなら認証切れになっても、認証切れでログアウトした同じページからまたログイン出来るような仕組みにもしてみた。

↓図解

auth.gif

↓まず、認証の機能を盛り込んだmyAuth.php
↓そしてログインフォーム部分のloginForm.php
ここでトークンの初期化と発行を行う。 あとは↓こんな感じで各ページの最初でmyAuth.phpを呼び出してあげれば、どのページで認証期限切れとかになっても、そのページからログインが出来るようになる。


ようやく先に進めるわ、、

そろそろMySQLとの連携を考えはじめ、phpMyAdminに入ろうとしたらはじかれた。
検索したら結構色んな人がここでつかえているみたい。

調べまくって、設定ファイルをいじったり、PC再起動したりしたけどうまくいかない状況が続き、結局再インストール。

でもだめだった。

しかし↓こちらの記事を見て解決!
XAMPP 1.6.5のphpMyAdminでログインできなくなった時の話

簡単に説明すると、
PHPのバージョンが4だとログインできない。
バージョンを5に切り替えるとログインできて、MySQLの登録ユーザー全員のパスワード設定をPHP4互換に変更。
PHPを4に切り替え。
無事ログイン。


そんなことかよ、、
なんていじわるなんだ、XAMPP。

PEAR::Authの使い方 - その1

2008年2月19日 00:23
PEAR::Authで、DBからID / PWを参照して認証するやり方は探せばたくさんあるんだけど、ファイルを参照するやり方で参考になるものがあまりないのでメモ。(あまりないのはたぶんセキュリティーの面だったりするんだろうな)

ファイルは、myAutu.php / .htaccess / user.txtの3つ。

↓図解

auth.gif

↓まずuser.txt(ID / PWのファイル)の設定 パスワードはそのまま書かずにMD5ハッシュで。

次にuser.txtが入ってるsecretフォルダのアクセス制限をかける.htaccessファイルの設定。 同じURL内からのリンクしか受け付けないようにする。
↓最後に本体のmyAuth.php

ここまではそんな問題ない。
次はログアウトとかその辺を書いてみよう。

記事にソースコードを載せるときに今まではhtmlで一つ一つにカラー指定してたけど、すげーめんどい!
と思って調べたら、自動でハイライトしてくれるJSがあった!素晴らしい!

Syntaxhighlighter

でもデフォルトでASが入ってない、、

と思ったら拡張してる人が居た!

MXMLコード用 SyntaxHighlighter を作ってみた
AS3 Syntax Highlighting (with SyntaxHighlighter)

とりあえず過去の記事を片っ端から直してみた。
ハイライトされないワードもあるけど、見やすくはなったかな。


仕事でClassに関してかなりはまったのでメモ。

状況としては外部SWFにリンケージされているクラスを、親swfで生成(new)するという感じ。

↓図解

getdefinitionbyname.gif
こんなことは出来ないと、端から決めてかかってたんだけどできた。
(こういう状況ってそんなにあるのかな?)

まずsub.swfには、ライブラリにMCが入っていてclasses.MyClassというリンケージIDが着いている。

ここですごい疑問が。

ライブラリに入ってるだけの状態で外部as(classes/MyClass.as)がコンパイルされんのか?ということ。
sub.swfSub.as)の冒頭でまずインポート。
そしてコンストラクタで って書いておけばコンパイルされるらしい。(実際される)

あと、こういうケースではgetDefinitionByName()というものを使ってクラスを読み込む。使い方は↓こんな感じ。 文字列からClassを参照できるというもの。

これで出来るんじゃねーかと思ったら、ここですげー罠にはまって数時間格闘、、俺の時間を返せ!


これで読み込もうとしたら「MyClassは定義されていない」って怒られた。
もっと「こうしたら良いんじゃねー」的なアドバイスが欲しい。


で実際どうするかというと、main.swfMain)の、sub.swfSub)を読み込むLoaderLoaderContextというのを設定する。

LoaderContextの設定をする
Loaderの第二引数にLoaderContextを設定する
この辺まだあんまり理解できてない、、
とりあえず読み込んだswfのClassを使えるようになる。

ソース

 1  |  2  |  3  next