gpt4 book ai didi

PHP 表单 - 检查 mysql 是否已包含电子邮件数据

转载 作者:行者123 更新时间:2023-11-29 08:28:31 25 4
gpt4 key购买 nike

这个注册表是我制作的,但它没有达到我想要的效果。

我希望它连接到 mysql 数据库并存储表单提供的信息。我希望它对 md5 中的 $password 进行哈希处理并将其存储在“gebruikers”表中。请不要回复“该死,你不知道自己在做什么”或类似的话。我通过查看示例和遵循教程来学习 PHP。请记住,mysql插入代码没有填写正确,因为我在上面的几行中卡住了。

所以,我的问题是:我想检查mysql表是否已经包含$email。如果它已经在 mysql 表中,我想显示一条错误消息,我可以将其放置在 PHP 页面的其他位置。如果给定的电子邮件地址是唯一的,则 $password 应哈希为 md5 并存储到 mysql 数据库中,就像其他表单条目一样。

我该怎么做?

                        <?php
// Fetching all the form details
$email = $_POST["email"];
$password = $_POST["password"];
$voornaam = $_POST["voornaam"];
$tussenvoegsel = $_POST["tussenvoegsel"];
$achternaam = $_POST["achternaam"];
$dag = $_POST["dag"];
$maand = $_POST["maand"];
$jaar = $_POST["voornaam"];
$straat = $_POST["straat"];
$postcode = $_POST["postcode"];
$woonplaats = $_POST["woonplaats"];
$cniveau = $_POST["cniveau"];
$oniveau = $_POST["oniveau"];
$voornaam = $_POST["voornaam"];
$aboutme = $_POST["aboutme"];

//Here's where I don't know how to continue
$check = mysql_query("SELECT * FROM `gebruikers` WHERE `email` = '$email'");
if($check === FALSE) {
//there is a user already registered
echo("$email is al in gebruik. <a href='login.php'>Inloggen</a>?");
} else {
//There isn't a username
//mysql_query("INSERT INTO `user` (`id` ,`username` ,`password`) VALUES (NULL , '{$_POST['email']}', MD5( '{$_POST['password']}' ))");
echo("You have been registered!");
}

附注:我的母语不是英语,所以请忽略我的语法错误/拼写错误。

最佳答案

首先,您犯了一个重大错误:存在 SQL 注入(inject)安全漏洞。请阅读:http://php.net/manual/en/security.database.sql-injection.php其次,您应该使用 mysqli 而不是 mysql,因为 mysql 已被弃用。

您的错误是,SQL 仅在查询无效时返回 false,而不是在没有结果时返回 false。所以检查是否有结果的正确方法是使用 http://php.net/manual/en/mysqli-result.num-rows.php

关于PHP 表单 - 检查 mysql 是否已包含电子邮件数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17325481/

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