php实现静态点击

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

很多人都在问这个问题.下面来看看吧.

<?php
require_once("boke/inc/re_conn.php");
$id =isset($_GET['id'])?$_GET['id']:'';
if(!is_numeric($id)){
 exit('unkown');
}else{
 $sql ="update filecontent set filebrower=filebrower+1 where id=$id";
 mysql_query($sql);
 $result =mysql_query("select id,filebrower from filecontent where id=$id");
 $rs  =mysql_fetch_array($result);
 
}
?>
document.write('<?php echo $rs[1];?>人次');

function replace_ip($ip)  //对ip进行替换
{
  $ip_arr= explode('.', $ip);
  $ip_arr[3]='*';
  $ip= implode('.', $ip_arr);
  return $ip;  
}

 

简单吧.

第一章 PHP简介

PHP 是一种服务器内置式的script 语言,它的出现使得在unix上快速地开发动态web成为现实。

  PHP是Rasmus Lerdorf在1994年秋天构思出来的。最早的未发行版本是他在自己的主页上来用来和观看他的在线简历的人保持联系的。第一个交付用户使用的版本是在1995年初发行的,它只是被当作一个个人主页制作工具。当时它仅包括一个只能懂得很少几条宏指令的非常简单的分析引擎和一组用于主页信息反馈的工具(一个留言簿,一个计数器和一些其他的东西)。1995年年中,Rasmus重写了整个解析器,并取名为PHP/FI 2。FI来源于他写的另外一个html表单集成数据的软件包。他把个人主页工具,表单集成工具合并在一起,并加入了mSQL数据库的支持,这样就有了PHP/FI。此后PHP/FI便以一种令人惊异的速度传播开来,人们开始大量使用它编写程序。

  我们无法确切的统计它的使用范围,但是根据估计到1996年底,世界上已经有至少15,000个站点在使用PHP/FIl。到了1997年年中这个数字已经增长到超过50,000个站点。 1997年年中我们也发现了PHP发展过程中一个重大的转折。这就是PHP的开发从Rasmus个人的爱好升级到一群程序员们有组织的工作。 再后来,这个解析器被Zeev Suraski和Andi Gutmans重写,通过这次全面的重写,大量PHP/FI的功能被移植到PHP中,并且成为了PHP的基本雏形。

  到1998年年中时,已经有大量的商业化产品,例如 C2的 StrongHold web server和RedHat Linux捆绑了PHP/FI解析器或PHP解析器,根据NetCraft估计的保守数据,PHP已经被世界上150,000个站点所采用。通过进一步分析,我们知道其使用数量远比使用Netscape公司旗舰产品--企业级WEB服务器的站点多。 PHP大量采用了C, Java和Perl语言的语法,并加入了各种PHP自己的特征。它与javascript等语言的一个区别就是PHP是在服务器执行,客户机所看到的是其在服务器上运行的结果,这意味着您若想采用PHP scrpit,必须得有 WEB SERVER 支持。

  PHP支持HTTP的身份认证、cookie、GIF图象创建,它的一个最有代表性的特点是它的数据库层,它使得编写基于数据库的网页变得非常简单。下列出了目前所支持的数据库:

Oracle ,Sybase , mSQL ,MySQL ,Informix ,Solid dBase ,ODBC, Unix dbm, PostgreSQL ,Adabas D,FilePro Velocis。

PHP也支持与采用POP3、HTTP、SNMP、NNTP、IMAP等协议的服务进行网络编程。

PHP的程序模式

  有三种方法从HTML进入"PHP程序模式":
  第一种方法: <?php PHP语句; ?>

如:

<?php echo("this is the simplest, an SGML processing instructionn"); ?>

  第二种方法:  <?php  PHP语句; ?>

如:

<?php echo("if you want to serve XML documents, do like thisn"); ?>
  第三种方法: 

<script language="php">
PHP语句;
</script>

如:

<script language="php">
echo("some editors (like FrontPage) don't like processing instructions");
</script>

第二章 变 量

PHP支持下面类型的变量:

(一)、内部变量

  主要有整数(interger),浮点数(float-point numbers),字符串(string),数组(array),对象(object)。

1 初始化变量

  要在PHP中初始化变量, 你只要简单的给它赋值即可。对于大多数类型,这是最直接的。对于数组和对象,可以使用其它方法。

2 初始化数组

  数组可以使用这两种方法之一来赋值: 使用一系列连续数值,或使用array()函数构造 (见 Array functions 部分)。

  要将连续的数值加进数组,你只需将要赋值赋给不带下标的数组变量。该值会作为数组的最后元素加进数组中。

  例:

   $names[] = "Jill"; // $names[0] = "Jill"
   $names[] = "Jack"; // $names[1] = "Jack"

与c、perl相似,数组下标也是从0开始。

3 初始化对象

要初始化一个对象,需用new语句建立该类型的变量。

       class foo {
        function do_foo() {
          echo "Doing foo.";
                 }
            }
        $bar = new foo;
        $bar->do_foo();

4 变量作用域

  我想要使用PHP和MySQL,但是如何安装和运行呢?什么是最基本的事情我应该知道的,以便让一个简单
的PHP - MySQL应用程序工作?

  这是一个基本的教程。没有怪异的代码,只是一些基础。

  多说一句,现在有大量的教程是基于UNIX机器的,这个教程将集中在基于Windows平台上。然而,除了
安装部分,有或多或少的针对于Windows的说明外,其它部分对所有的平台都是一样的。

  在这个教程中,我们将一步一步地建立一个小的网站,使用了PHP和MySQL的下面特性:

  1. 查看数据库;
  2. 编辑数据库的记录;
  3. 修改数据库的记录;
  4. 删除数据库的记录。

  我们将同时学习MySQL和PHP,一起去感觉它们。

第一节 - 收集和建立必要的项目

  好,开始工作。为了开始PHP-MySQL我们需要一些预备:

  1. 运行web服务器;
  2. 增加PHP扩展;
  3. 运行MySQL。

  第一步,得到和安装Web服务器

  让我们假设一下在你的机器上已经有一个运行着的web服务器。在Windows下有几个好用的web服务器应
