我的文件搜索有问题。我有2个文本表单,我想在文件中输入搜索值。但不知何故,如果我以其中一种形式写输入,它也会显示在其他行中(我不想这样)。此外,我的搜索只能通过搜索选项之一(其中变量是$ search)。
<?php
function f_display(){
global $file;
?>
<form action=<?php echo $_SERVER['PHP_SELF'] ;?>>
<input type=text name=search value="<?php echo $_GET['search'] ; ?>">
<input type=submit value=Message_Search>
</form>
<form action=<?php echo $_SERVER['PHP_SELF'] ;?>>
<input type=text name=search value="<?php echo $_GET['search'] ; ?>">
<input type=submit value=Name_Search>
</form>
<?php
$f = fopen($file,"r");
$x = 'bgcolor="#AAAAAA"';
$y = 'bgcolor="#FFFFFF"';
$search = $_GET['search'];
$searchname = $_GET['search'];
echo "<table width=50% border=1><tr><th> </th><th>vardas</th><th>nikas</th><th>pranesimas</th></tr>";
if (filesize($file)>0){
while (!feof ($f)) {
$string = fgets ($f,1000);
$part = explode ( "|" , $string );
if ( @stristr($part[2] , $search) == false and $search) continue ;
echo "<tr $tr_spec ><td><a href = \"index.php?aaa=2&id=$i\"></a></td><td>" . $part[0] . "</td><td>". $part[1]." </td><td>". $part[2] ."</td></tr>";
if ( @stristr($part[0] , $searchname) == false and $searchname) continue ;
echo "<tr $tr_spec ><td><a href = \"index.php?aaa=2&id=$i\"></a></td><td>" . $part[0] . "</td><td>". $part[1]." </td><td>". $part[2] ."</td></tr>";
} // while
} // if
fclose ($f);
echo "</table>";
?>
文件看起来像:
John|J0N|Hello
Peter|P3tE|Wow
Paul|PO|Nice
也许你可以给我一些东西或告诉我我做错了什么?
答案 0 :(得分:0)
relu
function f_display(){
您没有使用引号来给出值,而是给出了直接值。好方法是:<input type=submit value=Message_Search>
<input type="submit" value="Message Search">
等不安全的方法
$_SERVER['PHP_SELF']
(因为在首次加载时它们尚未定义)并且它可能会产生错误。 (提示:使用filter_input())$_GET['search']
现在我会给你我的PHP脚本更正,如果你想使用它,请随意使用它:
width=50%
通过评论我解释了一切,但我刚刚纠正了最终脚本问题,你还有一些问题需要解决。我希望这有帮助!