gpt4 book ai didi

php - 根据 MYSQL 验证用户输入字段

转载 作者:行者123 更新时间:2023-11-29 23:52:41 24 4
gpt4 key购买 nike

我对 mysql 很陌生。如何根据数据库中存储的值验证用户输入的电子邮件值。用户在 html5 输入字段中输入他的电子邮件,并将使用数据库中存储的值进行验证并相应地执行成功操作。成功时导航到下一个屏幕,失败时会弹出一个弹出窗口。附件是场景的屏幕截图。[图片] ( http://s10.postimg.org/5vvlp200p/user_validation.png )请推荐

编辑1:

<!DOCTYPE html>
<html>
<body>
<form action="demo_form.asp" autocomplete="on">
E-mail: <input type="email" name="email" autocomplete="off"><br>
<input type="submit">
</form>
</body>
</html>

编辑2:

<?php
try
{
$connection = mysql_connect("localhost:3306","root","b");
mysql_select_db("MobileBlog", $connection);


mysql_query(" // suggest here to validate against emails in db");
mysql_close($connection);
echo "SUCCESS";
}
catch(Exception $e)
{
echo $e->getMessage();
// Note: Log the error or something
}
?>

编辑3这是我的新 HTML5 PHP 代码,但仍然失败。

<!DOCTYPE html>
<html>
<body>
<form action="checkform.php" method="post">
E-mail: <input type="email" name="email" autocomplete="off"><br>
<input type="submit">
</form>
</body>
</html>

PHP 代码

<?php
try
{
$connection = mysql_connect("localhost:3306","root","b");
mysql_select_db("mobileblog", $connection);
$emailid = $_POST['email'];
echo $emailid;
$sql = "SELECT Name from table WHERE email=" . $_POST['email'];
$result = mysql_query($sql);
echo $result;
if(!$result) { echo "<p class='error'>Error: No such email address</p>"; }
// note that the if is asking if there is no result
else {
while ($row = mysql_fetch_assoc($result)) {
echo "<p class='success'>Welcome " . $row['Name'] . "!!</p>";
}
} // end

//mysql_query(" // suggest here to validate against emails in db");
mysql_close($connection);
echo "SUCCESS";
}
catch(Exception $e)
{
echo $e->getMessage();
// Note: Log the error or something
}
?>

编辑 3 时出错:

警告:mysql_connect():第 5 行 C:\xampp\htdocs\email\checkform.php 中的用户“root”@“localhost”(使用密码:YES)访问被拒绝

警告:mysql_select_db() 期望参数 2 为资源, bool 值在第 6 行 C:\xampp\htdocs\email\checkform.php 中给出abc@gmail.com错误:没有这样的电子邮件地址

警告:mysql_close() 期望参数 1 为资源, bool 值在 C:\xampp\htdocs\email\checkform.php 第 32 行给出成功

最佳答案

第 1 步

使您的表单指向您要处理数据的页面。现在我们将保持简单。您示例中的表单没问题,您只需更改 <form> 的一些部分即可标记自己。

使用以下内容;

<form action="checkform.php" method="post">

注意 method我们使用的是 post 。您很快就会看到该名称再次被使用。

第 2 步

创建一个文件名为“checkform.php”的新页面。假设您有正确的连接设置,问题中的第二段代码是一个很好的起点。

在您的 mysql_query 之前我们需要从表单中获取数据,以便查看数据库中是否有匹配项。我们使用全局变量$_POST[]来做到这一点这是表单上所有项目的数组,其中包含 name属性作为键。因此,用户输入的电子邮件地址将存储在$_POST['email']下。 。我们现在可以使用它作为数据库查询的基础。

第3步

使用要发送到数据库的查询创建一个字符串,并使用 $_POST['email']电子邮件地址将出现的位置。

$sql = "SELECT Name from table WHERE email=" . $_POST['email'];

哪里table是数据库中表的名称。

现在您可以将该查询发送到数据库。

$result = mysql_query($sql);

请注意,查询结果将保存在 $result 中多变的。如果没有返回匹配项, $result将是错误的。

第 4 步

我们现在需要从结果中获取有用的信息。我们通过循环结果并提取数据来做到这一点。首先我们检查是否有结果,如果没有则打印错误消息,如果有则获取数据。

我们可以使用 while 循环结果循环并将该行的数据放入 $row数组,键是列的名称。我们只要求“姓名”,因此这将是我们唯一可用的列。代码如下所示;

if(!$result) { echo "<p class='error'>Error: No such email address</p>"; }
// note that the if is asking if there is no result
else {

while ($row = mysql_fetch_assoc($result)) {
echo "<p class='success'>Welcome " . $row['Name'] . "!!</p>";
}

} // endif

请注意,如果电子邮件地址匹配多行,则此代码将显示多条欢迎消息。我暂时就这样保留了它,但您应该使电子邮件字段在数据库中保持唯一。

注释

请注意,使用mysql_函数正在被贬值,并且在 PHP 的 future 版本中将不再可能。您将需要使用mysqli_反而。目前您还可以,但是一旦您了解了这些数据库操作的工作原理,那么您应该考虑转向 MySQLi 函数。

您可以在if中添加代码如果您愿意,提示用户返回表单的部分,或者 javascript 警报(google it)或其他什么,并且您可以使用 CSS 设置消息样式。

希望这有帮助

关于php - 根据 MYSQL 验证用户输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25537378/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com