MAY
3
一般に公開する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) && (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対策位しか思いつかなかったけど、大丈夫かな?
Related Entries
Trackbacks : 2
- Trackback URL for this entry
- http://blog.sharplab.net/star/83/trackback/
Listed below are links to weblogs that reference this entry
- ピンバック from SharpLab. - XPathGraphでiKnowの進捗状況を描く 08-05-17 00:53:00 JST
-
[...] は、Flashで作成されたブログパーツが使用しているXMLファイルから取得できることはiKnowLastAccessTimeCheckerを書いた時に確認済。これを使えばすぐ終わるかなと考えていたのだが…、XPathG [...]
- ピンバック from SharpLab. 08-08-30 21:13:30 JST
-
[...] は、Flashで作成されたブログパーツが使用しているXMLファイルから取得できることはiKnowLastAccessTimeCheckerを書いた時に確認済。これを使えばすぐ終わるかなと考えていたのだが…、XPathGraph [...]
デポ設置