Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 仅通过按链接更新数据库_Php_Html_Prepared Statement - Fatal编程技术网

Php 仅通过按链接更新数据库

Php 仅通过按链接更新数据库,php,html,prepared-statement,Php,Html,Prepared Statement,我有一些图像的代码,比如: <img src="../images/woods/oak.png" onclick="loadXMLDoc(this), add_items_oak(this), add_skills_oak(this)" class="a" name="oak"/> <img src="../images/woods/oak.png" onclick="loadXMLDoc(this), add_items_oak(this), add_skills_oak(t

我有一些图像的代码,比如:

<img src="../images/woods/oak.png" onclick="loadXMLDoc(this), add_items_oak(this), add_skills_oak(this)" class="a" name="oak"/>
<img src="../images/woods/oak.png" onclick="loadXMLDoc(this), add_items_oak(this), add_skills_oak(this)" class="b" name="oak" /> 
然后使用以下文件更新数据库:

<?php
        require('../includes/db_connect.php');

            /* Register a prepared statement */
            if ($stmt = $mysqli->prepare('      

            UPDATE items_woods t1 JOIN skills_woodcutting t2
            ON t1.id = t2.id
           SET t1.oak = oak+1,
               t2.exp = exp+13
         WHERE t1.id = ?;

            ')) {
                /* Bind parametres */
                $stmt->bind_param('i', $id);

                /* Insert the parameter values */
                $id = 1;

                /* Execute the query */
                $stmt->execute();

                /* Close statement */
                $stmt->close();

            } else {
                /* Something went wrong */
                echo 'Something went terrible wrong' . $mysqli->error;
            }
?>

现在的问题是,人们可以使用url来模拟单击其中一幅图像。比如写:www.examplepage.com/database/update.php

我需要
update.php
检查是否单击了图像


我尝试了一些代码,在
标记中设置了一个值为true,只有在
update.php
中设置为true,它才会执行代码。这没有帮助,因为我正试图找到一个解决办法,不能欺骗,我想问这里。有什么建议或建议吗?提前感谢。

任何标准方法都无法满足您的需求。与直接访问URL相比,没有办法要求某人单击链接

您必须做一些事情,比如生成一个只在短时间内有效的一次性散列,并且只允许脚本在链接中传递时有效

因此,如果用户使用该散列单击一个链接,它将工作一次,但以后使用该散列单击将不会工作。他们必须再次找到图像,然后用新的散列再次单击它以触发相同的函数

编辑:

如果你在做一个看起来像这样的浏览器游戏,让用户看到资源并点击索取,你能先生成一张地图,发送他们点击的x/y坐标,然后跟踪资源被删除了吗


然后,如果他们试图再次“切割”相同的x/y坐标,那么它将不起作用,因为他们已经收获了它。

通过任何标准方法都不可能实现您想要的。与直接访问URL相比,没有办法要求某人单击链接

您必须做一些事情,比如生成一个只在短时间内有效的一次性散列,并且只允许脚本在链接中传递时有效

因此,如果用户使用该散列单击一个链接,它将工作一次,但以后使用该散列单击将不会工作。他们必须再次找到图像,然后用新的散列再次单击它以触发相同的函数

编辑:

如果你在做一个看起来像这样的浏览器游戏,让用户看到资源并点击索取,你能先生成一张地图,发送他们点击的x/y坐标,然后跟踪资源被删除了吗


然后,如果他们试图再次“切割”相同的x/y坐标,那么它将不起作用,因为他们已经收获了它。

通过任何标准方法都不可能实现您想要的。与直接访问URL相比,没有办法要求某人单击链接

您必须做一些事情,比如生成一个只在短时间内有效的一次性散列,并且只允许脚本在链接中传递时有效

因此,如果用户使用该散列单击一个链接,它将工作一次,但以后使用该散列单击将不会工作。他们必须再次找到图像,然后用新的散列再次单击它以触发相同的函数

编辑:

如果你在做一个看起来像这样的浏览器游戏,让用户看到资源并点击索取,你能先生成一张地图,发送他们点击的x/y坐标,然后跟踪资源被删除了吗


然后,如果他们试图再次“切割”相同的x/y坐标,那么它将不起作用,因为他们已经收获了它。

通过任何标准方法都不可能实现您想要的。与直接访问URL相比,没有办法要求某人单击链接

您必须做一些事情,比如生成一个只在短时间内有效的一次性散列,并且只允许脚本在链接中传递时有效

因此,如果用户使用该散列单击一个链接,它将工作一次,但以后使用该散列单击将不会工作。他们必须再次找到图像,然后用新的散列再次单击它以触发相同的函数

编辑:

如果你在做一个看起来像这样的浏览器游戏,让用户看到资源并点击索取,你能先生成一张地图,发送他们点击的x/y坐标,然后跟踪资源被删除了吗


然后,如果他们再次尝试“切割”相同的x/y坐标,则不会工作,因为他们已经获取了它。

您可以测试POST请求

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // … your database code 
}

如果用户只是访问了URL,这至少会停止更新,因为这将构成GET请求,您可以测试POST请求

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // … your database code 
}

如果用户只是访问了URL,这至少会停止更新,因为这将构成GET请求,您可以测试POST请求

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // … your database code 
}

如果用户只是访问了URL,这至少会停止更新,因为这将构成GET请求,您可以测试POST请求

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // … your database code 
}


如果用户只是访问URL,这至少会停止更新,因为这将构成GET请求

哦,聪明,我会将这些哈希存储在数据库中吗?检查我的更新;我没有注意到它以前是什么样子,所以我添加了一个替代想法:)我喜欢这两个想法,但我认为第二个想法对我来说有点太复杂了,我宁愿创建哈希并检查它是否是“合法”点击。这听起来不错,在这种情况下,每当你添加一个新的树来显示用户时,我都会生成哈希;将其保存在db中的某个位置,如果他们单击,您可以将其标记为剪切,或者只删除哈希条目(如果您选择删除,那么请确保在删除之前单击时验证哈希是否在db中;不要只发出盲删除),您还可以在哈希上添加时间戳,并删除早于一天的哈希表,处理看到它们但从不点击它们的人。哦,聪明,我会将这些哈希存储在数据库中吗?检查我的更新;我