プロが教える店舗&オフィスのセキュリティ対策術

次のページが表示してくれません。
どこが悪いのか、わかりません。教えてください。
スクリプトは以下の通りです。

#formのデータ処理で
$in{$key} = $val; # 入力データは%inへ
#ページ処理(2)
if($val eq '次の$page件'){
$allhits=$in{'allhits'};
$ff=$key;
&Search;
}

#sub Search内で
#foreach $line (@messages) {の中で
#ページ処理(4)
$page_control++;
if($ff eq ""){ $ff = 1; }
if( $ff > $page_control ){ next; }

#ページ処理(5)
#最初のページの時、データの最後まで処理する。
if($in{'next_num'} eq ''){

if($end != 1 && $hit == $page )
{ $end = 1; $next_num = $page_control; $allhits++ ; }
elsif( $hit >= $page) { $allhits++ ; }
else{ push(@NEWS , $line); $hit++; $allhits++; }
$test5 = $allhits;     #test値 13 -> なし 正常(値の変化をチェック)

}elsif( $ff > 4 ){      #この辺の処理がうまくいっていない?

$allhits = $in{'allhits'};
$test3 = $allhits;     #test値が入らない?(値の変化をチェック)

if ($hit == $page ) { $next_num = $page_control ;
$test4 = $next_num;   #test値が入らない?(値の変化をチェック)
#last OUTER;
}

else { push (@NEWS , $line ); $hit++; }
}
} #foreach文ここまで

&footer; #ページ送りのサブルーチン

#ページ送りボタンサブルーチン
sub footer {
print "<table width=700><tr><td align=left>\n";
if ($ff >2) {
print "<INPUT type=submit value=\"前の$page件\" onClick=history.back()>\n";
}
print "</TD><TD align=right>\n";
if ($next_num){
print "<INPUT type=submit name=\"$next_num\" value=\"次の$page件\">\n";
}
print "</td></tr></table>\n";
}

A 回答 (2件)

スクリプト全体を見ていないので、


はっきりとは言えませんが、

>「次の$page件」($pageの部分は変数展開しています。)を押したとき

と言うことであれば、
・条件分岐で処理している部分を疑ってみる。
・全体でのデータの流れでおかしい部分はないか?
などをチェックしてみてはいかがですか?

いずれにしろ、ここに記載されている部分だけだと
把握できない部分もあるので、原因を追及するのは
少し難しいですね。
お力になれず、申し訳ないです。
    • good
    • 0
この回答へのお礼

karogonさん
チェックありがとうございます。
掲載部分が問題なさそうだとわかっただけでも
問題点を絞れて、大変うれしいです。
ありがとうございます。
おっしゃる通り
・条件分岐で処理している部分を疑ってみる。
・全体でのデータの流れでおかしい部分はないか?
の2点かなと思っていました。
今後ともよろしくお願いします。

お礼日時:2003/05/25 10:31

表示されないとなると、何かエラーが出ているのでしょうか?



ぱっと見て、気になった箇所が一点。

ソースの32行目で

} #foreach文ここまで

となっていますが、これに対応する"{"が
見当たりません。

おそらく10行目の

#foreach $line (@messages) {の中で

だとは思うのですが、実際にはコメントアウト
されてますので、この部分で引っ掛かってるのでは
ないですか?

この回答への補足

早速お返事ありがとうございます。
#foreach $line (@messages) {の中で  は
スクリプト中では # はありません。{も対応しています。

最初(htmlから検索結果を呼び出したときは正常に表示されるのですが、「次の$page件」
($pageの部分は変数展開しています。)を押したとき
 Internal Server Errorがでてしまいます。
#ページ処理(5) の }elsif( $ff > 4 ){ まで値が正常ですが、
}elsif( $ff > 4 ){ の次から値が入らないようです。どうしてかわかりません。

補足日時:2003/05/22 22:13
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!