在我的网站上,我提供了一个供访问者输入的表单。无需登录。我不能要求登录。所以任何浏览网站的人都可以提交表单。它还向机器人打开了表单。我需要阻止机器人。我在以下线程上问过这个问题。
我确实得到了一些有用的回应。我阅读了一些解决方案(验证码和非验证码)。
我的网站不是我获得大量流量的网站。我的用户并不是非常精通计算机。所以我正在考虑做这样的事情。我不是一个很有成就的程序员,我在这里说的话可能非常愚蠢。但我只是想学习,所以请耐心等待。
每次提交表单时,我都会生成一个唯一的密钥(unix 时间 + 远程主机 IP)。我将密钥存储在 db 表中,然后发送表单,密钥是表单上的隐藏字段。提交表单时,我会检查该键的值是否在 db 表中。如果是,我从 db 表中删除键并处理表单。如果键不在 db 表中,我会丢弃该表单并要求用户再次执行操作。
每次提交时,我还会删除陈旧的条目(用户未在规定时间内提交表单)。我需要有一些机制来阻止机器人对表单的请求。例如,如果我有来自特定主机的 n 个待处理请求,我会要求人们在几分钟后请求该表单。
这样的事情会起作用吗?
只想知道在实时数据库上运行mysqldump有什么风险?有没有数据库损坏的机会?mysqldump似乎锁定了整个数据库。
我对预先捆绑的STS几乎不熟悉.我正在Fedora 17上的Eclipse/Spring中试用JDBC for MySQL
下载了mysql JDBC驱动程序(mysql-connector-java-5.1.22-bin.jar).然后在IDE中
我觉得我已经完成了编译所需的工作.但是,我看到了
Class.forName(com.mysql.jdbc.Driver);
com.mysql.jdbc.Driver无法解析为变量
你能告诉我这里有什么不对吗?
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TestJDBC {
/**
* @param args
*/
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
Connection connection = null;
Statement statement = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
Class.forName(com.mysql.jdbc.Driver);
connection = DriverManager.getConnection("jdbc:mysql://localhost/testdb?" …Run Code Online (Sandbox Code Playgroud) 几十年前我做了一些C编程.我正在尝试重新学习这门语言.我写了这个.我得到了意想不到的东 当我将'short int'更改为'int'时,它似乎有效.任何人都可以查看我的代码,看看它是否有任何问题,或者这是一个编译器问题.我在Linux上使用gcc.
#include <stdio.h>
int main(void) {
short int age = 0;
short int num_1_yr_olds = 0;
short int num_2_and_3_yr_olds = 0;
short int num_above_3_yr_olds = 0;
while(1) {
printf ("Enter age: ");
scanf ("%d", &age);
if (age < 1) {
break;
}
switch (age) {
case 1:
++num_1_yr_olds;
break;
case 2:
case 3:
++num_2_and_3_yr_olds;
break;
default:
++num_above_3_yr_olds;
break;
}
}
printf ("Number of 1 year olds = %d\n", num_1_yr_olds);
printf ("Number of 2 and 3 year olds = …Run Code Online (Sandbox Code Playgroud)