アクセスを自動に行うタスクを実行してくれるWebCron

ついにやってしまった・・・。自分の作ったMyMiniCity用ツールのサイトだが、使っているレンタルサーバのland.toでは自動的にタスクを実行するcronというサービスが使えないため、メンテナンスのスクリプトを毎日手動でアクセスしていたのだ。しかし、ついに昨日は本業に疲れ切っていてすっかり忘れてしまった。PCを使う仕事が本業ならいざ知らず、いずれは無理が来るだろうと思っていたけど、それなりにがっくり。
そこで自動的にページにアクセスする方法を調べてみた。一番簡単なのはCronを使えればいいのだけれど、まず有料サイトでないと使えないので、パス。次に自分の責任でできるといえば、Windowsのタスクスケジューラを用いる方法だろう。これは自分のPCさえ起動しておければ、安全な方法と思う。タスク・スケジューラとWSHで定例処理を実現するを参照すれば、何とかなりそうだ。
 だが、せっかくならWebのみで完結させたいのでさらに調べれば、WebCronという定期的に特定のページにアクセスするサービスが存在することがわかった。基本はフランス語だけれど、下の方にあるイギリスの国旗をクリックすれば英語にはなるので、よくWebサービスを使っている人であれば使い方がわかるのではないか。もしくはInternet ExplorerとFirefoxに対応したJapanizeというツールで翻訳してもらってもいい。解説は「cron タスクの設定」が詳しいので参照してほしい。無料サービスなので、過剰に負荷をかけないように使っていくことにします。

| | コメント (0) | トラックバック (0)

ログインを制御しなくてはいけない

最近、疲労困憊。Webで一つ二つ作ってみたいアイデアがあるのだけれど、ログイン制御が必要で、いままで作ったことがないため、二の足を踏んでいる。所詮、サンデープログラマーなので、そんなに時間もかけれない。仕事、日常、の次という優先順位だからなあ。そして、なぜか疲れがたまってきており、どうも手が動かないのだった。そういっているだけでは進まないので、ちょっと資料を集めてみる。
dev.ishinao.net より認証処理の基本をよんでみたら、なるほどこうするのか!と思いました。

login.html

<form method="POST" action="login.php">
ID: <input type="text" name="userid" size="15"><br>
パスワード: <input type="password" name="pwd" size="12"><br>
<input type="submit" value="ログイン">
</form>

login.php

 <?php
$userid
= isset($_POST['userid']) ? $_POST['userid'] : '';
$pwd = isset($_POST['pwd']) ? $_POST['pwd'] : '';

if (
check_login($userid, $pwd)) {
  echo
'認証OK!';
} else {
  echo
'認証できませんでした';
}

function
check_login($userid, $pwd)
{
 
$accounts = array(
   
'test' => '$1$vb2.Mc0.$ULZpR42LRQlquCawYCV7A/',
   
'test2' => '$1$3x5.OO4.$VCbPWeaHToMbg6TUwk0sM1',
  );
  if (!isset(
$accounts[$userid])) {return FALSE;} //そのIDは登録されていません
 
if (crypt($pwd, $accounts[$userid]) != $accounts[$userid]) {return FALSE;} //パスワードが間違っています
 
return TRUE;
}

?>

解説は参照元を見て欲しい。そして、認証データを保存するにはセッション管理が必要なのだけれど、これも「認証状態を保存する方法」に詳しく書いてあったので、今後これを参考にする予定。

 

| | コメント (0) | トラックバック (0)

Google Chart APIとPHPで円グラフを書いてみる

Google Chart APIという無料でグラフが書けるGoogleのサービスがある。実際に町作りゲームのMyMiniCityを支援するツールの付加機能として、参加している国を分類して図示するのにGoogle Chart APIを使ってみた。ドキュメントは英語なのですが、一度使ってみれば敷居は高くありません。

今回のコードでは英語しか扱わないので問題ないですが、UTF-8であれば日本語(ひらがなのみ?)も通るようです。

むしろ値を普通の十進で渡しにくい(URLが長くなりすぎる)ので、Simple encodingという方法を使うわけですが、これさえクリアすれば、円グラフは書けます。具体的には、円グラフの中で最大値になるものにできるだけ大きな値(今回は51であるz)をわりあてて、より小さな値を比例配分した文字に割り当ててやればスムースに行きます。

今回は関数のPHPのコードも公開。配列$nameに名前、配列$numに実際にデーターを入れて呼び出します。実際は連想配列を使ってもいいかもしれませんね。関数内の$thresholdに1をいれて、1%以下になる項目は表示しないようにしています。細かくなりすぎるとよくわからなくなることの予防です。 画像のサイズは、この関数では500×200ピクセルに固定です。ドキュメントによると、縦に対して平面円グラフは横が2倍、3D円グラフは横が2.5倍程度ないと正常に表示できないそうです。

続きを読む "Google Chart APIとPHPで円グラフを書いてみる"

| | コメント (0) | トラックバック (0)

MyMiniCityの国別分類表を作ってみた

