表单搜索保存在文件和文件中显示结果

时间:2016-01-02 18:51:44

标签: php forms

在PHP中针对注入的脚本文件搜索字符串的最优雅和最有效的方法是什么。

流程:

我希望在用户输入字符串&时进行表单搜索点击搜索,搜索数据保存在txt / php文件上,自动创建基于月份和文件的新文件;年份: -201601.php / txt

  1. 然后在每个字符串上使用序列密钥将数据保存在安全查询中

  2. 然后,如果-201601.php内容的数据超过1000+查询,则旧数据已删除自动

  3. 然后如何根据-201601.php上的随机字符串显示 50个字符串

  4. 然后在-201601.php中没有 double 字符串或相同的字符串

  5. 如果你有我的问题的解决方案,并希望发布答案,请添加一些解释,以便我能理解你为什么/如何做到这一点,以便我不会再来问同样的问题。感谢

    我是搜索&创建我希望用我的情节想象力制作的文件。以下是我到目前为止的手动:

    <center>
    <form action="./cari.php?q=" method="GET">
    <input type="text" name="q" value="" placeholder=" Cari .." style="cursor: pointer;width:69%"/> 
     <input type="submit" value="Search"/>
    </form>
    </center><?php
    if(isset($_GET['q'])) {
        $data = ''.$_GET['q']."<br>\n";
        $ret = file_put_contents('rcnt.php', htmlspecialchars($data), FILE_APPEND | LOCK_EX);
        if($ret === false) {
            die('There was an error writing this file');
        }
        else {
            //echo "$ret bytes written to file";
        }
    }
    //else {die('no post data to process');}
    ?>
    

    我陷入困境,无法找到相关教程&amp;希望找到答案:(

    请帮助,我希望了解更多,我使用XAMPP 5.6

2 个答案:

答案 0 :(得分:1)

第一步,浏览器将创建的?q = var,您不需要在表单操作上设置它。

<form method="get">
  <input type="text" name="q" placeholder="search">
</form>

PHP代码将是:

<?php
if(!empty($_GET["q"]))
{
   $file = fopen(date("Ym") . ".txt","a+");
   fwrite($file, $_GET["q"] . "\r\n"); //\r\n jump the line
   flose($file);
}
?>

如果今天是该月第一天的第一次搜索,该文件将不存在,那么,PHP将创建它,否则,将打开并在其上写入。

希望它可以帮助你。

答案 1 :(得分:1)

我们可以尝试这种方式:

<?php

$theFile = date("Ym") . ".txt";

$myFile = file($theFile);

for($i = 0; $i < 100; $i++){ //deleting the first 100 lines
    unset($myFile[$i]);
}

//rewriting the file without the 100st first lines

file_put_contents($theFile, implode($myFile));

?>