我允许人们提交图像,并且我需要将他们的提交限制在一天内不超过 5 个。我只需要你的帮助来构建 sql 代码,因为其余的东西都准备好了。我宁愿不使用基于会话和 cookie 的解决方案。基于 IP 的解决方案也不是坚如磐石,但对我来说它还可以,而且比其他两个更好。只是为了让您知道该网站是建立在 wordpress 上的,而我对 mysql 一无所知。
编辑:我已经尝试在 EFFORTS UPDATE 中构建下面的代码。请看一下。
这是我正在做的事情:我已经在 mysql 中有一个用于此功能的表,名为 someprefix_limit_uploads 。我将记录第一次使用表单的人的 ip 和日期,并在表单提交时将其保存到数据库中,在隐藏字段的帮助下,例如 - <input type="hidden" name="uploader_ip" value="<?php echo $uploader_ip;?>"/>
。然后我将使用如下所示的内容将值插入表中,因为我使用的是 wordpress,所以我的代码如下所示:
global $wpdb;
require_once('../../../wp-load.php');
$upload_date = strip_tags($_POST['upload_date']);
$uploader_ip = strip_tags($_POST['uploader_ip']);
$table_name = $wpdb->someprefix . "limit_uploads";
$wpdb->insert( $table_name, array(
'rec_upload_date' => $upload_date,
'rec_uploader_ip' => $uploader_ip
));
这是我卡住的地方:现在对于包含表单的页面中的代码,我需要将表单包装在if_statement
. 基本上脚本必须在 24 小时内提交 5 次后隐藏表单。这是最终代码的示例。
global $wpdb;
$results = $wpdb->get_results("COUNT xyz xyz xyz xyz xyz xyz xyz xyz xyz ");
if(//there are more than 5 submits from same ip on same day) {
echo "no more than 5 uploads allowed.";
} else {
<form id="upload-images" action="" method="POST">
//contents of the form
</form>
}
底线:现在必须很明显,我需要第二个代码块的帮助。因为我什至不确定我应该使用 COUNT 还是 SELECT,如果是,那么如何。我会在这里得到一点帮助,也请指出我的方法是否有问题。
努力更新:
我认为 sql 查询必须是这样的,但缺少一些元素:
SELECT COUNT(*) **missing_some_code_here**
FROM someprefix_limit_uploads
WHERE rec_uploader_ip = $uploader_ip;
AND rec_upload_date = $upload_date;
然后在我的页面中
if (**missing_some_code_here** > 5) {
echo "no more than 5 uploads allowed.";
return;
}