町作りゲームのMyMiniCity用のデーターベースを利用して、国別の分類表を作ってみた。

MyMiniCityの所属国分析

制作時間は、20分足らず・・。ミソはSQL文を書けさえすれば、あとはおまけだった。


$sql = 'SELECT nation , count( * ) as nationnum FROM `テーブル名` group by nation ORDER BY `nationnum` DESC';

これを見ると、本日の時点では登録全体が200ぐらいのうち、94がJapanでした。やはり母国に足をおく方が多数派ですね。

| | コメント (0) | トラックバック (0)

自作サイトの新着を表示するページをPHPで作った

町作りゲームのMyMiniCityを補助するサイトをしこしこと作ってきているわけだけれど、やっぱりなかなか新しい人は訪れてくれないわけですよね。でも、自己満足でもいいからバージョンアップをしてしまいます。

逆に新着MyMiniCityがわかるページをさくっと作ってみました。内部でそういうデーターをたまたま持っていたので、デバッグも入れて約40分で仕上げてしまいました。だんだんPHPプログラミングにも慣れてきました。しかし、当然のことながら商用サイトには及びませんな(^^;

| | コメント (0) | トラックバック (0)

SQLで期間内のデーターを抽出してみる

仕事がピークを越えましたが、来週はプレゼンがあるのでちょっと気疲れしそうな今日この頃です。

さて日付データを含むデーターベースで、1週間以内のデータをとりだすSQL文を考えてみました。

期間内のデータのみ抽出する為のSQL関数」を見ていたのですが、どうもこちらはデーターベースに登録された期間内(start_dateとend_date)に今日が入っているかを見ているものですね。

$sql = 'SELECT id FROM table_name WHERE CURRENT_DATE() >= start_date AND CURRENT_DATE() <= end_date;';

登録日がdateに入っているデーターベースで一週間以内のデータを取り出す事が目的のものを考えました。

$sql = 'SELECT id from table_name where date>=ADDDATE(CURDATE(),Interval -7 DAY)'

Mysql 4.0.27 でテストして動いてくれているので、よしですかね。

| | コメント (0) | トラックバック (0)

MyMiniCityタグクラウドが登録不能だった

サンデープログラマーが手を出すと、しょうもないミスが長期間放置されてしまいます。

町作りゲームの「MyMiniCity」をサポートする自作ツール、[MyMinicity タグクラウド]だが、エントリーというか登録できなかったことが判明。付加機能をつけようとおおもとのPHPスクリプトをいじって試運転しているときに気がついた・・。

すいません、使ってくれていた人・・・。

付加機能については今回は内部的な変更のみで、そのうちリリースする予定です。

| | コメント (0) | トラックバック (0)

MyMiniCity版タグクラウド風味?作成

なんか図に乗ってタグクラウド風MyMiniCity支援ツールを作ってしまいました。約1時間ちょっとで完成。これを目標にMyMiniCity支援ツールを作っていたので、そんなに大変ではなかったのですけどね。

SQLははじめてだったのですが、結構つぼを押さえるといろんな情報が簡単に引き出せますね。
これで本当に小休止。本業および自分の私事にしばらく集中しなくてはいけません。

>>タグクラウド風MyMiniCity支援ツール
>>MyMiniCity支援ツール

| | コメント (0) | トラックバック (0)

ひさびさにプログラム作ったわ-MyMiniCity支援ツール-

寝不足になるほどまで力入れることでないだろう・・ということですが、町作りゲームMyMiniCityの支援ツールをだれでも使えるようにしました。以下に設置しています。MyMiniCityについては、昨日とか過去に取り上げているので改めては取り上げません。

>>PHP習熟室

使い方としては、参加のIDをPHP習熟室のページから入力するか、http://mini.es.land.to/mmc.php?name=(あなたのID)のリンクをブログとかホームページにおいてもらう。

でございます。今後に展開できるような仕組みを先に組み込んだので時間が掛かってしまいました。さて、しばらくは休んで、伏線を生かせるように環境を整えます。

| | コメント (0) | トラックバック (0)

町作りゲームのリンクが

昨年12月に「町作りゲーム?」というエントリを書いたのですが、今年に入ってからなんかそこを経由するアクセスが多いようです。なぜかなと思って、Googleで「町作りゲーム」で引いてみると一ページ目に表示されるからのようです。といっても、一日に10-20アクセスしかないブログですから大したことはないのですけどね。

しかしPHPでMyMiniCity関連のツールを作っているからではないことがわかり少し残念な気もしますね。
町のパラメータをみて適当と思われるリンクをつなぐソフトです。試してみたい方はクリック

でも、こういったバランスを取って町を成長させるツールは複数の人が作っているのでもっと別のアイデアをつぎ込みたいですね。(2/27に、一般公開しました。

追記:2/26 12:00現在 MyMiniCityはサービスダウンしているのでしょうかね・・。なんとなくアクセスが大分遅くなっていたのは気になっていたのですが・・。

| | コメント (0) | トラックバック (0)

より以前の記事一覧