No.2ベストアンサー
- 回答日時:
こんにちは。
よく見かけるCGIでも、いざ自分で作るとなると「あれ?どうなってんだ?」というものが結構ありますよね。
早速本題へ。
ログのn番目から指定件数(50件)だけ抜き出して表示する基本機能を作ります。
ログが指定件数以上ある場合は「次ページへ」ボタンが現われるように条件分岐しておき、このボタンで「次はn番目から表示してくださーい」という「n番目」を渡してやります。
<1ページ目>
・n=0で、ログの先頭から50件(0~49)表示。
・「次のページへ」ボタンで次のページの先頭nである「50」を渡してやる。
<2ページ目>
・前ページから2ページ目の先頭n=50が送られてきた。
・n=50で、ログの51番目から50件(50~99)表示。
以降、同じ。
「前ページへ」ボタンも同じ原理です。
ん~、我ながら教え下手だ(笑)。
この回答への補足
page_search.cgiを作成し、
以下のようにしてみましたがダメでした。
※@FILESはログファイルを開いたもの。
($NOkey,$NO) = split(/=/,$buffer);
for ($i=5;$i<5*$NO;$i++){
@log = split(/&/,$FILES[$i]);
foreach(@log){
($key,$value)=split(/&/,$_);
$FORM{$key} = $value;
}
print "$FORM{'TITLE'}<BR>\n";
}
回答ありがとうございます。
>よく見かけるCGIでも、いざ自分で作るとなると「あれ?どうなってんだ?」というものが結構ありますよね。
そうです、そうなんですよ!
早速適当なログファイルを作成し、そこから5件ずつ取り出すようにかいてみました。
#----------
open (FILE,"page.log");
flock(FILE,2);
@pages = <FILE>;
flock(FILE,8);
close FILE;
$gyou1 = @pages;
if($gyou1 > 5){
$gyou2 = int($gyou1/5)+1;
} else {
$gyou2 = 1;
}
for ($i=0;$i<5;$i++){
@log = split(/&/,$pages[$i]);
foreach(@log){
($key,$value) = split(/=/,$_);
$FORM{$key} = $value;
}
print "$FORM{'TITLE'}<BR>\n";
}#forの終了
print "<BR><BR><BR>\n";
if ($gyou2 <=> 1){
for($r=2;$r<$gyou2+1;$r++){
print "[$r]\n";
}#for
}#if
#----------
表示はうまくいきました。
ですが、[2][3]と出てきたところに貼るリンクの方法がわかりません。
どのようにしたらうまくいくでしょうか?
No.1
- 回答日時:
ログファイルから特定の件数のみ取得・表示し、次のページへのリンクで次は何件目から取得するかの情報を送り、そのページでは受け渡された件数からデータを取得し表示しています。
ログファイルから取得する位置を変えて決められた件数を取得しているのです。
位置に特定については指定件数までスキップするか、ファイル位置をそのものを指定します。
具体的にはそのような掲示板がフリーCGIでありますからそちらを参考にしてください。
http://www.kent-web.com/bbs/petit.html?
参考URL:http://www.kent-web.com/bbs/petit.html?
回答ありがとうございます。
やはりそういうやり方でいいんですよね。
ではこれでちょっと試しに作成してみます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI (フリーの)ツリー掲示版CGI、昔は多用させてもらいましたが・・今セキュリティ上どうでしょう? 2 2023/06/25 07:18
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- CGI 古ーくからフリーのtree.cgi掲示板を利用させてもらって来ましたが、最新でなにか復活できないか? 2 2023/04/07 10:43
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- CGI 一番簡単なCGI,掲示板の設置教えてください 4 2023/08/22 10:47
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- Mac OS Macで今あるファイルの連番(ページ番号)に足し算をしてリネームしたい 1 2022/10/12 17:22
- PHP 「基礎からのMySQL 第3版 Kindle版」を数年前購入して全部やりました。 1 2022/09/15 05:32
- MySQL 「掲示板のログイン画面」はPHP~MySQLに「データベース認証のシステム」方式です。 1 2022/09/27 05:00
- PHP php my adminより取り出したデータ表示 2 2022/06/15 11:56
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DBを10件毎に表示ページング...
-
よくある 『 第○(1・2・3・4・...
-
月の第一週とは
-
VBAでExcelのヘッダーに文字列+...
-
燃えるゴミの日は何曜日ですか?
-
エクセルで毎月第2週日の水曜日...
-
毎○曜日って、使いますか?
-
土曜日の26時って何曜日の何時...
-
クライアントのIPとマシン名を...
-
apacheでPerl CGIが作動せず、5...
-
エクセルで相対パスの書き方を...
-
平日朝の国道246線混雑状況につ...
-
VBA。複数のChangeイベントをま...
-
「曜日」の名前、変えるとしたら?
-
c言語の質問です。 ある月のカ...
-
cgiで拡張子.cgiと拡張子.pl...
-
バイナリファイルのアップロー...
-
指定曜日にMsgBox表示は可能で...
-
[C#]ListView一覧表示時の幅設...
-
Excel関数で当月の第一日曜日の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DBを10件毎に表示ページング...
-
ホームページにブログ記事をサ...
-
HTMLでASPを動かしたい
-
c# webBrowser 内のpdfファイル...
-
WEBページに日付を付ける
-
RSSファイルを取得して、現在の...
-
サイトに表示しているテキスト...
-
よくある 『 第○(1・2・3・4・...
-
月の第一週とは
-
エクセルで毎月第2週日の水曜日...
-
週2回のペースって だいたい何...
-
apacheでPerl CGIが作動せず、5...
-
毎○曜日って、使いますか?
-
[Excel] ある日の曜日が当月の"...
-
エクセルで相対パスの書き方を...
-
アンケートなどの1日1回の投...
-
VBAでExcelのヘッダーに文字列+...
-
クライアントのIPとマシン名を...
-
週休3日制で土日の他にもう一日...
-
VBA。複数のChangeイベントをま...
おすすめ情報