php防刷计数器

 更新时间:2016年11月25日 16:11  点击:1698
 

<?php
require_once(''config.php'');
function counter()

 
session_start();
 
$sql="select counter from counter";
 
$result=@mysql_query($sql);
 
if(!empty($result))
 {
  
$row=mysql_fetch_array($result);
  
$counter=++$row[counter];
  
if(!$_SESSION[''counter''])
  {
   
$query="update counter set counter=$counter";
   
$result=@mysql_query($query);
   
if($result)
   {
    
$_SESSION[''counter'']=true;
   }
  }
  
$counter_len=strlen($counter);
  
for($i=0;$i<$counter_len;$i++)
  {
   
$number=substr($counter,$i,1);
   
if(isset($number))
   {
    
echo "<img src=''image/".$number.".gif''>";
   }
  }
 }
}
?> 
www.cnjiaocheng.com

< 一、xajax与其它ajax框架的比较
xajax功能很简单,但很灵活!~它不象其它一些大的框架,功能确实强大,但执行速度不敢恭维。。功能虽多,但不够灵活。api多,学起来简直如同学习一门新的语言。
xajax就没那么复杂,手册只有一页html,如下:
http://javascript.chinahtml.com/2006/javascript-11398213503517.shtml
二、xajax功能介绍
xajax的功能比较简单,但就因为简单,所以灵活。同时,这也要求使用者要对javascript / vbs 客户端脚本有一定的了解。因为它的功能是比较活的。可以说单纯使用xajax,什么也做不出,但配合js / vbs 又什么都做的出。
xajax主要是使用xajaxResponse这个类,它提供了一些方法,举例如下:
1、addAlert($sMsg)
弹出警告
2、addscript($sJS)
执行某段js
3、$objResponse->addAssign("","","")
给页面中的某个元素附值,或者修改其属性
等等。。。。

所以xajax不是死的,它不能做出XXX XXX功能来,但是它可以灵活的控制客户端的js / vbs,去完成我们要实现的效果。

三、xajax安装配置
不需要特别的安装和配置,只要下载其文件包,解压到网站目录中
下载地址:
http://www.xajaxproject.org/

三、用xajax做会员注册和登陆
1、数据库
采用mysql5.0,数据库名zl 表名zl_user   表结构
id             int(11)       auto_increment
zl_user      varchar(50)
zl_pwd      varchar(50)
email        varchar(50)



2、reg.php   注册文件(内有说明)

<?php
      require_once("inc/xajax.inc.php");
//使用xajax则必须首先引入xajax.inc.php
      $xajax = new xajax("inc/signup.php");
//创建一个xajax对象,为singup.php
      $xajax->registerFunction("processForm");
