一个简单的“留言板”(一)

这是08年初刚接触PHP一年多时,在一家公司面试过程中写的一个简单的 “留言本” ,写了点库函数:包括安全过滤,类似 Discuz!的翻页的。2147183.aspx下面看正文:

       老实说,这次面试完后就上机,有点突如其来,闻所未闻,令人防不胜防。何况两个月都没摸过PHP了,在函数库上有点遗忘。但是呢,凭借手上写代码的非一般的感觉,偶还是把它搞定了。

     本来这个东西有点简单,但是偏偏没有现成的东西可用,所以不得不构造了下面这个函数库,这里拿出来献丑了。

一、先建表:

CREATE TABLE IF NOT EXISTS `yhl_words` (
  `id` int(9) NOT NULL auto_increment,
  `uname` varchar(50) collate utf8_unicode_ci default NULL,
  `uwords` text collate utf8_unicode_ci,
  `utime` int(10) default NULL,
  `uip` varchar(15) collate utf8_unicode_ci default NULL,
  `ureferer` varchar(255) collate utf8_unicode_ci NOT NULL,
  `uangent` varchar(255) collate utf8_unicode_ci NOT NULL,
  `ifhide` tinyint(1) default '0',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1;
二、编写基础库函数(ps:没有使用过框架,所以好多东西都是手来)

<?php
/**
 * 基础函数库
 * @author YangHuaLiang yhl.lxrm@gmail.com
 */    
function_exists("entry") or die("Forbbiden!");


function global_filter($global_var)
{
    if (is_array($global_var) && !empty($global_var))
    {
        foreach($global_var as $key=>$val)
        {
            if (is_array($global_var))
                $global_var[$key] = addslashes($val);
            else
                $global_var[$key] = global_filter($val);
        }
    }else{
        $global_var = addslashes($global_var);
    }
    return $global_var;
    
}


class DB
{
    function DB($dbhost,$dbname,$dbuser,$dbpass)
    {
         $cnn = mysql_connect($dbhost,$dbuser,$dbpass);
        if (!mysql_select_db("$dbname",$cnn) )
        {
            die("db $dbhost canot be select");
        }
    }
    function fetch_array($rs/*,$type="assocc"*/)// 忘了辅助索引咋拼写了
    {
        $reslt = mysql_fetch_array($rs/*,$type*/);
        if ($reslt)
            return $reslt ;
        else
            return false;
    }
    
     function query($sql)
    {
        $ret = mysql_query($sql);
        if ( ! $ret )
        {
            return false;
        }else{
            return $ret;
        }
    }
    function get_one($sql)
    {
        $ret = mysql_query("$sql");
        if ( ! $ret )
        {
            return false;
        }else{
            $ret_arr = mysql_fetch_array($ret);
            return $ret_arr;
        }
    }
    
    
    
}

// return page string
function page_maker($records,$page=1,$perpage=3,$url)
{
     $page_string = NULL;
 
     page_filter($page);
    page_filter($records);
    $page_string = "一共<strong><font color=#00FF00>{$records}</font></strong>条记录";
    
    $url = strpos($url,"?") ? $url : $url . "?";
      if ( $records > 0 )
    {
        $page_pre = $page - 1; //向前翻 
        $page_next = $page + 1;    // 向后翻
        $num_of_page_step = 5;  //     向前/后翻 的步长
        
        $page_all = ceil($records/$perpage);  // 应向上取整,两个函数记不太清了
        
        $page > $page_all && $page = $page_all;
        $page_pre > $page_all && $page = $page_all;  
        $page_next > $page_all && $page_next = $page_all;
        
        $page_string .= "<div class="page"><a href="" >首页</a>&nbsp;&nbsp;&nbsp; <a href="$url&page=$page_pre">&lt;&lt;</a>&nbsp;&nbsp;";
        // 生成分页字符串
        $page_current = $page;
        if ( $num_of_page_step < $page_all)
        {
            for($i = 1 ; $i <= $num_of_page_step;++$i,++$page_current)
            {
                if ( $page_current <= $page_all)
                    $page_string .= "<a href="{$url}&page={$page_current}">{$page_current}</a>&nbsp;";
                else
                    break;
            }
        }
        $page_string .= " <a href="{$url}&page=$page_next">&gt;&gt;</a> &nbsp;&nbsp;&nbsp;<a href="{$url}&page={$page_all}">尾页</a></div>";
    }    
    return $page_string;
}

// 敏感字符过滤
function words_filter($words)
{
    global $_ARRAY_FILTER;
    $new_words = $words;
    // 查找并替换
    // 需另开一个敏感字符配置文件,用数组保存
    // 这里仅给出例子
        
    if (is_array($_ARRAY_FILTER))
    {
        if (empty($_ARRAY_FILTER))
        {
            return $new_words;
        } else {
            foreach ($_ARRAY_FILTER as $arr_wd)
            {
                if (strpos($words,$arr_wd[0]))
                    $new_words = str_replace("$wd[0]",$wd[1],$words);
            }
        }
     }
    return $new_words;
}

function page_filter($val)
{
    $val = intval($val);
    $val <1 && $val = 1;
    return $val;
}



?>

转载于:https://my.oschina.net/lxrm/blog/712

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值