kentさんの所の掲示板のsunbbsについてです。
自動で掲示板を1分おきとか2分おきに自動更新する方法を
探しています。
リフレッシュの文を入れればいいのかもしれませんが
どこにどのようにいれればいいのか分かりません。
よろしくお願いします。
下に関係のありそうなところをコピーいたします。
違うかもしれませんが。
#-------------------------------------------------
# HTML生成処理
#-------------------------------------------------
sub html_regist {
local($i,$next,$back,$data);
local($file,$page) = @_;
open(WR,">$file") || &error("Write Error: $file");
print WR &header('HTML');
# リンク部
print WR "<B><font color=\"$p_color\">$point2</font>";
print WR "<a href=\"$home\" target=\"_top\">Home</a>\n";
if (!$whatsnew) {
print WR "<font color=\"$p_color\">$point</font>";
print WR "<a href=\"$script?mode=form\">Post</a>\n";
}
print WR "<font color=\"$p_color\">$point</font>";
print WR "<a href=\"$script?mode=find\">Search</a>\n";
# 過去ログ
if ($pastkey) {
print WR "<font color=\"$p_color\">$point</font>";
print WR "<a href=\"$script?mode=past\">Log</a>\n";
}
print WR "<font color=\"$p_color\">$point</font>";
print WR "<a href=\"$script?mode=admin\">Admin</a></B>\n<div align=center>\n";
# タイトル部
if ($t_gif eq '') {
print WR "<font color=\"$t_color\" size=6><b style=\"font-size:$t_size\">$title</b></font>\n";
} else {
print WR "<img src=\"$t_gif\" width=$tg_w height=$tg_h alt=\"$title\">\n";
}
# ひとことメッセージを表示
$message =~ s/\r\n/<br>/g;
$message =~ s/\r/<br>/g;
$message =~ s/\n/<br>/g;
print WR "<P>$message</div><hr>\n";
# 記事を展開
if ($page == 2) {
$next = $pagelog+1;
$last = $max;
} else {
$next = 0;
$last = $pagelog;
}
$i=0;
open(IN,"$logfile") || &error("Open Error: $logfile");
while ($data = <IN>) {
$i++;
if ($i < $next) { next; }
if ($i > $last) { last; }
print WR &log_view($data, $page);
}
close(IN);
if (!$whatsnew) { print WR "<table align=left><tr>\n"; }
# 次/前ページのリンクを生成
if (@lines > $pagelog && $page == 1) {
print WR "<td><form action=\"$htm_url$nexthtm\">";
print WR "<input type=submit value=\"次ページ\"></td></form>\n";
} elsif (@lines > $pagelog && $page == 2) {
print WR "<td><form action=\"$htm_url$htmfile\">";
print WR "<input type=submit value=\"前ページ\"></Td></form>\n";
}
print WR "</table>\n";
# 削除フォーム
if (!$whatsnew) {
print WR "<table align=right><tr><td>\n";
print WR "<form action=\"$script\" method=\"POST\">\n";
print WR "記事No <input type=text name=no size=4>\n";
print WR "削除キー <input type=password name=pwd size=4>\n";
print WR "<input type=hidden name=mode value=userdel>\n";
print WR "<input type=submit value='記事削除'></td></form></table><br clear=all>\n";
}
# 著作権を表示(削除不可)
print WR "<div align=center style='font-size:10px;font-family:Verdana,Helvetica,Arial'><!-- $ver -->\n";
print WR "- <a href='http://www.kent-web.com/' target='_top'>SunBoard</a> -\n";
print WR "</div>\n</body>\n</html>\n";
close(WR);
}
No.3ベストアンサー
- 回答日時:
エスケープ記号が全角(\←このように)なってます。
多分投稿する際に自動的に直されたのでしょうね^^;;
エラーはそこにきてるはずです。
その文字を半角に修正してみてください!
この回答への補足
全角になっていましたね。
そんなことも気づかずにすみません。
で半角に直したんですが。
自動更新はなったのですが、書き込みを書くところだけ(管理人限定の書き込むところ)しか更新されませんでした。
記事一覧がでているメインページは更新されませんでした。
場所が違うのでしょうか?
またよろしくお願いいたします。<m(__)m>
追記です。
他のページも更新されていました。
書き込みの認証画面、ワード検索画面も自動更新できています。
肝心のメインページだけ更新されていない状態です。
No.2
- 回答日時:
もしHTMLの文法を間違えていたとしてもエラーは起きないものです。
そのエラーはおそらくPerlの文法が間違っていたのだと思いますよ。
Perlで、値を 「"」を区切りに表記する場合、
"<meta http-equiv="refresh" content="10">";
と入力した場合、「"<meta http-equiv="」までが値、残りの「refresh" content="10">";」が意味不明になりエラーになります。
sunbbsのコードを見習って
$_ .= "<meta http-equiv=\"refresh\" content=\"10\">\n";
("という文字の前に\を入れることで、ただの文字だということを伝える)
とするか、
$_ .= qq|<meta http-equiv="refresh" content="10">\n|;
("以外の区切り文字で表記する)
などとすれば正しく記述できます。
入れる場所は、
$_ .= "<META HTTP-EQUIV=\"Content-Style-Type\" content=\"text/css\">\n";
$_ .= "<meta http-equiv=\"refresh\" content=\"秒数\">\n|;
$_ .= "<STYLE type=\"text/css\"><!--\n";
このようにすれば良いでしょう。
書き忘れましたが、リロードするだけならURLはいりません。
発言一覧ページをかならず表示させるならそのページを指定してください。
あ、そういえばふとおもったんですが、もしかしたら書き込みするページでもリロードが発生する可能性もありますね。書き込み用ページを別HTMLで用意すれば問題はないですが。^^;;
この回答への補足
回答ありがとうございます。
ただ、コピーして入れたのですがエラーになります。
前回で説明不足かと思いますので記載します。
この掲示板は、管理人のみ書き込み可能です。
エラーになるのは、 書き込みに行く為の承認のページとか
ワード検索のページです。
エラーは HTTP500内部サーバーエラーで
ページを表示できません
になっています。
自動更新の文を入れる前は正常に動いていました。
http://www.kent-web.com/bbs/sunbbs.html
この掲示板の書込みの管理者限定モードです。
何度も回答頂いて申し訳ないのですが、よろしくお願いします。
書き込みのページでリロードになっても、かまいません。
秒数で調整します。
今はテストで10秒にしています。
こちらのアドレス書いた方がいいですか?
$_ .= "<html lang=\"ja\"><head>\n";
$_ .= "<META HTTP-EQUIV=\"Pragma\" CONTENT=\"no-cache\">\n" if ($nocashe);
$_ .= "<META HTTP-EQUIV=\"Content-type\" CONTENT=\"text/html; charset=Shift_JIS\">\n";
$_ .= "<META HTTP-EQUIV=\"Content-Style-Type\" content=\"text/css\">\n";
$_ .= "<meta http-equiv=\"refresh\" content=\"10\">\n";
$_ .= "<STYLE type=\"text/css\"><!--\n";
$_ .= "body,tr,td,th { font-size:$b_size; font-family:'MS UI Gothic'; }\n";
$_ .= "a:link { text-decoration:none; }\n";
$_ .= "a:visited { text-decoration:none; }\n";
$_ .= "a:active { text-decoration:none; }\n";
$_ .= "a:hover { text-decoration:underline; color:$al; }\n--></STYLE>\n";
$_ .= "<title>$title</title></head>\n";
この度は、回答頂きありがとうございました。
最終的には、SUNBBSでは、自動更新うまくいかなかったので
スキン式のBBSに変更して、お知らせいただいた文を入力しましたら、自動更新するようになりました。
何度も回答頂きありがとうございました。
本当に助かりました。感謝します。
No.1
- 回答日時:
掲示板を自動更新にするならチャットの方が良いと思いますが・・。
若しくはどこかに更新ボタンをつけておくとか。
えっと、文句はこの辺にして、w
metaタグで吹っ飛ばすには、HTMLのヘッダー内に記述する必要があります。すなはち、
print WR &header('HTML');
の部分で、ヘッダが既にプリントされるのでこの関数でなく、header関数の中、(か、また別の場所)にある
<head>~</head>
部分の~にmetaタグを入れます。
<meta HTTP-EQUIV="Refresh" CONTENT="秒数; URL=http://...">
早速の返信ありがとうございます。場所違ったんですね。
チャットでもよかったんですが、
管理のみの発言の形式を取りたい&閲覧者が何人いるかを見られたくなかったので、掲示板がいいのかなと思いまして。
で回答いただいたところはここでよかったでしょうか?
URLは、掲示板の発言の一覧のページを指定すればいいのでしょうか?
先ほど、入力したらエラーになってしまったので。
#-------------------------------------------------
# HTMLヘッダ
#-------------------------------------------------
sub header {
local($_);
return if ($headflag);
if ($_[0] ne 'HTML') {
$_ .= "Content-type: text/html\n\n";
$headflag=1;
}
$_ .= "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n";
$_ .= "<html lang=\"ja\"><head>\n";
$_ .= "<META HTTP-EQUIV=\"Pragma\" CONTENT=\"no-cache\">\n" if ($nocashe);
$_ .= "<META HTTP-EQUIV=\"Content-type\" CONTENT=\"text/html; charset=Shift_JIS\">\n";
$_ .= "<META HTTP-EQUIV=\"Content-Style-Type\" content=\"text/css\">\n";
$_ .= "<STYLE type=\"text/css\"><!--\n";
$_ .= "body,tr,td,th { font-size:$b_size; font-family:'MS UI Gothic'; }\n";
$_ .= "a:link { text-decoration:none; }\n";
$_ .= "a:visited { text-decoration:none; }\n";
$_ .= "a:active { text-decoration:none; }\n";
$_ .= "a:hover { text-decoration:underline; color:$al; }\n--></STYLE>\n";
$_ .= "<title>$title</title></head>\n";
if ($bg) {
$_ .= "<body background=\"$bg\" bgcolor=\"$bc\" text=\"$tx\" link=\"$lk\" vlink=\"$vl\" alink=\"$al\">\n";
} else {
$_ .= "<body bgcolor=\"$bc\" text=\"$tx\" link=\"$lk\" vlink=\"$vl\" alink=\"$al\">\n";
}
$_;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォントサイズを変えるには?
-
指定のフォルダに指定のファイ...
-
wordの数式について 定積分を書...
-
ラジオボタンが両方とも選択で...
-
WEBページを強制的に横画面で見...
-
ディレクトリのファイル数取得
-
チェックボックスの返す値
-
selectboxの画面遷移で、postデ...
-
ブックマークからのアクセスを...
-
select値をhiddenのvalueに渡し...
-
FC2 掲示版のカスタマイズの仕...
-
コンボ1の内容に応じてコンボ...
-
<select>タグの幅設定
-
INPUT TYPE
-
htmlファイルが表示できません
-
CGI(Perl)内での必須項目チェ...
-
プログラミングについての質問...
-
CGI実行できない。ソースが表示...
-
「value」に2つの値をセットす...
-
iPhoneでセレクトボックスが選...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlからパラメータで、cgiに渡...
-
metaタグについて
-
CGI経由でのPDFファイルをダウ...
-
sendmail 送信先を複数設定す...
-
perl/cgi リダイレクトができない
-
iis+cgiでmultipart/form-data...
-
フォントサイズを変えるには?
-
テキストエリアのインプットをP...
-
ホームページビルダーで作ったh...
-
cgi(perl) sendmailの使い方
-
CSVを読み込んでメニューを作成...
-
フォームメール(iモード用)で...
-
POST送信
-
CGIで~秒後にジャンプします。...
-
cgiについて教えて下さい。
-
CGI内でけいたいスマホの振り分け
-
CGIから表生成(1行に数件のデ...
-
ログファイルの編集についてお...
-
CGI
-
Yomi-Search追加機能で・・・
おすすめ情報