首页 > 编程技术 > php

PHP网络开发详解:搜索页面的设计

发布时间:2016-11-25 16:10

PHP对于数据库的搜索主要通过使用SQL语句中的like子句来实现。如果同时搜索多个关键词,可以使用union子句来将搜索结果合并起来。以下代码实现了一个搜索页面。
    <?php require_once(''Connections/conn.php''); ?>
    <?php
    $colname_rs = $_GET[''key''];                 //获得用户输入
    $result = explode('','',$_GET[''key'']);//分解用户输入的多个关键词,存入$result数组
    mysql_select_db($database_conn, $conn); //连接数据库
    //根据多个关键词构建SQL语句
    $query_rs = "SELECT * FROM (";
    for($i=0;$i<count($result);$i++)            //根据每个搜索关键词构建SQL语句
    {
      if($i==0)                                 //对第一个关键词,不使用UNION
        $query_rs .= "SELECT * FROM searchtable WHERE title LIKE ''%$result[0]%''
            OR content LIKE ''%$result[0]%''";
      else                                      //对其他关键词,使用UNION连接
        $query_rs .= " UNION SELECT * FROM searchtable WHERE title LIKE
            ''%$result[$i]%'' OR content LIKE ''%$result[$i]%''";
    }
    $query_rs .= ") T ORDER BY last_access DESC";   //对搜索结果排序
    //执行SQL语句
    $rs = mysql_query($query_rs, $conn) or die(mysql_error());
    $row_rs = mysql_fetch_assoc($rs);
    $totalRows_rs = mysql_num_rows($rs);
     SQL注入是网络攻击的一种常见手法,攻击者通过对页面中的SQL语句进行拼组来获得管理账号、密码及更多的其他信息。这种攻击方法对于网站的危害是非常大的。

    SQL注入攻击的一般方法

    以下代码是一个简单的数据输出页面,该页面通过从浏览器地址栏获得参数来显示相应的内容。
    <?php
    $id = $_GET[''id''];                    //获得参数
    $sql = "SELECT * FROM posts WHERE postid = $id";        //定义SQL
    mysql_connect("localhost", "root");           //连接服务器
    mysql_select_db("guestbook");                    //连接数据库
    $rs = mysql_query($sql);                     //执行SQL
    if(mysql_numrows($rs))                     //如果记录存在,则输出
    {
        $row_rs = mysql_fetch_assoc($rs);
        echo "TOPIC: ".$row_rs[''topic'']."<br>";
    }
    else              

在参与了几个大型PHP项目,写了很多PHP代码以后,我发现很多工具可以提高代码质量,简化发布,使得做为PHP开发人员的生涯变得轻松许多。许多这样的工具可能已经为大家所用。但是,由于一些人甚至没有注意到这些工具的存在,我会从此开始,好了,不说废话,下面是我认为所有PHP程序员应该知道的工具列表。 Phing - 一个项目构建系统


Phing 是一个基于Apache ANT 的项目构建系统。它的名字是一个拗口的语句首字母缩写 - PHing Is Not GNU make 。Phing可以做传统构建系统比如 GNU make 能做的任何事情,同时没有陡峭的学习曲线。
在phing(以及其他的构建系统)背后的思想是评估一系列相关性,然后执行一系列PHP类去正确的安装和配置一个应用系统。构建过程用一个简单的XML配置文件控制。Out of the box,phing内置可以执行一系列替换(比如:在你的开发版本和产品版本间改变include路径)、执行SQL语句、移动和复制文件、运行外部脚本等等。通过扩展包含在发行包中的“task”类,你也可以创造自己的定制任务。

对任何需要在超过一台服务器上部署大型PHP应用的人来世,Phing是一个无价之宝。同时我发现它对简单的PHP脚本也是很有用的。
Xdebug - 调试和分析工具   


<?php

if (mb_ereg("^[w-.]{1,32}$", $str)) {
    echo ''yes'';
} else {
    echo ''no'';
}

?>

public function substrGB($in,$num)
    {
      //$num=16;
      $pos=0;
      $byteNum=0;
      $out="";
      while($num){
   
    $c=mb_substr($in,$pos,1,"EUC-JP");
    if($c=="n") break;
    if(strlen($c)==1){
      $pos++;
      $byteNum++;
      if($byteNum>$num) break;
      $out.=$c;                       
    }
    else
      {
        $pos++;
        $byteNum=$byteNum+2;
        if($byteNum>$num) break;
        $out.=$c;                  
      }
      }
      return $out;
    } 

标签:[!--infotagslink--]

您可能感兴趣的文章: