無料ブログ「rentafree.net」の管理人ブログ

ミニ掲示板のスクリプトを若干修正しました

使ってる人いなそうですが、
ミニ掲示板のロードスクリプトを、

今まではデータファイルについては常にブラウザにキャッシュを使わせないようにしていましたが、
掲示板の名前クッキーの有無で判別して、
投稿したことのある人は今までどおりブラウザにキャッシュを使わせず、
投稿したことのない人にはブラウザに判断させるようにしました。

クッキーの名前は、
名前未記入の投稿でも記録されます。

初期パスワードの生成処理とアカウント作成完了ページを変更しました。

既存ユーザーさんには関係ありませんが、
初期パスワードの生成処理とアカウント作成完了ページを変更しました。

今までの初期パスワード生成処理は、一応ランダムで見た目的には62進30桁弱くらいで、
パスワード変更フォームのランダム生成は62進16桁ですが、
初期パスワードは62進30桁弱の全パターンからランダムに生成されるわけではなく、
パスワード変更フォームの62進16桁の方がパターンが多くシンプルな仕様でした。
というわけで、初期パスワードの方も似たような処理に変更しました。
旧仕様のパターン数は、たぶん10進14桁程度の強度だと思います。
新仕様は62進16桁全パターン。

アカウント作成完了ページの方は、
自動ログインリンクを表示していましたが、
フォーム入力をしないとブラウザのパスワードマネージャが出ないので、
自動ログインリンクは無くして、
ログインフォームのあるトップページとSSLログインページへのリンクを表示。
あと、ランダム生成されたパスワードをすすめる感じの文章を追加した感じ。

メール投稿の仕様を再変更しました

ブログのメール投稿がうまく行かない場合がある問題で、
朝メール投稿の仕様を変更しましたが、
更に調査したのですが、
65536byteで切れちゃうようだったのでバッファ関係ぽかったんですが、
全部読み込んでから一気にFIFOすれば切れないようなんで、
そんな感じに再度仕様変更しました。

もっとスマートな方法ありそうなもんだが・・・


ログ確認できないんで問題ないと思いますが、
今日は朝から何度かメールサーバー再起動してるんで、
タイミングが悪かった場合メール系の処理が失敗しているかもしれません。

メール投稿を仕様変更しました

ブログのメール投稿ですが、
今までは名前付きパイプで受信していましたが、
どうも、メールの途中でEOFしちゃうことがあるようで、
EOFするサイズも不定なようで、
解決できそうになかったんで、受信毎に起動する感じにしました。

先日、ユーザーさんで1件メール投稿に失敗した方がいると思います。

こっちからの連絡機能ができました

運営機能なんでユーザーさんにはあまり関係無いですが、
返信以外でこっちからユーザーさんに連絡する機能ができました。
実装は以前から考えてましたが、
今まで必要になったこともないのでなかなかヤル気が・・・


あと、
こちらの権限でブログの特定記事を一時削除(復元できる感じで)する機能をつくろうかと思ってます。
法的トラブル時等、こっちの権限で迅速に削除できたほうがいいと思うが、
確認なしでの削除は、復元できる形にしたい。
これも今のところ必要が生じてないからヤル気が出ない・・・



公開部分の修正は今のところ予定なし。

iframeとかで使えるように生HTMLを配信できるような機能つけようか考えたりもしたが、
制限が難しいから、多用されても困るんで、とりあえずヤメた。

あやぽんRSSとかlivedoorブログロール的なのも考えてたりするんだが、
そっちも負荷が厳しい気がする・・・

今朝の修正ですが・・・

今朝の修正ですが、
やっぱ間違えてたので再修正しました。
修正前の仕様が正しかったです。

サイトの更新時刻とキャッシュのタイムスタンプが同時だった場合、
キャッシュは無効になるようになっていたので、
修正前の仕様なら古いキャッシュが残ってしまう可能性は考えにくかったです。

ただ、
サイトの更新時刻もキャッシュも、
保存直前に時刻の取得をしていたので、
時刻取得から保存前の処理で秒がずれた場合に古いキャッシュが有効なものとして残ってしまう可能性があるので、
キャッシュの方は保存直前ではなく、全処理開始前の時刻を設定するようにしました。

キャッシュのタイムスタンプ関連を変更しました

先日キャッシュ周りの仕様を変更しましたが、
「キャッシュのタイムスタンプ=キャッシュ生成時刻」で、
サイトの更新時刻とキャッシュのタイムスタンプを比較するようにしていたので、
サイトの更新とキャッシュの生成が同時(1秒未満)に行われた場合、
確実に古いキャッシュが残ってしまったと思われます。
問題が生じる可能性が高いことに気づいたので修正しました。

今回の修正は、
「キャッシュのタイムスタンプ=サイトの更新時刻」としたので、
1秒未満に2回サイトの更新が行われ、
1回目の更新と2回目の更新の間にキャッシュが生成された場合にのみ古いキャッシュが残ります。
可能性はゼロではありませんが、
手動更新で1秒未満に2回サイトの更新を行うという事は不可能だと思いますので、
機械編集しない限りはありえないと思います。

ちなみに、前回の修正前の元々の仕様では、
更新フラグを建ててキャッシュ生成時にキャッシュ自体を削除していましたが、
元の仕様でも古いキャッシュが残ってしまう可能性はゼロではなかったと思います。

問い合わせ機能のメール返信を実装しました

問い合わせ機能を利用した場合に、
こちらからの返答メールに対してメール返信をすることで問い合わせを継続できるようになりました。

こちらからの返答メールに返信に関する説明をつけるようにしましたが、
ゲスト問い合わせ(非ログイン状態での問い合わせ)の場合は問い合わせに利用したアドレス。
ユーザー問い合わせ(ログイン状態での問い合わせ)の場合はアカウントのメールアドレス。
からのテキスト形式のメールのみ受理します。
HTMLメールの場合はエラーとなります。(同時にtext/plainが付いている場合は受理されます。)
また、件名や添付ファイルなどは無視されます。

ユーザーの場合は、
公式サイトの問い合わせ履歴から継続問い合わせができるので、
メールでの連絡だと障害による不通等も考えられますので、
メール返信機能を使わずに、
公式サイトの問い合わせフォームからの送信をおすすめします。

問い合わせ機能のメール返信

以前実装しようとしたけどちょっと難しい感じでしたが、
何とかなりそうなんで、近いうちに実装しようかと思います。

こっちからユーザーに連絡する機能もまだ作ってない。
そこらもやりたいが、必要がなければ使わない機能だから、やる気が出ない・・・

ページ番号リンクが自動改行されない問題がありました

ブログの記事一覧ページ(管理側)に記事数が50件を超える場合は下にページ番号のリンクがでますが、
このリンクがウインドウの横幅をオーバーする際にリンク間で自動改行できずに横スクロールバーが出てしまう問題がありました。
自動改行できるように修正しました。

また、Wikiのページ一覧についても同じようなコードだったため、
そちらの方も修正しました。

もしかしたら同じ問題が発生する箇所があるかもしれません。
一般的なPCディスプレイサイズで横スクロールバーが出てしまう箇所がありましたら、多分修正すべき箇所です。