我无法在我的php网站中找到拒绝相同用户帐户的方法,而且我很难使用其他制作的代码。我尝试在phpmyadmin中使用 unique ,但是在拒绝它之后它给了我一个错误。这是代码:
<?php
include '../layout/header.php';
if(isset($_POST['submit'])) {
$email = $_POST['email'];
$pass1 = $_POST['pass1'];
$pass2 = $_POST['pass2'];
if($pass1 == $pass2){
$uname = $_POST['uname'];
$email = $email;
$pass1 = $pass1;
$pass2 = $pass2;
include '../DB/DB.php';
$db = new DB;
$db->__set('username','root');
$db->__set('password','');
$db->__set('dsn','mysql:host=localhost;dbname=login;');
$db->conn();
$aData = array();
$aData[0]['users'] = $uname;
$aData[0]['email'] = $email;
$aData[0]['pass'] = $pass1;
$db->dbInsert('vartotojai', $aData);
Echo "<a href='../index.php'>Atgal</a><br>";
}else{
die("sorry, your passwords dont match. <br />");
}
}else{
$form = '
<form action="register.php" method="POST">
Username: <input type="text" name="uname" /><br />
Email: <input type="text" name="email" /><br />
Password: <input type="password" name="pass1" /><br />
Confirm password: <input type="password" name="pass2" /><br />
<input type="submit" value="Registruotis" name="submit" />
</form>';
echo $form;
}
Echo "<a href='../index.php'>Atgal</a><br>";
?>
答案 0 :(得分:0)
执行此操作的最佳和最快方法是在数据库模式UNIQUE中定义约束,如您已经提到的那样。
另一种方法是简单地选择数据库中的任何记录,使用您想要的任何字段&#39; unique&#39;如果它返回任何记录,它显然不是唯一的,你的脚本应该失败,否则,继续你正在做的任何事情。
SQL查询可能如下所示:
SELECT COUNT(id) FROM sakila.actor WHERE [parameter] LIKE '[WHAT YOU'RE TESTING]';
如果此查询返回0,那么你很高兴,如果它返回1,那么只有一个人已经参与该参数,如果它返回大于1,你已经拥有重复值。
答案 1 :(得分:0)
您只需要查看表中是否已有使用相同用户名的记录。
使用如下查询:
SELECT [row] FROM [table] WHERE users=[username];
...用相应的值替换[row],[table],[username]。 执行SELECT查询的方式取决于您使用$ db
的库然后,您需要检查结果集中是否返回了任何记录。
if (!isset($resultSet)) { //therefore username is unique
//insert user to database
} else {
//prompt 'user already exists'
}
编辑:PDO示例
$db = new Db();
$db->bind("uname",$uname);
$query = $db->query("SELECT uname FROM [table] WHERE users = :uname");
if (!isset($query[0]['users'])) { //therefore username is unique
//insert user to database
} else {
//prompt 'user already exists'
}
答案 2 :(得分:0)
首先使用唯一的auto_increment创建一个像id这样的字段名称并检查以下代码
从tbname中选择*,其中uname =&#39; name&#39;和密码=&#34;密码&#34;
如果此查询返回null数组,则这不是有效用户,否则它可能具有数组值,它是您网站的用户,此过程对于将新用户插入数据库也是相同的