您身边的网站建设专家
成功案例

【建站服务】长宁做网站/制作网站/搭建网站/设计网站/开发网站-网站服务一站式-域名申请

日期: 2022-09-21 05:39:54 浏览数:4


上往建站提供服务器空间服务商百度快照排名网站托管百度推广运营,致力于设计外包服务与源代码定制开发360推广搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。


长宁做网站/制作网站/搭建网站/设计网站/开发网站-网站服务一站式

网站建设.png

HP 实例 - AJAX 投票


AJAX 投票

在下面的实例中,我们将演示一个投票程序,通过它,投票结果在网页不进行刷新的情况下被显示。

你喜欢 PHP 和 AJAX 吗?

是: 
否: 

实例解释 - HTML 页面

当用户选择上面的某个选项时,会执行名为 "getVote()" 的函数。该函数由 "onclick" 事件触发。

poll.html 文件代码如下:

<html><head><meta charset="utf-8"><title>菜鸟教程(runoob.com)</title><script>function getVote(int) {
  if (window.XMLHttpRequest) {
    // IE7+, Firefox, Chrome, Opera, Safari 执行代码
    xmlhttp=new XMLHttpRequest();
  } else {
    // IE6, IE5 执行代码
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.onreadystatechange=function() {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
      document.getElementById("poll").innerHTML=xmlhttp.responseText;
    }
  }
  xmlhttp.open("GET","poll_vote.php?vote="+int,true);
  xmlhttp.send();}</script></head><body><div id="poll"><h3>你喜欢 PHP 和 AJAX 吗?</h3><form>是:<input type="radio" name="vote" value="0" onclick="getVote(this.value)"><br>否:<input type="radio" name="vote" value="1" onclick="getVote(this.value)"></form></div></body></html>

getVote() 函数会执行以下步骤:


PHP 文件

上面这段通过 JavaScript 调用的服务器页面是名为 "poll_vote.php" 的 PHP 文件:

<?php
$vote = htmlspecialchars($_REQUEST['vote']);// 获取文件中存储的数据$filename = "poll_result.txt";$content = file($filename);// 将数据分割到数组中$array = explode("||", $content[0]);$yes = $array[0];$no = $array[1];


PHP 文件

上面这段通过 JavaScript 调用的服务器页面是名为 "poll_vote.php" 的 PHP 文件:


<?php

$vote = htmlspecialchars($_REQUEST['vote']);


// 获取文件中存储的数据

$filename = "poll_result.txt";

$content = file($filename);


// 将数据分割到数组中

$array = explode("||", $content[0]);

$yes = $array[0];

$no = $array[1];


if ($vote == 0)

{

  $yes = $yes + 1;

}


if ($vote == 1)

{

  $no = $no + 1;

}


// 插入投票数据

$insertvote = $yes."||".$no;

$fp = fopen($filename,"w");

fputs($fp,$insertvote);

fclose($fp);

?>


<h2>结果:</h2>

<table>

  <tr>

  <td>是:</td>

  <td>

  <span style="display: inline-block; background-color:green;

      width:<?php echo(100*round($yes/($no+$yes),2)); ?>px;

      height:20px;" ></span>

  <?php echo(100*round($yes/($no+$yes),2)); ?>%

  </td>

  </tr>

  <tr>

  <td>否:</td>

  <td>

  <span style="display: inline-block; background-color:red;

      width:<?php echo(100*round($no/($no+$yes),2)); ?>px;

      height:20px;"></span>

  <?php echo(100*round($no/($no+$yes),2)); ?>%

  </td>

  </tr>

</table>

当所选的值从 JavaScript 发送到 PHP 文件时,将发生:


获取 "poll_result.txt" 文件的内容

把文件内容放入变量,并向被选变量累加 1

把结果写入 "poll_result.txt" 文件

输出图形化的投票结果

文本文件

文本文件(poll_result.txt)中存储来自投票程序的数据。


它存储的数据如下所示:


3||4

第一个数字表示 "Yes" 的投票数,第二个数字表示 "No" 的投票数。


注释:请记得只允许您的 Web 服务器来编辑该文本文件。不要让其他人获得访问权,除了 Web 服务器 (PHP)。


 PHP 实例 AJAX RSS 阅读器PHP 5 Array 函数 

2 篇笔记 写笔记

   学神之女


  dff***j@qq.com


82

这很不安全!攻击者能用简短的代码攻破!


//无限循环脚本

var Vote = 0;//你的票。

setInterval(function(){

    getVote(Vote);

},2000);

怎样更安全?可以用 Cookies 记录下投票,这样攻击者还需清理 Cookies。


if(empty($_COOKIE["voted"])) {

    setcookie("voted","yes!",ime()+60*60*24*365);

} else {

    die("您已经投过票!");

}

学神之女

   学神之女


  dff***j@qq.com


4年前 (2018-05-08)

   现在网


  che***nzho@aliyun.com


93

实名反对 @学神之女 :“怎样更安全?可以用 Cookies 记录下投票,这样攻击者还需清理 Cookies。”


这样其实也并不可取,我只要永远不


长宁做网站/制作网站/搭建网站/设计网站/开发网站-网站服务一站式


上往建站提供搭建网站域名注册官网备案服务网店详情页设计企业网店专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管网页美工排版,致力于域名申请竞价托管软文推广全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机网站推广百度竞价托管网站建设上网建站推广服务网络公司有哪些等业务,专业团队服务,效果好。

服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)


全国咨询热线:400-111-6878

地址:全国各地都有驻点商务

Copyright © 2021 通陆科技

网站建设上往建站