質問者 DEKKUN
投稿日 7/3(水) 22:19:09
なにぶん知識不足なので教えてもらえませんか。
WEBページの更新作業でパターンが一定なので、CGIプログラムでデータを抽出して
1ページ10ブロックを数ページに分けて表示し、最終的には複数のHTMLファイルにしたいと
思っています。このごろ少し意味が分かるようになってきてプログラムに挑戦しているん
ですが。実践パールプログラミングで解説されていたページ処理のセグメントを参考に
しているんですが、という言うよりほとんどそのまま使っているんですが、最初のページ
は表示されるのですが、次のページが出てこないのです。なにか、勘違いしているみたい
なのですが、だれか教えてもらえないでしょうか。
データは、txtのEUCファイルでカンマで区切らています。
これらの作業はローカル環境(WIN_NT4.0_Server)、アクティブパールで行いたいのです。
プログラムは下記のとおりです。
#!C:/Perl/bin/perl
if (!open (IN, "cms.txt"))
{ &error ('エラー','データが読み出せません'); }
$ff = $in{ 'next_num' };
if ($ff eq "") { $ff = 1; }
$psize = 10;
while ($line = <IN>) {
$page_control++;
if ($ff > $page_control) { next; }
$hit++;
$line =~ s/\n//;
@pickup = split(/,/,$line);
if ($hit > $psize) { $next_num = $page_control; last; }
else { push (@pickup,$line); }
print <<EOF;
<html>
<head>
<title>私のおすすめ</title>
<Content-type: text/html>
</head>
<body bgcolor="#ffffff" topmargin="35" leftmargin="0" MARGINHEIGHT="35" MARGINWIDTH="0" onLoad="Imges()">
<table width="700" border="0" cellpadding="2" cellspacing="1">
<tr>
<td width="140"> </td>
<td width="140"> </td>
<td width="140"> </td>
<td width="140"> </td>
<td width="140"> </td>
</tr>
<tr class="titles">
<td colspan="2" bgcolor="#6666FF">園名</td>
<td bgcolor="#6666FF">TEL</td>
<td colspan="2" bgcolor="#6666FF">住所</td>
</tr>
<tr class="style-03">
<td colspan="2"><b>$pickup[0]</b></td>
<td>$pickup[1]</td>
<td colspan="2">$pickup[2]</td>
</tr>
<tr>
<td> </td>
<td bgcolor="#999999" class="titles">放送日</td>
<td bgcolor="#999999" class="titles">放送時刻</td>
<td bgcolor="#999999" class="titles">再放送日</td>
<td bgcolor="#999999" class="titles">再放送時刻</td>
</tr>
<tr class="style-03">
<td>■わたしとダンス</td>
<td>$pickup[3]</td>
<td>$pickup[4]</td>
<td>$pickup[5]</td>
<td>$pickup[6]</td>
</tr>
<tr class="style-03">
<td>■わたしとうたおう</td>
<td>$pickup[7]</td>
<td>$pickup[8]</td>
<td> </td>
<td> </td>
</tr>
<tr class="style-03">
<td colspan="5">
<hr size="1">
</td>
</tr>
EOF
print '</table></body></html>';
}
if ($next_num ne '') {
print "<a href=cm.cgi?next_num=$next_num>次のページ</a>\n";
}
exit;
こんな感じなのですが、いかがでしょうか?
10ブロックを1ページとしています。
11ブロックで次ページ目に飛ばないのです。
最後のprint "<a href=cm.cgi?next_num=$next_num>次のページ</a>\n";
のところはブラウザーのアドレスには127.0.0.1/cm.cgi=11と表示されるだけです。
なにかが足りないのですかね?
教えてもらえないでしょうか?よろしくお願いします。
プロバイダ参照:http://www.mediawars.ne.jp
サーバのOS:WINサーバ
パソコンのOS:WinNT系
エディタ:秀丸
FTPソフト:ドリームウェーバー
サーバ移転:していない
改造:していない
CGI習熟度:middle
|