0

ユーザー名が mysql データベースで既に取得されているかどうかを確認しようとしていますが、機能しないようです。理想的には、フォームに入力しているときに表示されます。コードに問題は見当たらないので、どんな助けでも大歓迎です。

私のメイン ページには、jquery、javascript、および html のコードがあります。対応するページは testusername.php です。

<script type="text/javascript">
$(document).ready(function() {
$('#feedback').load('testusername.php').show();
$('#username_input').keyup(function() {
$.post('testusername.php', { username:form.username.value }, 
function(result) {
$('#feedback').html(result).show();
});
});
});
</script>

<form name='form'>
<fieldset>
<legend>Test Form</legend>
Username: <br /><input type='text' id='username_input' name='username'></input>
</fieldset>
</form>
<div id = "feedback"></div>

testusername.php は次のとおりです。

<?php 
include 'functions2.php';
?>
<?php
$username = mysql_real_escape_string($_POST['username']);
$query1a = mysql_query("SELECT * FROM users WHERE username='$username'");
$count = mysql_num_rows($query1a);
if ($count==0)
{
echo "Available";   
}
else {
echo "Username exists";
}
?>
4

1 に答える 1

1

このスクリプトは、クライアント側の部分を処理するために機能するはずです.jQueryがpafeに適切にロードされていると仮定します.

<script type="text/javascript">
$(document).ready(function() {
  $('#username_input').keyup(function() {
     $.post('testusername.php', { username: $(this).val() },function(result){
      $('#feedback').html(result).show();
     });
   });
});
</script>

サーバー側では、クエリで * を使用しないでください。また、 SQL インジェクションSELECT 1 FROM ....の犠牲者にならないようにすることもできます。

于 2012-04-29T17:48:25.350 に答える