用程序。要注重一件事,为了运行php/mysql你所选的web服务器应当可以支持扩展。

  一个在Windows上最轻易安装的服务器是OmniHTTPd(http://www.omnicron.ab.ca/httpd/,它是一个非
常好的自由web服务器。

  一旦你从站点上得到了安装文件,双击它并且安装web服务器。假如你在安装时全部选择了使用缺省值,
那么你将会把它安装在c:httpd下。一旦安装成功,安装程序将启动web服务器,带有一个欢迎窗口,在
windows的系统托盘中可以看到一个新的图标。

  好了,第一步做完了。

  第二步,下载和安装PHP发行版

  得到PHP Win32发行版很轻易:只要去http://www.php.net/download-php.php3,并且选择一个最好的
位置就可以了。

  在OmniHTTPd上安装PHP非常简单。

  最先Unzip安装文件到你的硬盘上,比如展开在c:php。

  拷贝文件'php3.ini-dist'到你的'%WINDOWS'目录下去,并改名'php3.ini'(在Win95/98为c:windows,在
WinNT/Win2k为c:winnt)。

  按下面编辑php3.ini文件:

  改变'extension_dir'设置为你的PHP安装目录(c:php),或存放'php3_*.dll'的目录。

  选择想在PHP启动时装入的模块。你应该将'extension=php3_*.dll'行的注释去掉来装入这些模块(一定
要确认去掉了extension=php3_mysql.dll的注释)。一些模块要求有额外的库安装在你的系统上才能正常工作。

  PHP问答集(http://www.php.net/FAQ.php3)有更多关于如何得到支持库的信息。你可以通过使用:
dl("php_*.dll")动态地装入一个模块。

  PHP扩展库以'php3_'为前缀。这个可以防止在PHP扩展与它们的支持库之间发生混淆。

  现在跟着简单的步骤配置OmniHTTPd:

  在系统托盘中右击蓝色的OmniHTTPd图标,选项属性(Properties)项;

  点击Web Server Global Settings项;

  点中'External'tab标签。现在,在"Virtual"域中输入".php3",在"actual"域中输入"c:phpphp.exe",
然后单击"Add"。

  选择Mime tab标签并且在"Vritual"中输入"wwwserver/stdcgi",在"Actual"中输入".php3",并单
击"Add"。

  单击 OK。

PHP功能的强大首先在于它的大量的内置函数库,它可以让初学者也能执行许多复杂的任务,而不必安装新的库和关心底层的具体情况,而这恰恰是其它流行的诸如Perl这样的客户端语言所不具备的。由于这个教程的限制,我们仅仅学习了一些与MySQL数据库相关的一些函数(事实上,即使是这种函数,我们也没有学全)。在这最后的部分,我们会稍微扩大一下范围来看看其它对于建立一个数据库驱动的网站有用的PHP的特征。
我们首先将学习PHP的include函数,使用这个函数,我们可以在许多页面中重复使用同一个PHP代码段。我们还看到如何利用这个函数提高我们的网站的安全性。
虽然PHP一般是相当快速和有效率的,但是它会加重服务器的运行时间和工作量。对于一个高流量的站点来说,这种负担可能会达到无法接受的程度。但是这并不意味着我们需要放弃我们的站点的数据库驱动的特征。我们会看到如何使用PHP在后台建立半动态页面而不必过分加重服务器的负担。
经常有人问论坛是如何利用一个<INPUT TYPE=FILE>标记来接受文件的上载的。我们也将学习到如何用PHP实现这种功能,而且我们还会看到假如将其有效地结合到一个数据库驱动的站点中。
最后,PHP还有一个相当强大的功能是可以很简单地将动态生成的内容很方便地作为email的信息发送出去。不论你是想要使用PHP使得访问者将你的站点的内容发送给它们的朋友,还是仅仅想提供一种方法让用户可以得到他们遗忘的口令,PHP的email函数都可以很好地实现这种功能!
PHP的服务器端包含
假如你已经在Internet上工作过一段时间,你也许接触过服务器端包含(SSI)这个术语;假如你没有接触过,你可以参看有关这个问题的Matt Mickiewicz的迷你指南。
从本质上说,SSI答应你将存储在你的Web服务器上的某一个文件的内容插入到另一个文件中去,最常见的应用是将一个网站的公用设计部分写入一个小的HTML文件当中,这个文件可以被Web页面所包含。对这个小文件的所有变动立即会影响所有包含它的文件。就象一个PHP脚本一样,Web的浏览者不需要对此有所了解,因为Web服务器会在将被请求的页面发送到浏览器之前做好所有的工作。
PHP有一个函数可以提供类似的功能。但是在包含文件中除了可以含有正式的HTML以及其它静态的内容以外,还可以含有脚本程序。让我们来看看下面这个例子:
&lt;!-- include-me.inc --&gt;<br>
&lt;?php<br>
echo( &quot;&lt;P&gt;Soylent Green is made from people! &quot;);<br>
?&gt;<br>

在上面的文件中,include-me.inc包含了一些简单的PHP代码。请注重这个文件的文件名的结尾是.inc,而不是.php。这表示这个文件与一般的Web服务器所认为的PHP脚本有所不同。这会保证这个文件只有被插入到一个.php文件中才会被执行,此外这也有助于你分辨你的PHP Web页面和PHP包含文件。
你还需要下面的文件:
<!-- testinclude.php -->
<HTML>
<HEAD>
<TITLE> Test of PHP Includes </TITLE>
</HEAD>
<BODY>
<?php
include("include-me.inc");
?>
</BODY>
</HTML>


这个文件和我们以前使用过的PHP脚本差不多,它的扩展名是.php extension(假如你的服务器需要,也可以是.php3)。请注重对include函数的调用。我们指定了我们要插入的文件名(include-me.inc),PHP会试图获取这个文件并将其插入到现在的文件中以取代include。将这两个文件都上载到你的Web服务器(或者将它们拷贝到你的Web服务器的文档文件夹,假如你正在这个服务器上工作的话),然后用你的浏览器装载testinclude.php。你会看到一个包含我们的插入文件信息的Web页面的,一切和你当初预料的没有什么两样。
假如这个例子不能工作,你也许需要配置你的php.ini文件中的include_path选项。用你常用的文本编辑器打开这个文件找到以include_path开始的一行(一般是在文件的中间)。就象你所熟悉的系统PATH环境变量的设置一样,这里包含了一个目录的列表,PHP会从这些位置寻找你所要包含的文件。它应该包括"."(当前目录)。
根据你的服务器的操作系统是Windows还是UNIX,你也许需要确定是否要用到引号:
对于UNIX:
include_path=.:/another/directory

对于Windows:
include_path=".;c:anotherdirectory"

利用插入文件提高安全性
PHP脚本有时会包含一些诸如用户名、口令以及其它一些你不想公开的敏感信息。你也许已经使用过mysql_connect函数,这个函数要求你在需要访问数据库的PHP脚本中输入你的MySQL用户名和口令。虽然你可以简单地对MySQL进行设置以使得这个用户名和口令只能供PHP使用,而为会被可能出现的黑客利用(通过在第八章中学习的方法对用户表的主机字段进行设置),你也许还是需要其它的比较方便的对你的用户名和口令的保护。
“但是等一下,”可能你会这样说,“因为PHP是由服务器处理的,没人会看到我的口令,对吗?”不错,但是你是否考虑到这样一个情况,服务器对PHP的解析可能会因为偶然的原因而停止。这可能是因为某个善意的同事对软件的错误配置,也可能是因为其它的因素,假如发生了这样的情况,PHP页面会当成纯文本文件来处理,于是你的所有的PHP代码(包括你的口令)将是完全公开的!
为了预防这样的安全漏洞,你可以将包含敏感信息的代码放到一个插入文件中,然后将它放到一个不属于你的Web服务的目录结构的目录中去。将这个目录添加到你的PHP的include_path中(在php.ini中添加),你可以指定PHP包含函数所使用的目录,而不必担心其中文件的安全,因为你的Web服务器不会将其作为Web页来显示。
例如,假如你的Web服务器定义所有的Web页面必须存在于/home/httpd/及其子目录中,你可以建立一个名为/home/phplib/来保存你的包含文件。将这个目录添加到你的include_path中,这样就行了!下面的例子显示了如何将你的数据库连接代码放置到一个包含文件中:
<!-- dbConnect.inc (in /home/phplib/) -->

[!--infotagslink--]

相关文章

  • php语言实现redis的客户端

    php语言实现redis的客户端与服务端有一些区别了因为前面介绍过服务端了这里我们来介绍客户端吧,希望文章对各位有帮助。 为了更好的了解redis协议,我们用php来实现...2016-11-25
  • jQuery+jRange实现滑动选取数值范围特效

    有时我们在页面上需要选择数值范围,如购物时选取价格区间,购买主机时自主选取CPU,内存大小配置等,使用直观的滑块条直接选取想要的数值大小即可,无需手动输入数值,操作简单又方便。HTML首先载入jQuery库文件以及jRange相关...2015-03-15
  • 利用JS实现点击按钮后图片自动切换的简单方法

    下面小编就为大家带来一篇利用JS实现点击按钮后图片自动切换的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-10-25
  • JS实现的简洁纵向滑动菜单(滑动门)效果

    本文实例讲述了JS实现的简洁纵向滑动菜单(滑动门)效果。分享给大家供大家参考,具体如下:这是一款纵向布局的CSS+JavaScript滑动门代码,相当简洁的手法来实现,如果对颜色不满意,你可以试着自己修改CSS代码,这个滑动门将每一...2015-10-21
  • jQuery+slidereveal实现的面板滑动侧边展出效果

    我们借助一款jQuery插件:slidereveal.js,可以使用它控制面板左右侧滑出与隐藏等效果,项目地址:https://github.com/nnattawat/slideReveal。如何使用首先在页面中加载jquery库文件和slidereveal.js插件。复制代码 代码如...2015-03-15
  • JS实现网页游戏中滑块响应鼠标点击移动效果

    本文实例讲述了JS实现网页游戏中滑块响应鼠标点击移动效果。分享给大家供大家参考,具体如下:这是网页游戏中的一个有趣效果,可以完成以下几个动作:滚动、scroll 8个方向、鼠标坐标获娶对象上下左右位置获取,大家可以自己添...2015-10-21
  • PHP+jQuery翻板抽奖功能实现

    翻板抽奖的实现流程:前端页面提供6个方块,用数字1-6依次表示6个不同的方块,当抽奖者点击6个方块中的某一块时,方块翻转到背面,显示抽奖中奖信息。看似简单的一个操作过程,却包含着WEB技术的很多知识面,所以本文的读者应该熟...2015-10-21
  • SQLMAP结合Meterpreter实现注入渗透返回shell

    sqlmap 是一个自动SQL 射入工具。它是可胜任执行一个广泛的数据库管理系统后端指印, 检索遥远的DBMS 数据库等,下面我们来看一个学习例子。 自己搭建一个PHP+MYSQ...2016-11-25
  • PHP实现今天是星期几的几种写法

    复制代码 代码如下: // 第一种写法 $da = date("w"); if( $da == "1" ){ echo "今天是星期一"; }else if( $da == "2" ){ echo "今天是星期二"; }else if( $da == "3" ){ echo "今天是星期三"; }else if( $da == "4"...2013-10-04
  • 原生js实现fadein 和 fadeout淡入淡出效果

    js里面设置DOM节点透明度的函数属性:filter= "alpha(opacity=" + value+ ")"(兼容ie)和opacity=value/100(兼容FF和GG)。 先来看看设置透明度的兼容性代码: 复制代码 代码如下: function setOpacity(ele, opacity) { if (...2014-06-07
  • Android中用HttpClient实现Http请求通信

    本文我们需要解决的问题是如何实现Http请求来实现通信,解决Android 2.3 版本以后无法使用Http请求问题,下面请看正文。 Android开发中使用HttpClient来开发Http程序...2016-09-20
  • mysql存储过程实现split示例

    复制代码 代码如下:call PROCEDURE_split('分享,代码,片段',',');select * from splittable;复制代码 代码如下:drop PROCEDURE if exists procedure_split;CREATE PROCEDURE `procedure_split`( inputstring varc...2014-05-31
  • JS判断键盘是否按的回车键并触发指定按钮点击操作的方法

    下面小编就为大家带来一篇JS判断键盘是否按的回车键并触发指定按钮点击操作的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2017-02-19
  • C#中静态的深入理解

    这篇文章详细的介绍了C#中的静态,有需要的朋友可以参考一下...2020-06-25
  • JavaScript判断按钮被点击的方法

    javascript代码判断按钮是否被点击了在项目中经常会遇到这个需求,今天小编抽点时间给大家分享一段代码关于javascript判断按钮是否被点击的方法,感兴趣的朋友一起学习吧...2015-12-14
  • 浅析C#中静态方法和非静态方法的区别

    C#静态方法与非静态方法的区别不仅仅是概念上的,那么他们有什么具体的区别呢?让我们通过本文向大家介绍下C#中静态方法和非静态方法的区别,一起看看吧...2020-06-25
  • 微信小程序点击滚动到指定位置的实现

    这篇文章主要介绍了微信小程序点击滚动到指定位置的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-05-23
  • css实现文字发光效果方法汇总

    文字发光效果我们可以直接使用css来实现了今天我们来看一篇关于文字发光效果的例子,希望这篇文章能够帮助到各位朋友哦。 前言 我录制的慕课网视频一直没有上线,慕...2016-09-14
  • PHP+Mysql+Ajax+JS实现省市区三级联动

    基本思想就是:在JS动态创建select控件的option,通过Ajax获取在PHP从SQL数据库获取的省市区信息,代码有点长,但很多都是类似的,例如JS中省、市、区获取方法类似,PHP中通过参数不同执行不同的select语句。index.html代码:复制...2014-05-31
  • input 点击事件无效 [Element Migrating][ElInput][Event]: click is removed.

    点击无效 解决办法:可以使用 v-on 的修饰符 .native。例如:@click.native="getContentData(item)" <el-input v-for="(item,index) in voiceRetrievalData.oldContent"...2022-09-21