MAY
3

iKnowLastAccessTimeChecker

Published:2008-05-03 11:03:12 UTC

一般に公開するphpスクリプトとしてはWordPressのテンプレートを除き、記念すべき第一弾かな?

iKnowのBlogパーツの通信を覗いてみた」というエントリで書いたように、iKnowではBlogパーツのために、ユーザーの学習中アイテム数などをxmlファイル形式で外部に公開している。今回は、その中の最終学習日時を表示するphpスクリプトを書いてみた。

<?php
function getLastAccesseTime($id){

    $req = 'http://www.iknow.co.jp/assets/user/' . $id . '/iknow_badge.xml';

    $iknow = @simplexml_load_file($req);
    if($iknow===false){
        echo('パースエラー');
        exit();
    }

    $date = strtotime($iknow->history->fragment['date']);
    
    return $date;
}

?>

<?php
    $id = htmlspecialchars($_GET['id']);
?>

<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
    'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='ja' lang='ja'>
    <head>
        <meta http-equiv='Content-Type' content='text/html; charset=utf-8'> 
        <title>iKnowLastAccessTimeChecker - 
            <?php
                echo($id);
            ?>
        </title>
    </head>
    <body>
        <p>

<?php
    if(!empty($id) &amp;&amp; (strpos($id,'/')===false)){
        $accessedTime = getLastAccesseTime($id);
        echo(date('Y年m月d日 H:i:s',$accessedTime));
    }
?>

        </p>
    </body>
</html>

こんな感じ。get変数idを与えると、そのidを持つユーザーの最終アクセス日時を表示する。で、このスクリプトを早速デポにUPしてみたので、その検索窓を設置してみる。

自分のIDで試してみた例:

http://depot.sharplab.net/php/iknow/LastAccessTimeChecker.php?id=shiroica

脆弱性対策はDirectory Traversal対策位しか思いつかなかったけど、大丈夫かな?

Trackbacks : 2

Trackback URL for this entry
http://blog.sharplab.net/blog/2008/05/03/83/trackback/

Listed below are links to weblogs that reference this entry

ピンバック from SharpLab. - XPathGraphでiKnowの進捗状況を描く 08-05-17 00:53:00 UTC

[…] は、Flashで作成されたブログパーツが使用しているXMLファイルから取得できることはiKnowLastAccessTimeCheckerを書いた時に確認済。これを使えばすぐ終わるかなと考えていたのだが…、XPathG […]

ピンバック from SharpLab. 08-08-30 21:13:30 UTC

[…] は、Flashで作成されたブログパーツが使用しているXMLファイルから取得できることはiKnowLastAccessTimeCheckerを書いた時に確認済。これを使えばすぐ終わるかなと考えていたのだが…、XPathGraph […]