//使用singup.php里的processForm函数
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<link rel="stylesheet" href="http://blogbeta./css/style.css" type="text/css">
<title>无标题文档</title>  
<?php $xajax->printJavascript(''inc/''); ?> 
<script type="text/javascript">
         function submitSignup()
         {
             xajax.$(''submitButton'').disabled=true;
   &

 

1、前言

分页显示是一种非常常见的浏览和显示大量数据的方法,属于web编程中最常处理的事件之一。对于web编程的老手来说,编写这种代码实在是和呼吸一样自然,但是对于初学者来说,常常对这个问题摸不着头绪,因此特地撰写此文对这个问题进行详细的讲解,力求让看完这篇文章的朋友在看完以后对于分页显示的原理和实现方法有所了解。本文适合初学者阅读,所有示例代码均使用php编写。

2、原理

所谓分页显示,也就是将数据库中的结果集人为的分成一段一段的来显示,这里需要两个初始的参数:

每页多少条记录($PageSize)?
当前是第几页($CurrentPageID)?

现在只要再给我一个结果集,我就可以显示某段特定的结果出来。
至于其他的参数,比如:上一页($PreviousPageID)、下一页($NextPageID)、总页数($numPages)等等,都可以根据前边这几个东西得到。
mysql数据库为例,如果要从表内截取某段内容,sql语句可以用:select * from table limit offset, rows。看看下面一组sql语句,尝试一下发现其中的规率。

前10条记录:select * from table limit 0,10
第11至20条记录:select * from table limit 10,10
第21至30条记录:select * from table limit 20,10
……

这一组sql语句其实就是当$PageSize=10的时候取表内每一页数据的sql语句,我们可以总结出这样一个模板:

select * from table limit ($CurrentPageID - 1) * $PageSize, $PageSize

拿这个模板代入对应的值和上边那一组sql语句对照一下看看是不是那么回事。搞定了最重要的如何获取数据的问题以后,剩下的就仅仅是传递参数,构造合适的sql语句然后使用php从数据库内获取数据并显示了。以下我将用具体代码加以说明。

3、简单代码
请详细阅读以下代码,自己调试运行一次,最好把它修改一次,加上自己的功能,比如搜索等等。

<?php
// 建立数据库连接
$link = mysql_connect("localhost", "mysql_user", "mysql_password")
      or die("Could not connect: " . mysql_error());
// 获取当前页数
if( isset($_GET[''page'']) ){
   $page = intval( $_GET[''page''] );
}
else{
   $page = 1;
}
// 每页数量
$PageSize = 10;
// 获取总数据量
$sql = "select count(*) as amount from table";
$result = mysql_query($sql);
$row = mysql_fetch_row($result);
$amount = $row[''amount''];
// 记算总共有多少页
if( $amount ){
   if( $amount < $page_size ){ $page_count = 1; }

 

<
用PHP过滤html里可能被利用来引入外部危险内容的代码。有些时候,需要让用户提交html内容,以便丰富用户发布的信息,当然,有些可能造成显示页面布局混乱的代码也在过滤范围内。


以下是引用片段:
#用户发布的html,过滤危险代码
function uh($str)
{
    $farr = array(
        "/s+/",                                                                                            //过滤多余的空白
        "/<(/?)(scrīpt|i?frame|style|html|body|title|link|meta|?|%)([^>]*?)>/isU",  //过滤 <scrīpt 等可能引入恶意内容或恶意改变显示布局的代码,如果不需要插入flash等,还可以加入<object的过滤
        "/(<[^>]*)on[a-zA-Z]+s*=([^>]*>)/isU",                                      //过滤javascrīpt的on事件
    
   );
   $tarr = array(
        " ",
        "<\1\2\3>",           //如果要直接清除不安全的标签,这里可以留空
        "\1\2",
   );

  $str = preg_replace( $farr,$tarr,$str);
   return $str;


      Web 2.0意义深远。它像所有重大变革一样,从社会、文化甚至是政治等多方面影响着使用者。Web 2.0的设计者和开发者们是受影响最大的人群之一——不仅仅是因为他们需要新的技术手段,更重要原因是,他们需要认识到,内容应当作整体的一部分对待,它们并不是孤立存在的。

      了解《构建可扩展的Web站点》该书,还是通过我一个在新西兰做PHP开发的朋友,向我强烈推荐此书,因为本人英语水平有限,所以直到出版了中文译本,才有幸拜读此书。

     《构建可扩展的Web站点》可以说是构建Web站点的一整套解决方案。本书语言幽默诙谐,实例形象贴切,便于读者理解和在实际中应用。内容全面,涉及到软件和硬件各个方面的知识体系。小到主机托管,专用硬件大到层次化技术,软件接口设计。对网站的整体建设和架构进行了系统的阐述,可以说是一本学习网站建设的教科书。

      第四章关于网站国际化、本地化和Unicode的介绍另我印象深刻,因为这是大多数网站开发者所忽略的问题,并且国内也没有任何书籍对此进行过介绍。其实在现代Web应用程序开发领域中,国际化、本地化和Unicode早已成为热门话题,随着更多产品和企业走向国际,如果我们建立的应用程序不能支持多种语言,就会丧失一大部分潜在用户。即使都是中国人,简体和繁体也存在着很大的差别,所以为了提升用户在网站的使用体验以及网站的粘合度,就应使我们的网站能够满足更多人群的使用要求和语言习惯。《构建可扩展的Web站点》就针对上述涉及的问题,给出了解决的方案。同时对Unicode进行了介绍,并教给我们如何能够快速简易地实现全Unicode的应用程序。

      由于我一直从事PHP语言方面的推广工作,所以很欣慰可以从该书中看到PHP语言在Web站点架设中的重要地位。对于广大的PHPer来说,该书更是帮助我们方便、快捷、准确架设Web网站的工具书。

[!--infotagslink--]

相关文章

  • php正确禁用eval函数与误区介绍

    eval函数在php中是一个函数并不是系统组件函数,我们在php.ini中的disable_functions是无法禁止它的,因这他不是一个php_function哦。 eval()针对php安全来说具有很...2016-11-25
  • php中eval()函数操作数组的方法

    在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
  • Python astype(np.float)函数使用方法解析

    这篇文章主要介绍了Python astype(np.float)函数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-08
  • Python中的imread()函数用法说明

    这篇文章主要介绍了Python中的imread()函数用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-16
  • C# 中如何取绝对值函数

    本文主要介绍了C# 中取绝对值的函数。具有很好的参考价值。下面跟着小编一起来看下吧...2020-06-25
  • C#学习笔记- 随机函数Random()的用法详解

    下面小编就为大家带来一篇C#学习笔记- 随机函数Random()的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • 源码分析系列之json_encode()如何转化一个对象

    这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
  • php中去除文字内容中所有html代码

    PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
  • c# 数据类型占用的字节数介绍

    本篇文章主要是对c#中数据类型占用的字节数进行了详细的介绍。需要的朋友可以过来参考下,希望对大家有所帮助...2020-06-25
  • 金额阿拉伯数字转换为中文的自定义函数

    CREATE FUNCTION ChangeBigSmall (@ChangeMoney money) RETURNS VarChar(100) AS BEGIN Declare @String1 char(20) Declare @String2 char...2016-11-25
  • Nest.js参数校验和自定义返回数据格式详解

    这篇文章主要给大家介绍了关于Nest.js参数校验和自定义返回数据格式的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-28
  • C++中 Sort函数详细解析

    这篇文章主要介绍了C++中Sort函数详细解析,sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变...2022-08-18
  • Android开发中findViewById()函数用法与简化

    findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20
  • PHP用strstr()函数阻止垃圾评论(通过判断a标记)

    strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。语法:strstr(string,search)参数string,必需。规定被搜索的字符串。 参数sea...2013-10-04
  • Vue 组件复用多次自定义参数操作

    这篇文章主要介绍了Vue 组件复用多次自定义参数操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-27
  • index.php怎么打开?如何打开index.php?

    index.php怎么打开?初学者可能不知道如何打开index.php,不会的同学可以参考一下本篇教程 打开编辑:右键->打开方式->经文本方式打开打开运行:首先你要有个支持运行PH...2017-07-06
  • C#中decimal保留2位有效小数的实现方法

    这篇文章主要介绍了C#中decimal保留2位有效小数的实现方法,针对decimal变量保留2位有效小数有多种方法,可以使用Math.Round方法以及ToString先转换为字符串等操作来实现。具体实现方法感兴趣的朋友跟随小编一起看看吧...2020-06-25
  • PHP函数分享之curl方式取得数据、模拟登陆、POST数据

    废话不多说直接上代码复制代码 代码如下:/********************** curl 系列 ***********************///直接通过curl方式取得数据(包含POST、HEADER等)/* * $url: 如果非数组,则为http;如是数组,则为https * $header:...2014-06-07
  • php中的foreach函数的2种用法

    Foreach 函数(PHP4/PHP5)foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。...2013-09-28
  • C# 获取当前月份天数的三种方法总结

    本篇文章主要是对C#中获取目前月份的天数的三种方法进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助...2020-06-25