我不知道如何阻止用户创建帐户,如果用户名已被采取..有人可以帮助我..我尝试寻找脚本或教程在互联网上但他们没有好..我只是在编码noobie ..我的表称为“user_acc”和用户名字段为“用户名”如何防止用户创建一个帐户,如果用户名已被采用
这里是我的AJAX脚本
function validateEmail(str){
var testresults;
var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
//var filter1=/^[A-Za-z]+$/;
if (filter.test(str))
testresults=true;
else
testresults=false
return (testresults)
}
//registration
$(document).ready(function(){
$('#submbut').click(function(){
var fn = $('#fnamae').val();
var ln = $('#lnamae').val();
var un = $('#unamae').val();
var pass = $('#pass').val();
var pass2 = $('#pass2').val();
var mail = $('#mail').val();
var cont = $('#cont').val();
var url = "http://localhost/picturecity/acceptusr";
if(fn == "" && ln == "" && un == "" && pass == "" && pass2 == "" && mail == "" && cont == "" || fn == "" || ln == "" || un == "" || pass == ""
|| pass2 == "" || mail == "" || cont == ""){
alert('Error: Fill up all fields');
}
else{
if(pass == pass2)
{
if(validateEmail(mail)){
$.ajax({
url:url,
data: "fn="+fn+"&ln="+ln+"&un="+un+"&pass="+pass+"&mail="+mail+"&cont="+cont,
type:"post",
success:function(e){
alert('Registration Successful');
}//success
});//ajax
}
else{
alert("Invalid Email Format");
}
}//if
else{
alert('Password Do Not Match');
}
}
});//click
}); //document
我控制器代码注册
public function acceptusr(){
$data = array (
"firstname"=>$this->input->post('fn'),
"lastname"=>$this->input->post('ln'),
"username"=>$this->input->post('un'),
"password"=>md5($this->input->post('pass')),
"email"=>$this->input->post('mail'),
"contact"=>$this->input->post('cont')
);
$this->Mod_admin->addtotb('user_acc',$data);
}
模型
public function addtotb($table, $data)
{
$this->db->insert($table,$data);
}
请帮助我如何创建用户名验证感谢..
您应该检查这个绰号用户是否已存在于数据库(使用'SELECT')与否。 – Regent 2014-10-07 11:22:39
您将必须执行数据库请求以检查用户名是否被采用。你可以在你的jQuery代码中使用ajax,或者在你的acceptusr()函数中添加一个测试。 – Jerodev 2014-10-07 11:23:04
我相信codeigniter可以处理数据库异常......所以只需将您的数据库表列设置为“UNIQUE”并处理异常? – Najzero 2014-10-07 11:24:31