我已经创建了一个注册表单,我希望防止同一个用户一次又一次地注册该系统。这是我的代码,请帮我解决这个问题。在初始注册时,只考虑用户名、密码和电子邮件,在登录系统后,用户可以更新姓名、性别、教育等信息:.
<?php
session_start();
include_once 'newFunctions.php';
include_once 'dbConnect.php';
// database connection
dbConnect();
$username = $_POST['username'];
$pw=md5($_POST['password']);
$email=$_POST['email'];
//check the term
if(isset($_POST['term'])){
$is_checked = 1;
}else{
$is_checked = 0;
}
$insert_data="INSERT INTO tutor(userName, password, email, avatar, term)
VALUES
( '{$username}','{$pw}','{$email}','default_image.jpg','{$is_checked}')";
$check=mysql_query($insert_data);
if($check=='true')
{
// session variables
$_SESSION['login'] = "1";
$_SESSION['username']=$username;
$_SESSION['password']=$pw;
showAlert("You Have Successfully Registered ", "../tutor_panel_ui.php");
}
else{
echo "Invalid Login";
$_SESSION['login'] = '';
}
?>发布于 2013-07-29 06:28:35
在此之前
$insert_data="INSERT INTO tutor(userName, password, email, avatar, term)
VALUES
( '{$username}','{$pw}','{$email}','default_image.jpg','{$is_checked}')";运行一个查询,以检查数据库中是否已经存在电子邮件id或/和用户名。
会是这样的
$query="SELECT userName (or/and) email FROM tutor WHERE email ='$email' (or/and) userName=$username ";检查返回的结果是空的还是包含了一些行。如果是空的,继续注册用户,否则告诉用户他已经注册了,并且不能再次注册。
发布于 2013-07-29 06:38:33
我要做的是:将家教专栏、电子邮件和用户名设置为UNIQUE KEY。然后我将对您的代码进行以下编辑:
<?php
session_start();
include_once 'newFunctions.php';
include_once 'dbConnect.php';
// database connection
dbConnect();
$username = $_POST['username'];
$pw=md5($_POST['password']);
$email=$_POST['email'];
//check the term
if(isset($_POST['term'])){
$is_checked = 1;
}else{
$is_checked = 0;
}
$insert_data="INSERT INTO tutor(userName, password, email, avatar, term)
VALUES
( '".mysql_real_escape_string({$username})."','".mysql_real_escape_string({$pw})."','{".mysql_real_escape_string($email})."','default_image.jpg','{$is_checked}')";
$check=mysql_query($insert_data);
if($check=='true')
{
// session variables
$_SESSION['login'] = "1";
$_SESSION['username']=$username;
$_SESSION['password']=$pw;
showAlert("You Have Successfully Registered ", "../tutor_panel_ui.php");
//showAlert is a javascript function - so unless you have defined it in your other files you'll need to do a different thing here.
}
else{
echo "Registration data invalid. Username and email must be unique. Are you already signed up and forgot your password? if so <a href='recoverpassword.php'>Recover your password</a>.";
$_SESSION['login'] = '';
}
?>注意:我在其中添加了mysql_real_escape_string()调用,以避免可怕的致命的SQL注入风险,但是您应该考虑升级到PDO_或mysqli_,而不是mysql_函数。
https://stackoverflow.com/questions/17917173
复制相似问题