• 締切済み

キーワード検索ほ作成したけど実行するとできないのは何故!?

<SCRIPT LANGUAGE="PHP"> // 検索用関数 Function Search_Pattern($record,$pattern) { for($loop = 0;$loop < count($pattern);$loop++) { if($pattern[$loop] == "") continue; if(!ereg($pattern[$loop],$record)) return 0; } return 1; } // メインプログラム if($search) { if(!$keyword) { $error = "キーワードが入力されていません"; $search = ""; } } if($search) { $fp = @fopen("search_csv.csv","r"); if(!$fp) { $error = "該当ファイルを参照できません"; $search = ""; } } </SCRIPT> <HTML> <HEAD> <META Http-Equiv="Content-Type" Content="text/html;charset=SHIFT-JIS"> <TITLE>ファイル簡易検索</TITLE> </HEAD> <BODY> <B>ファイル簡易検索</B> <BR> <CENTER> <FORM ACTION="search_csv.php" METHOD="post"> <INPUT TYPE="hidden" NAME="search" VALUE="検索する"> キーワード: <INPUT TYPE="text" NAME="keyword" VALUE="<? echo $keyword; ?>" SIZE="30"> <INPUT TYPE="submit" NAME="search" VALUE="検索する"> </FORM> <FONT COLOR="#FF0000"><? echo $error; ?></FONT> <HR> <P> <SCRIPT LANGUAGE="PHP"> if($search) { echo "<TABLE BORDER=1>\n"; while(!feof($fp)) { $buff = fgets($fp,255); $title .= $buff; if(ereg("\n",$buff)) break; } $title = ereg_replace("\x0A","",$title); $column = split(",",$title); echo "<TR>\n"; for($loop = 0;$loop < count($column);$loop++) { echo '<TD BGCOLOR="#00FFFF" NOWRAP>',$column[$loop],"</TD>\n"; } echo '<TD BGCOLOR="#00FFFF" NOWRAP>'; echo '詳細'; echo "</TD>\n"; echo "</TR>\n"; $keyword = ereg_replace(" "," ",$keyword); $pattern = split(" ",$keyword); while(1) { $line = ""; while(!feof($fp)) { $buff = fgets($fp,255); $line .= $buff; if(ereg("\n",$buff)) break; } if($line == "") break; if(!Search_Pattern($line,$pattern)) continue; $line = ereg_replace("\x0A","",$line); $column = split(",",$line); echo "<TR>\n"; echo "<FORM method=\"post\" action=\"./formdb_modify.php\">\n"; echo "<INPUT type=\"hidden\" name=\"data_no\" value=\"".$column[0]."\">\n"; for($loop =0; $loop< count($column);$loop++) { echo "<TD nowrap><FONT size=-1>" . $column[$loop] . "</FONT></TD>\n"; //echo "<TD nowrap><FONT size=-1>" . $column[1] . "</FONT></TD>\n"; //echo "<TD nowrap><FONT size=-1>" . $column[2] . "</FONT></TD>\n"; //echo "<TD nowrap><FONT size=-1>" . $column[3] . "</FONT></TD>\n"; } echo "<TD nowrap><INPUT type=\"submit\" value=\" 詳細\"></TD>\n"; echo "</FORM>\n"; echo "</TR>\n"; } fclose($fp); echo "</TABLE>\n"; } else { echo "キーワードを入力し、検索ボタンを押すと検索結果がここに表示されます。\n"; } </SCRIPT> 実行すると何も検索されないのだけど... localhostでは、実行されます。 どこがおかしいのでしょうか!?

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

>$keyword = ereg_replace(" "," ",$keyword); >の部分を >$keyword=$_POST["keyword"]; いえ、そうではなく、初期処理として $keyword=$_POST["keyword"]; としてから $keyword = ereg_replace(" "," ",$keyword); などの処理をしていくということです。

jojo0203
質問者

お礼

有難うございます。 <INPUT TYPE="text" NAME="keyword" VALUE="<?=$_POST["keyword"]?>" SIZE="30"> 上記の様にしてみましたが 表示されず.... どの部分でセットすれば良いのでしょうか?

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

もしかしてlocalでphp.iniのregister_globalesをonにして テストしていませんか? ポストされたデータを受ける場合は $keyword=$_POST["keyword"]; のような処理を入れる必要があります。

jojo0203
質問者

お礼

有難うございます。 それは、 $keyword = ereg_replace(" "," ",$keyword); の部分を $keyword=$_POST["keyword"];に変更ということでしょうか?