简体   繁体   English

检查是否使用了用户名或电子邮件?

[英]Check if username or email is taken?

I understand that this may be a duplicate post, although I am unsure how to use the posts answers in my context. 我知道这可能是重复的帖子,尽管我不确定如何在我的上下文中使用帖子答案。 I am trying to post the registered fields to the database, but if they are taken (only username and email), return to the form where the user can then edit the wrong information. 我试图将已注册的字段发布到数据库,但是如果使用了已注册的字段(仅用于用户名和电子邮件),请返回到表单,然后用户可以编辑错误的信息。 Could anyone help? 有人可以帮忙吗?

I am aware that I am using deprecated tags, this is for a college project 我知道我使用的标签已弃用,这是针对大学项目的

if (isset($_POST['firstname'], $_POST['surname'], $_POST['email'], $_POST['username'], $_POST['password'], $_POST['interest'])){

 $firstname = ($_POST['firstname']);
 $surname = ($_POST['surname']);
 $username = ($_POST['username']);
 $password1 = ($_POST['password']);
 $email = ($_POST['email']);
 $interest = ($_POST['interest']);

 $result = mysql_query("INSERT INTO user (firstname,surname,username,password,email,interestarea,user_type) VALUES ('$firstname','$surname','$username','$password1','$email','$interest','normal')");

 }
 if (isset($_POST['submit']))
{
?>
    <script>window.location='redirect.html';</script>
<?php
}
?>

I did have something like this, but this does not work 我确实有这样的事情,但这行不通

 $query2="SELECT * FROM user WHERE username='$username'";
 $result2=mysql_query($query2);
 $num=mysql_numrows($result2);


 if ($num!=0)
 {
 echo "That username has already been taken, please try again<br>
 <a href='register.php'>Register</a>";
 exit();
 }

The function is mysql_num_rows instead of mysql_numrows : 该函数是mysql_num_rows而不是mysql_numrows

$num = mysql_num_rows($result2);

mysql_num_rows mysql_num_rows

As the page also tells you, from PHP 5.5.0, this method can not be used anymore. 正如页面还告诉您的那样,从PHP 5.5.0开始,该方法不再可用。 So suggest start using mysqli_* or PDO 因此建议开始使用mysqli_ *或PDO

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM