cookie猜数字游戏(上)---------------思路分析(踩坑)
- 说明:用户第一次请求页面的时候,同时会产生一个随机数,用户点提交表单的时候,会将输入的数字与第一次请求产生的数字进行一个对比。
- 问题一:如何保存用户每次提交的数据
我们常见的在服务器中保存数据的方式是通过file_put_content()函数,将用户输入的数据保存在服务端的一个.txt文件中,那么问 题来了===========如果同一时刻有另外一个用户也在提交表单,那么.txt文件中的数据就可能被另外一个用户修改。
这里我们用cookie将不同用户提交的数据保存到不同的cookie中
- 问题二:不是每次提交表单都要产生随机数,浏览器如何辨别用户提交页面的时候是不是游戏开始
解决方案一:我们可以通过识别用户提交的方式是GET方式还是POST方式(如from表单里method="get"就会有问题,这个时候每次提交的都是get请求)

解决方案二:我们可以通过提交次数来辨别,如果是第一次提交就产生随机数,如果是第二次提交就不产生随机数

问题三我们如何做到猜10次
方法1:另外存一个cookie['count']用来记录,每猜一次就让他的值+1
$count = empty($_COOKIE['count']) ? 0:(int)$_COOKIE['count'];
//如果是第一次猜count=0,如果不是第一次猜count就为当前的值
if($count<10)
{
........
setcookie('count',$count+1);//执行完一次就将$count加1
}else{
echo "游戏结束,挑战失败";
setcookie('num');
setcookie('count');
}
方法2:将每次猜的数保存在COOKIE中,然后判断这个数组的长度
cookie猜数字游戏(上)---------------思路分析(踩坑)的更多相关文章
- cookie猜数字游戏(下)------------以及cookie使用的不安全之处
1.通过cookie可以解决上篇中多个用户对数据的修改,每个COOKIE保存不同用户的数据 <?php if(empty($_COOKIE['num'])||empty($_GET['num'] ...
- Java完成简单猜数字游戏v2.0
猜数字游戏v2.0 优化了获取随机数.输入数据超出边界值的代码,并增加了异常处理,能够在玩家输入错误数据错误时给出可靠指引,希望对和我一样的新人有帮助, 最后希望有大神愿意帮我解决代码优化的问题,谢谢 ...
- 【原创Android游戏】--猜数字游戏Version 0.1
想当年高中时经常和小伙伴在纸上或者黑板上或者学习机上玩猜数字的游戏,在当年那个手机等娱乐设备在我们那还不是很普遍的时候是很好的一个消遣的游戏,去年的时候便写了一个Android版的猜数字游戏,只是当时 ...
- 用MFC完成一个简单的猜数字游戏: 输入的四位数中,位置和数字都正确为A,数字相同而位置不同的为B。
最近学习了MFC一些比较基础的知识,所以打算通过做一个简单的数字游戏来理解MFC的流程并进一步熟悉其操作. 在这里,我做了一个猜数字的小游戏.第一步当然是设计主界面,先给大家展示一下游戏界面: 主界面 ...
- 【python小练习】简单的猜数字游戏
简单的猜数字游戏 前两天在论坛回答问题时候,看到一个猜数字的游戏,就在原来的基础上改了一下,玩一玩. 此程序,数字范围和尝试次数是事先设定好的,当然可以通过代码修改.经过测试,由于难度过大,我在其中加 ...
- 实验三 Java猜数字游戏开发
课程:Java实验 班级:201352 姓名:程涵 学号:20135210 成绩: 指导教师:娄佳鹏 实验日期:15.06.03 实验密级: ...
- Java初学者作业——实现控制台的猜数字游戏。游戏运行时产生一个1~100之间的随机数字
返回本章节 返回作业目录 需求说明: (1)实现控制台的猜数字游戏.游戏运行时产生一个1-100之间的随机数字 (2)要求用户从控制台输入数字,若输入的数字比随机数小,则输出"太小了,再大一 ...
- JavaScript一个猜数字游戏
效果图: 代码: <body> <script type="text/javascript"> window.onload = newgame; //页面载 ...
- 猜数字游戏 在控制台运行--java详解!了;来玩
import java.util.Scanner;//导入包 import java.util.Scanner; 注意格式 符号的使用 public class Demo{ //猜数字游戏 练习 pu ...
随机推荐
- struts2 核心过滤器的配置
<!-- struts2 过滤器核心配置--> <filter> <filter-name>struts2</filter-name> <filt ...
- Python getattr() 函数
Python getattr() 函数 Python 内置函数 描述 getattr() 函数用于返回一个对象属性值. 语法 getattr 语法: getattr(object, name[, d ...
- 了解AutoCAD对象层次结构 —— 4 —— 符号表
上一小节我们看到了符号表包含了一系列的表(共9个),这些表数量是固定的,用户不能增加新的表,也不能删除现有的表. 符号表名称 符号表功能 Block Table 块表 存储图形数据库中定义的块.此表中 ...
- HDU4651 Partition 【多项式求逆】
题目分析: 这题的做法是一个叫做五边形数定理的东西,我不会. 我们不难发现第$n$项的答案其实是: $$\prod_{i=1}^{\infty}\frac{1}{1-x^i}$$ 我们要对底下的东西求 ...
- BZOJ4695 最假女选手(势能线段树)
BZOJ题目传送门 终于体会到初步掌握势能分析思想的重要性了. 一开始看题,感觉套路还是很一般啊qwq.直接在线段树上维护最大值和最小值,每次递归更新的时候,如果不能完全覆盖就暴力递归下去.挺好写的欸 ...
- CS academy Binary Flips(dp)
开学啦,没啥时间写博客..过几天就能又停课啦qwq 做点中等 \(dp\) 题来找找 noip 的感觉 233 题意 原题戳这里. 给你一个 \(n \times m\) 的矩阵 \(A\) ,一开始 ...
- android 通过修改图片像素实现CircleImageView
CircleImageView实现方法有很多种,各有优缺点,因此需要按照不同的场景使用.我们今天使用修改图片像素的方法实现CircleImageView,主要知识点无非是勾股定理和点到圆形的距离. 素 ...
- 【BZOJ3252】攻略(长链剖分,贪心)
[BZOJ3252]攻略(长链剖分,贪心) 题面 BZOJ 给定一棵树,每个点有点权,选定\(k\)个叶子,满足根到\(k\)个叶子的所有路径所覆盖的点权和最大. 题解 一个假装是对的贪心: 每次选择 ...
- ⌈洛谷1312⌋⌈NOIP提高组2011⌋Mayan游戏【搜索】
感想 真的,感觉这道题目好坑爹,我这个蒟蒻调了好几个世纪才调出来. 重构代码千万遍,依旧只有-1输出. 正解 非常明显的一道搜索题目. 每一次记录上一级的状态,这样实现比较不容易出错. 然后考虑剪枝: ...
- urllib的实现---timeout,获取http响应码,重定向,proxy的设置
1.Timeout设置超时 只能修改Socket设置全局Timeout #! /usr/bin/env python3 import socket import urllib.request # ti ...