【发布时间】:2019-08-15 09:26:38
【问题描述】:
我的网络应用程序上有一个注册表单。我想要的是,当用户提交表单时,应该进行验证以检查用户输入的电子邮件 ID 是否已经存在于数据库中。 因此,如果它存在,那么应该会出现一条像小吃店这样的消息,说电子邮件 ID 已经存在。如果是新邮件,则会重定向到成功页面。
以下是我的 checkData 方法,我只是检查当我在表单上输入电子邮件 ID 时它是否存在,但输出始终是“未找到值”。
public void checkData() {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname?autoReconnect=true&useSSL=FALSE", "root", "pwd");
st = con.createStatement();
String query1 = "select email from users where email='" +email99+ "'";
ResultSet rs = st.executeQuery(query1);
if(rs.next()) {
System.out.println("Success");
}
else {
System.out.println("Value not found");
}
rs.close();
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
}
}
注意:- 我主要关心的是电子邮件验证。
谢谢
【问题讨论】:
-
ehm ...您声称您主要关心的是电子邮件验证,但您的问题是检查它是否已经在您的数据库中,这与电子邮件验证无关。
-
无论哪种方式:一旦用户提供了他的输入 SELECT * FROM MY_TABLE WHERE EMAIL = [valueProvidedByUser]; if ( nrOfResults == 0 ) -> 有效输入 else -> 已有用户使用此电子邮件
-
小心 SQL 注入。
-
@Shashankk 是 'email99' 动态值吗?试试下面的查询“从 email='email99' 的用户那里选择电子邮件”。如果您在表用户中有电子邮件列,并且如果您有电子邮件值“email99”的记录,那么您将收到“成功”消息。
标签: java mysql forms jsp servlets