次のコードを使用して、データベースにユーザー名が既に存在するかどうかを確認します。私はjqueryバリデーターを使用しており、スクリプトを次のように構成しています。
$(document).ready(function(){
// Validate
// http://bassistance.de/jquery-plugins/jquery-plugin-validation/
// http://docs.jquery.com/Plugins/Validation/
// http://docs.jquery.com/Plugins/Validation/validate#toptions
$('#profile').validate({
rules: {
name: {
minlength: 2,
required: true
},
username: {
minlength: 2,
required: true,
remote: "../check-username.php"
}
},
highlight: function(element) {
$(element).closest('.control-group').removeClass('success').addClass('error');
},
success: function(element) {
element
.text('OK!').addClass('valid')
.closest('.control-group').removeClass('error').addClass('success');
}
});
});
ここで、check-username.php は次のように定義されます。
<?php
require_once('connection.php');
$check = "true";
$request = trim(strtolower($_REQUEST['username']));
mysql_select_db($dbname, $temp);
$query_username=sprintf("SELECT * FROM users WHERE username = '$request'");
$resultUsers = mysql_query($query_username, $temp) or die(mysql_error());
$usernameFound= mysql_num_rows($resultUsers);
if ($usernameFound> 0) {
$check = "false";
}
header("Content-type: application/json; charset=windows-1251");
$result = $_REQUEST['username'].'('.$check.')';
echo $result;
?>
既存のユーザー名の認識を除いて、すべてうまくいきます。多分何かが間違っています:
remote: "../check-username.php"
またはphpファイル自体で。
誰かが私を助けることができますか?
編集1:
@MHR コードを試すと、次のようになります。
この場合、「user1」はデータベースに既に存在します。これは良いことですが、出力が入力の下に書き込まれるのは望ましくありません。