我尽量做到这一点.
到目前为止我所做的:我用的游戏将使用setTimeout或运行JavaScript setInterval.这不是闪光或任何特别的东西.到目前为止,我所做的就像测试运行(所以你可以更好地理解),几乎是循环Ajax,以便尽可能快地向PHP页面发送请求,然后PHP $_GET从请求中读取url,然后PHP编辑一个名为p1.html的文件$_GET,它只是玩家1的x和y轴坐标.所以在播放器2的浏览器中,它几乎完成了我上面所说的,现在当它接收到Ajax请求时,它将接收播放器1的坐标.因此JavaScript完成了它的工作,并将播放器1移动到播放器2的浏览器上.这就是我自己做的,我测试了它,是的,它是有效的,是的,当我修复所有的bug和东西时,它会永远持续下去.
说这就是我到目前为止所做的,但如果我想要一个在线格斗游戏或实时侧滚动游戏,这还不够快.这就是我需要帮助的地方.我在w3schools.com上了解了很多东西,但我不知道如何完成这项工作.那可能就是这样.我只需要浏览器1,将数据传输到浏览器2,类似于"1,100,200"或实际上更长一些,并让浏览器2将该数据作为JavaScript中的变量读取(类似x="received data";),就是这样.JavaScript将完成剩下的工作.
我确信我可以自己编写我需要的所有东西,但是为了将数据从A点发送到B点,每秒50次,我只是对此一无所知.甚至没有名字.最后,网址和示例将非常好(更清楚).特别是如果它已经在w3schools.com上(带有示例),我就错过了它.
好吧,我确实做了研究,但似乎无法弄清楚。长话短说,我正在使用这样的东西:
顺便说一句,“(WebsiteInfo)”只是用来感知我的网站/数据库信息。
$SQL = new PDO('mysql:dbname=(WebsiteInfo);host=(WebsiteInfo);charset=utf8', '(WebsiteInfo)', '(WebsiteInfo)');
$SQL -> setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$SQL -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Run Code Online (Sandbox Code Playgroud)
现在,这只是当前仅用于启动数据库连接。哪个btw主要只是我在此网站上发现的复制/粘贴代码,也是为了防止MySQL注入。实际上从此链接如何防止PHP中的SQL注入?。如果有什么问题,我不会介意建议或提示。只要这是有道理的,因为我大概一个星期前才开始使用数据库,所以一切对我来说都是新的。现在是这样的:
$Exicu = $SQL -> prepare("SELECT `tags` FROM `users` WHERE `user_id` = :a ") -> execute(array( ':a' => 16));
Run Code Online (Sandbox Code Playgroud)
$Exicu就在那儿,因为我一直在尝试从查询中获取结果(如果我说的没错)。另外,16是用户ID,但是它会经常更改,因此这就是为什么16不只是在prepare语句中扔的原因。我已经尝试了很多东西,但是都没有用。它要么不起作用,要么使PHP崩溃。
但无论如何,事情我已经尝试过的$Exicu就是$Exicu->rowCount(),$Exicu->bindParam,while循环使用$row = $Exicu->fetch(),$SQL->query($Exicu)->fetchAll();中,foreach带环($Exicu->fetch(PDO::FETCH_ASSOC) as $row),$Exicu->get_result(),echo PDO::query($Exicu);,echo mysql_result($Exicu),和公正的echo $Exicu。是的,我知道,这看起来很草率。
但是,这些方法似乎都无法有效地向我展示tags特定用户的数据库。因此,这几乎是我需要帮助的。当我使用类似的东西echo mysql_result( mysql_query("SELECT (etc,etc)") )但没有MySQL注入保护时,没有问题。
那么我简短易懂的解释就是这个.我有2个数组,FilterList和GamesReset.每当我使用此功能并使用复选框和下拉菜单过滤掉一些游戏时,该功能就会开始FilterList=GamesReset;.这个功能似乎工作正常,直到我过滤掉游戏的年龄.该功能永远不会触及,GamesReset除非它是while(i<GamesReset.length){}或类似的东西FilterList=GamesReset;.我过滤游戏时使用的唯一工具是FilterList.splice(i,1);.现在,GamesReset绝对不应该改变我所知道的.我让它重置FilterList,然后根据需要过滤的内容,它将开始从中删除那些游戏FilterList.我遇到的问题是,GamesReset也会被过滤掉.哪个,根本没有任何意义.所以像我的标题,这就像说b=0;,a=b;,a++;,现在b等于1.
现在,我认为这是我能够揭示这个问题的最好/最短的方式,而不会因为我向人们解释事情的坏习惯而过度使用它.我有一个网页目前可用,如果有人想看到最新的行动,因为GamesReset如果我是你,在这里(网址删除,阅读编辑),我不会得到正在发生的事情.要使错误起作用,只需将年龄更改为10而不选中任何框.底部段落是GamesReset数组(<br>用于分隔每个数组),它是在我只FilterList在JavaScript 中更改时更改的数组.如果你查看页面源代码的实际代码与我上面提到的相比可能有点偏差,但它几乎是100%相同的东西.我还希望在没有网址的情况下提供代码,并且在此页面上,但我无法弄清楚如何使用包含的html标记.
实际上,这是JavaScript函数.当我的问题被拒绝时,我只想出了4个空格.
function SearchFilter() {
Games = GamesReset;
plat = document.getElementById('platformcheck').checked;
rpg = document.getElementById('rpgcheck').checked;
puzz = document.getElementById('puzzlecheck').checked;
hybo = document.getElementById('hybocollectcheck').checked;
ages = document.getElementById('agescheck').value;
if ((!plat) && (!rpg) && (!puzz) && (!hybo)) {
FilterList = Games;
} else { …Run Code Online (Sandbox Code Playgroud) 我一直想知道这可能是几个月了,但我仍然不知道答案,除了可能的速度表现.长话短说,为什么不在每个角色之间放一个反斜杠,而不是在所有这些PDO代码到处都有?
$String = $_POST["attack"]; // SOME THING' OR 1 = 1 --
$String = fFilter( $String ); // \S\O\M\E\ \T\H\I\N\G\'\ \O\R\ \1\ \=\ \1\ \-\-
Run Code Online (Sandbox Code Playgroud)
现在我还没有进入这个SQL的东西,所以我不能给出一个完美的例子,但基本上sql字符串应该看起来像这样的SELECT * FROM account WHERE id = '\S\O\M\E\ \T\H\I\N\G\'\ \O\R\ \1\ \=\ \1\ \-\-'东西似乎总是很安全,但我没有听说过任何人使用它,甚至为什么不使用它.我总是看到像过滤html等的东西不好,但我不明白为什么不只是过滤每一个字符.因为任何攻击都会像\a\t\t\a\c\k.
php ×3
javascript ×2
ajax ×1
arrays ×1
database ×1
html ×1
mysql ×1
online-game ×1
pdo ×1
sql ×1