ユーザーIDが登録済みかどうかチェックする。
uidの確認ボタンでデータベースに登録されているかチェックします。
未登録の場合登録ボタンが有効になり、登録済みの場合登録ボタンは無効になります。
このプログラムだと登録ボタンを押した後にもう一度uidが登録済みでないかどうかチェックしないとだめです。
一度未登録のuidを確認した後にuid入力欄に変更を加えると
変更後のuidが未登録かどうかチェックしていないのに登録ボタンが有効のままです。
サンプルURL
http://kimson.name/memo/uidCheck/
——————————————————————————————————————–
=======================================
データベース(ユーザーIDを格納している)の内容。
sample_uid_check テーブル
=======================================
+——+
| uid |
+——+
| nic |
| kim |
| uid |
| uid2 |
+——+
=========================================
htmlソース index.html
=========================================
Sample ユーザーIDが登録済みかどうかチェック
============================================
javascriptソース ./js/checkUid.js
============================================
// JavaScript Document
function checkUid(){
document.getElementById(”form1″).submit.disabled = true;
//formの内容を取得
var tmp_uid = document.getElementById(”form1″).uid.value;
//問い合わせ
var request = creatHttpReq();
request.open(”GET”, “./lib/checkUid.php?uid=”+tmp_uid);
request.onreadystatechange = function() {
if(request.readyState == 4 && request.status == 200){
if(request.responseText.match(”OK”)){
document.getElementById(”form1″).submit.disabled = false;
}
}
}
request.send(”");
}
//クロスブラウザ用XlHttpRequestオブジェクト生成関数
function creatHttpReq(){
if(window.XMLHttpRequest){
return new XMLHttpRequest();
}else if(window.ActiveXOvject){
try{
return new ActiveXObject(”Msxml2.XMLHTTP”);
}catch(e){
try{
return new ActiveXObject(”Microsoft.XMLHTTP”);
}catch(e2){
return null;
}
}
}else{
return null;
}
}
=================================================
phpソース ./lib/checkUid.php ./lib/db_lib.php
=================================================
require(’db_lib.php’);
extract($_GET);
//文字数チェック
if(strlen($uid) < 2){
echo “NO”;
exit();
}
//半角英数かチェック
if(!preg_match(”/^[a-zA-Z0-9]+$/”, $str)){
echo “NO”;
exit();
}
//データベースへ接続(./lib/db_lib.php)
$db = connect_db();
//sqlインジェクション対策
$uid = mysql_real_escape_string($uid);
$sql = “select count(*) from sample_check_uid where uid = ‘”.$uid.”‘;”;
$result = mysql_query($sql)
or exit(”db error”.mysql_error());
$row = mysql_fetch_assoc($result);
if($row['count(*)'] == 0){
echo “OK”;
}else{
echo “NO”;
}
?>
//db_lib.php
function connect_db()
{
$db_name = ‘db_name’;//データベース名
$sql_id->host = ‘db_hostname’;//データベースのホスト名
$sql_id->uid = ‘db_uid’;//データベースへ接続するユーザーID
$sql_id->pass = ‘db_password’;//データベースへ接続するパスワード
//DBへ接続
$db = mysql_connect($sql_id->host, $sql_id->uid, $sql_id->pass)
or exit(”Could not connect”);
//DBの選択
mysql_select_db($db_name)
or exit(”Could not select database”);
return $db;
}
function close_db($db)
{
mysql_close($db);
}
?>

0 Responses
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.