我已经沿着一个ajax查找tutorial通知用户,如果用户名已被采取。ajax mysql查找不返回正确的结果为多字字符串
所以控制器语法是:
<?php
class Login extends CI_Controller
{
function index()
{
$this->load->view('loginView');
}
function getResultfromdb($username){
$this->db->where('username',$username);
$query = $this->db->get('users')->num_rows();
if($query == 0) echo 'userOk';
else echo 'userNo';
}
}
的观点是:
<html>
<head>
<title>Check User Name</title>
<link type="text/css" rel="stylesheet" href="<?=base_url()?>css/style.css"/>
</head>
<body>
<form method="post" action="">
<label for="username">Enter Your Name</label>
<input type="text" id="username"/>
<span class="checkUser" ></span>
<input type="hidden" class="hiddenUrl"/>
</form>
<script type="text/javascript" src="<?=base_url()?>js/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="<?=base_url()?>js/check.js"></script>
</body>
</html>
的check.js是:
$(document).ready(function(){
$('#username').blur(function(){
if($('#username').val().length >= 3)
{
var username = $('#username').val();
getResult(username);
}
return false;
})
function getResult(name){
var baseurl = $('.hiddenUrl').val();
$('.checkUser').addClass('preloader');
$.ajax({
url : baseurl + 'index.php/login/getResultfromdb/' + name,
cache : false,
success : function(response){
$('.checkUser').removeClass('preloader');
if(response == 'userOk') $('.checkUser').removeClass('userNo').addClass('userOk');
else $('.checkUser').removeClass('userOk').addClass('userNo');;
}
})
}
})
如前所述,这个伟大的工程。所以它会完美验证bob
和andy
。但它在bob smith
和andy jones
上失败。如何修改代码来验证带空格的字符串?
感谢一如既往,
更不用说显而易见的SQL注入。 – Iraklis 2013-03-02 12:38:32
当使用自己的活动记录时,CI转义SQL注入。 – 2013-03-02 12:41:31
我的错误,我在考虑不验证用户输入,因为他没有使用表单验证类。 – Iraklis 2013-03-02 12:46:32