加入しているプロバイダがNTサーバで、ロックファイルを使用している掲示板が保存できません。
NTでは、すでに存在するファイル名に他のファイルをリネームすることができません。 多少ロック機能は低下しますがリネームしない関数をご使用ください。sub data_save { $datafile =~ /(.+)\..+$/; local($filename) = $1; if ($filename !~ /.+/) { &error(bad_filename); } local($tmpfile) = "$filename.tmp"; local($tmpflag) = 0; foreach (1 .. 10) { unless (-f $tmpfile) { if (open(TMP,">$tmpfile")) { close(TMP); if (open(DAT,">$datafile")) { print DAT @DATA; close(DAT); $tmpflag = 1; } unlink $tmpfile; if ($tmpflag) { last; } } } sleep(1); } $tmpflag;}
掲示板の記事の最後に沢山の改行を入力すると空白ばかりが表示され、他の記事がずいぶん後ろになってしまいます。 記事の最後にある改行を強制的に削除することはできませんか?
if ($QUERY{'comment'} =~ /\r$/) { $QUERY{'comment'} =~ s/\r$//g; }このコードは、受信したコメントから最後の改行コード(\r)を削除しています。 これだけなら最後の1つしか削除できないのでループにします。while (1) { if ($QUERY{'comment'} =~ /\r$/) { $QUERY{'comment'} =~ s/\r$//g; } else { last; }}このコードをフォームからデータ受信してデコード直後に挿入します。
リムネットを利用しているのですが、こちらで紹介されているdomain_name関数ではドメイン名を取得することができません。 何か方法があるのでしょうか?
リムネットの場合は環境変数$ENV{'HTTP_FORWARDED'}にドメイン名が格納されています。sub domain_name { local($_) = $ENV{'HTTP_FORWARDED'}; local($host) = ''; if (/(\d+)\.(\d+)\.(\d+)\.(\d+)/) { local($ip) = "$1.$2.$3.$4"; $host = gethostbyaddr(pack('C4',split(/\./,$ip)),2); if ($host eq '') { $host = $ip; } } $host;}
私のページは、トップページを、フレームで分割しています。 トップは「home.htm」、フレーム左が「contents.htm」、フレーム右が「index.htm」で、「index.htm」に、アクセス統計を呼び出すJavaスクリプトを貼り付けました。 これで、「home.htm」にアクセスがあっても、正常にカウントされるんでしょうか?
アクセスは記録されますが、Javaスクリプトが正確なリンク先を返さなくなり、リンク統計が正確に収集できません。
返信ボード3の上にドロップメニュー(HPのリンク)があります。 これの順番をそろえたいのですがどうすればできるのでしょうか? dropmenu.txtの中の順番を変えても駄目でした。何かこの順番に法則等はあるのでしょうか? できれば自分で変更できるのが好ましいのですが・・・
このスクリプトでは連想配列を使用しているのでランダムに作成されます。 50音順で良ければforeach (keys %DROPMENU) {をforeach (sort keys %DROPMENU) {に変更することで並べ返ることができます。