史上最も強力な ASP+ajax 登録インスタント プロンプト プログラムは、通常、登録を必要とするユーザーが参照する前に問題を検出するために使用されます。 1. 登録時にデータベースのユーザー名が存在するかどうかを確認します。
2. パスワードを入力すると、パスワードの強度を尋ねられ、2 回入力したパスワードが同じかどうかを確認します。
3. 登録時にデータベースの連絡先電子メールが存在するかどうかを確認します。
4. 登録時に、ユーザーが入力した確認コードがシステムによって生成された確認コードと一致するかどうかを確認します。
5.中国語入力を確認する
6. QQ番号の確認
7. ID番号の確認
次のようにコードをコピーします。
<!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>
<html xmlns=http://www.w3.org/1999/xhtml>
<頭>
<meta http-equiv=Content-Type content=text/html;
<meta name=copyright content=Copyright 2008-2009 bbmoo.com All Rights Reserved/>
<title>http://www.51weidi.com—メンバー登録</title>
<script language=javascript src=regin.js type=text/javascript></script>
<スタイルタイプ=テキスト/css>
.tr,td{
行の高さ:25px;
フォントサイズ:14px;
カラー:#333;
}
.msg{ カラー:#FF3300}
.msg2{ カラー: #006600}
.reg_title{
テキストインデント:20px;
フォントの太さ:太字;
}
.STYLE1 {カラー: #FF3300; フォントの太さ:太字;}
</スタイル>
<本文>
<フォームアクション=reg.aspメソッド=投稿名=form2>
<テーブル幅=100% ボーダー=0 セルスペース=1 セルパディング=1>
<tr>
<td Colspan=4 class=reg_title>ユーザー登録、必須情報</td>
</tr>
<tr>
<td width=14% align=right>ユーザー名:</td>
<td width=12%><input name=u_name id=u_name type=text maxlength=10 onblur=isName() /></td>
<td width=2%><span class=STYLE1 id=name_re>*</span></td>
<td width=72% id=name_re_m>4~10 文字、漢字ごとに 2 文字</td>
</tr>
<tr>
<td align=right>性別:</td>
<td><input type=radio name=u_sex value=男性/>男性<input type=radio name=u_sex value=女性/>女性<input type=radio name=u_sex value=Shemale/>Shemale</td>
<td><span class=STYLE1 id=sex_re>*</span></td>
<td id=sex_re_m>自分で見て選んでください</td>
</tr>
<tr>
<td align=right>ログインパスワード:</td>
<td><input name=u_pass id=u_pass type=password maxlength=12 onblur=password() onkeyup=showStrongPic();/></td>
<td><span class=STYLE1 id=pass_re>*</span></td>
<td><span id=lowPic style=display: ><img src=images/gread_l_x.gif /></span>
<span id=midPic style=display:none><img src=images/gread_m_x.gif /></span>
<span id=highPic style=display:none><img src=images/gread_h_x.gif /></span></td>
</tr>
<tr>
<td align=right>パスワードの確認:</td>
<td><input name=u_pass_re id=u_pass_re type=password maxlength=12 onblur=pass_re() /></td>
<td><span class=STYLE1 id=pass_re_re>*</span></td>
<td id=pass_re_re_m>パスワードをもう一度入力してください</td>
</tr>
<tr>
<td align=right>セキュリティの問題:</td>
<td><select name=u_ask>
<option value=私の本名>私の本名</option>
<option value=ID カードの下 6 桁>ID カードの下 6 桁</option>
<option value=高校のクラスの先生の名前>高校のクラスの先生の名前</option>
<option value=私の好きな色>私の好きな色</option>
<option value=自宅の郵便番号番号>自宅の郵便番号番号</option>
</select> </td>
<td><span class=STYLE1>*</span></td>
<td>よくある質問を選択してください</td>
</tr>
<tr>
<td align=right>安全な答え:</td>
<td><input name=u_answer id=u_answer type=text maxlength=20 onblur=answer() /></td>
<td><span class=STYLE1 id=answer_re>*</span></td>
<td id=answer_re_m>パスワードを取得するときに使用される上記の質問への回答</td>
</tr>
<tr>
<td align=right>メールアドレス:</td>
<td><input name=u_mail id=u_mail type=text maxlength=20 onblur=isEmail() /></td>
<td><span class=STYLE1 id=mail_re>*</span></td>
<td id=mail_re_m> パスワードの取得および変更時に使用します。パスワードを正しく入力してください。形式:[email protected] </td>
</tr>
<tr>
<td align=right>確認コード:</td>
<td><input name=CheckCode type=text id=CheckCode size=4 maxlength=4 onblur=isCheckCode()><img src=Code.asp onclick=this.src = this.src+'?'+Math.random( );</td>
<td><span class=STYLE1 id=CheckCode_re>*</span></td>
<td id=CheckCode_re_m>正しい確認コードを入力してください</td>
</tr>
<tr>
<td Colspan=4 class=reg_title>その他の情報はオプションですが、完全に入力することをお勧めします</td>
</tr>
<tr>
<td align=right>本名:</td>
<td><input name=u_name_zs id=u_name_zs type=text maxlength=4 onblur=name_zs() /></td>
<td><span class=STYLE1 id=name_zs_re></span></td>
<td id=name_zs_re_m>ポイントを引き換えるときに使用します。正しく入力してください。</td>
</tr>
<tr>
<td align=right><p>QQ に問い合わせる: </p> </td>
<td><input name=u_qq id=u_qq type=text maxlength=11 onkeyup=value=value.replace(/[^/d]/g,'') onbeforepaste=clipboardData.setData('text',clipboardData.getData ('text').replace(/[^/d]/g,'')) onblur=qq() /></td>
<td><span class=STYLE1 id=qq_re></span></td>
<td id=qq_re_m>連絡をスムーズに行うため、正確に記入してください</td>
</tr>
<tr>
<td align=right>Alipay 番号:</td>
<td><input name=u_alipay id=u_alipay type=text maxlength=20 onblur=alipay() /></td>
<td><span class=STYLE1 id=alipay_re></span></td>
<td id=alipay_re_m>ポイントを引き換えるときに使用します。正しく入力し、この番号に関連付けられた名前が上記のものと一致していることを確認してください。</td>
</tr>
<tr>
<td align=right>ID 番号:</td>
<td><input name=u_nunber id=u_nunber type=text maxlength=18 onkeyup=nunber() /></td>
<td><span class=STYLE1 id=nunber_re></span></td>
<td id=nunber_re_m>特別な状況で使用する必要があるため、記入することをお勧めします</td>
</tr>
<tr>
<td align=right> </td>
<td align=center><input type=button onclick=tijiao() name=送信 value=登録の確認/></td>
<td> </td>
<td> </td>
</tr>
</テーブル>
</form>
</body></html>
regin.jsのコードは次のとおりです
//ajaxオブジェクトを作成する
var name_re = false;
関数名_xml()
{
試す {
name_re = 新しい XMLHttpRequest();
キャッチ (trymicrosoft) {
試す {
name_re = 新しい ActiveXObject(Msxml2.XMLHTTP);
} キャッチ (その他マイクロソフト) {
試す {
name_re = 新しい ActiveXObject(Microsoft.XMLHTTP);
} キャッチ (失敗) {
名前_re = false;
}
}
}
if (!name_re)
alert(XMLHttpRequest の初期化中にエラーが発生しました!);
}
変数名_使用;
var mail_use;
//ajax パスワード強度の検証
関数 allNumber(v)
{
var reg = /^[0-9]*$/;
if(reg.test(v))
{
true を返します。
}
false を返します。
}
関数 CharMode(iN){
if(iN>=48 && iN<=57)//数値
1 を返します。
if(iN>=65 && iN<=90)//大文字
2を返します。
if(iN>=97 && iN<=122)//小文字
4 を返します。
それ以外
return 8;//特殊文字
}
//現在のパスワードにモードがいくつあるかを計算します
関数 bitTotal(num){
var モード = 0;
for(i=0;i<4;i++){
if(数値&1)
モード++;
数値>>=1;
}
戻りモード。
}
//パスワードの強度レベルを返す
関数 checkStrong(sPW){
if(sPW.length<6)
return 0; //パスワードが短すぎます
varModes=0;
for(i=0;i<sPW.length;i++){
//各文字のカテゴリをテストし、パターンが何個あるかを数えます。
モード|=CharMode(sPW.charCodeAt(i));
}
// アラート(bitTotal(Modes));
bitTotal(モード)を返します。
}
関数 showStrongPic()
{
var v = document.getElementById('u_pass').value;
var m = checkStrong(v);
if(m < 2)
{
document.getElementById('lowPic').style.display=;
document.getElementById('midPic').style.display=none;
document.getElementById('highPic').style.display=none;
}
else if(m==2)
{
document.getElementById('lowPic').style.display=none;
document.getElementById('midPic').style.display=;
document.getElementById('highPic').style.display=none;
}
それ以外
{
document.getElementById('lowPic').style.display=none;
document.getElementById('midPic').style.display=none;
document.getElementById('highPic').style.display=;
}
}
//ajax 検証コードの検証
関数 isCheckCode(){
var CheckCode = document.getElementById('CheckCode').value;
if (CheckCode==){
document.getElementById('CheckCode_re').innerHTML='<img src=check_error.gif>';
document.getElementById('CheckCode_re_m').innerHTML='<span class=msg>確認コードを空にすることはできません。 </span>';
false を返します。
}それ以外{
コード_ajax(チェックコード)
}
}
関数 Code_ajax(CheckCode){
var コード=チェックコード;
var url=code_ajax.asp?Code=+escape(コード);
name_xml();
name_re.open(GET, URL, true);
name_re.setRequestHeader(コンテンツタイプ,テキスト/xml);
name_re.onreadystatechange = コード_リクエスト;
name_re.setRequestHeader(If-Modified-Since,0);
name_re.send(null);
}
関数 Code_requst(){
if(name_re.readyState==4 && name_re.status==200)//リターン完了
{
var msg=name_re.responseText;
if (msg==yes){
document.getElementById('CheckCode_re').innerHTML='<img src=check_error.gif>';
document.getElementById('CheckCode_re_m').innerHTML='<span class=msg>確認コード エラー! </span>';
コード_メッセージ(0);
false を返します。
}
それ以外{
document.getElementById('CheckCode_re').innerHTML='<img src=check_right.gif>';
document.getElementById('CheckCode_re_m').innerHTML='<span class=msg2>入力は正しいです。 </span>';
コード_メッセージ(1);
true を返します。
}
}
}
関数コード_msg(n){
変数n=n;
if(n==0){
コード使用 = true;
}
それ以外{
コード使用 = false;
}
}
//ajax ユーザー名の検証
関数 isName(){
var u_name = document.getElementById('u_name').value;
if (u_name==){
document.getElementById('name_re').innerHTML='<img src=check_error.gif>';
document.getElementById('name_re_m').innerHTML='<span class=msg>ユーザー名は空にすることはできません。4 ~ 10 文字</span>';
false を返します。
}それ以外{
user_ajax(u_name)
}
}
関数 user_ajax(u_name){
変数名=u_name;
var url=ajax.asp?action=names&name=+escape(name);
name_xml();
name_re.open(GET, URL, true);
name_re.setRequestHeader(コンテンツタイプ,テキスト/xml);
name_re.onreadystatechange = name_requst;
name_re.setRequestHeader(If-Modified-Since,0);
name_re.send(null);
}
関数名_requst(){
if(name_re.readyState==4 && name_re.status==200)//リターン完了
{
var msg=name_re.responseText;
if (msg==yes){
document.getElementById('name_re').innerHTML='<img src=check_error.gif>';
document.getElementById('name_re_m').innerHTML='<span class=msg>ユーザー名はすでに存在します。 </span>';
名前_メッセージ(0);
false を返します。
}
それ以外{
document.getElementById('name_re').innerHTML='<img src=check_right.gif>';
document.getElementById('name_re_m').innerHTML='<span class=msg2>登録できます! </span>';
名前_メッセージ(1);
true を返します。
}
}
}
関数名_msg(n){
変数n=n;
if(n==0){
名前の使用 = true;
}
それ以外{
名前の使用=false;
}
}
//性別選択の検出
関数セックス(){
if(document.form2.u_sex[0].checked==false && document.form2.u_sex[1].checked==false && document.form2.u_sex[2].checked==false) {
document.getElementById('sex_re').innerHTML='<img src=check_error.gif>';
document.getElementById('sex_re_m').innerHTML='<span class=msg>性別が選択されていません</span>';
false を返します。
}
それ以外{
document.getElementById('sex_re').innerHTML='<img src=check_right.gif>';
document.getElementById('sex_re_m').innerHTML='<span class=msg2>選択済み</span>';
true を返します。
}
}
//パスワードが空かどうかを検出する
関数パスワード(){
var u_pass = document.getElementById('u_pass').value;
if(u_pass== || u_pass.length<6){
document.getElementById('pass_re').innerHTML='<img src=check_error.gif>';
false を返します。
}
それ以外{
document.getElementById('pass_re').innerHTML='<img src=check_right.gif>';
true を返します。
}
}
//パスワード検出の確認
関数 pass_re(){
var u_pass=document.getElementById('u_pass').value;
var pass_re=document.getElementById('u_pass_re').value;
if(u_pass != pass_re){
document.getElementById('pass_re_re').innerHTML='<img src=check_error.gif>';
document.getElementById('pass_re_re_m').innerHTML='<span class=msg>2 つのパスワードが一致しません。再入力してください</span>';
false を返します。
}
それ以外{
document.getElementById('pass_re_re').innerHTML='<img src=check_right.gif>';
document.getElementById('pass_re_re_m').innerHTML='<span class=msg2>正しく入力してください</span>';
true を返します。
}
}
//パスワード保護の問題の検出
関数answer(){
var u_answer=document.getElementById('u_answer').value;
if(u_answer==){
document.getElementById('answer_re').innerHTML='<img src=check_error.gif>';
document.getElementById('answer_re_m').innerHTML='<span class=msg>質問の答えを入力してください</span>';
false を返します。
}
それ以外{
document.getElementById('answer_re').innerHTML='<img src=check_right.gif>';
document.getElementById('answer_re_m').innerHTML='<span class=msg2>正しく入力してください</span>';
true を返します。
}
}
//メール形式の検証
関数 isEmail() {
var u_mail=document.getElementById('u_mail').value;
if (u_mail.search(/^/w+((-/w+)|(/./w+))*/@[A-Za-z0-9]+((/.|-)[A-Za-z0 -9]+)*/.[A-Za-z0-9]+$/) != -1){
email_ajax(u_mail);
}
それ以外{
document.getElementById('mail_re').innerHTML='<img src=check_error.gif>';
document.getElementById('mail_re_m').innerHTML='<span class=msg>正しい電子メール アドレスを次の形式で入力してください: [email protected]</span>';
false を返します。
}
}
関数 email_ajax(u_mail){
var email=u_mail;
var url=ajax.asp?action=email&mail=+escape(email);
name_xml();
name_re.open(GET, URL, true);
name_re.setRequestHeader(コンテンツタイプ,テキスト/xml);
name_re.onreadystatechange = mail_requst;
name_re.setRequestHeader(If-Modified-Since,0);
name_re.send(null);
}
関数 mail_requst(){
if(name_re.readyState==4 && name_re.status==200)//リターン完了
{
var msg=name_re.responseText;
if (msg==yes){
document.getElementById('mail_re').innerHTML='<img src=check_error.gif>';
document.getElementById('mail_re_m').innerHTML='<span class=msg>このメール アドレスはすでに使用されています。変更してください</span>';
メール_メッセージ(0);
false を返します。
}
それ以外{
document.getElementById('mail_re').innerHTML='<img src=check_right.gif>';
document.getElementById('mail_re_m').innerHTML='<span class=msg2>使用できます</span>';
メール_メッセージ(1);
true を返します。
}
}
}
関数 mail_msg(n){
変数n=n;
if(n==0){
メール使用 = true;
}
それ以外{
mail_use=false;
}
}
//実名検出
関数名_zs(){
var name_zs=document.getElementById('u_name_zs').value;
if (name_zs != name_zs.replace(/[^/u4E00-/u9FA5]/g,'')|| name_zs== || name_zs.length<2){
document.getElementById('name_zs_re').innerHTML='<img src=check_error.gif>';
document.getElementById('name_zs_re_m').innerHTML='<span class=msg>実際の中国語名を入力してください</span>';
false を返します。
}
それ以外{
document.getElementById('name_zs_re').innerHTML='<img src=check_right.gif>';
document.getElementById('name_zs_re_m').innerHTML='<span class=msg2>正しく入力してください</span>';
true を返します。
}
}
//QQ番号検出
関数 qq(){
var qq=document.getElementById('u_qq').value;
if(qq== || qq.length<5){
document.getElementById('qq_re').innerHTML='<img src=check_error.gif>';
document.getElementById('qq_re_m').innerHTML='<span class=msg>正しい QQ は 5 ~ 10 桁です</span>';
false を返します。
}
それ以外{
document.getElementById('qq_re').innerHTML='<img src=check_right.gif>';
document.getElementById('qq_re_m').innerHTML='<span class=msg2>正しく入力してください</span>';
true を返します。
}
}
// Alipay アカウントを検出する
関数alipay(){
var alipay=document.getElementById('u_alipay').value;
if (alipay.search(/^/w+((-/w+)|(/./w+))*/@[A-Za-z0-9]+((/.|-)[A-Za-z0 -9]+)*/.[A-Za-z0-9]+$/) != -1){
document.getElementById('alipay_re').innerHTML='<img src=check_right.gif>';
document.getElementById('alipay_re_m').innerHTML='<span class=msg2>正しく入力してください</span>';
true を返します。
}
それ以外{
document.getElementById('alipay_re').innerHTML='<img src=check_error.gif>';
document.getElementById('alipay_re_m').innerHTML='<span class=msg>間違った Alipay アカウント</span>';
false を返します。
}
}
//IDカード番号検出
関数番号(){
var idcard=document.getElementById('u_nunber').value;
var Errors=new Array (検証に合格しました!、ID カード番号の桁が間違っています!、生年月日が範囲外か不正な文字が含まれています!、ID カード番号検証エラー!、ID カード領域が不正です!);
変数エリア={11:北京、12:天津、13:河北、14:山西、15:内モンゴル、21:遼寧、22:吉林、23:黒龍江、31:上海、32:江蘇、33:浙江、34:安徽省、35:福建省、36:江西省、37:山東省、41:河南省、42:湖北省、43:湖南、44:広東、45:広西、46:海南、50:重慶、51:四川、52:貴州、53:雲南、54:チベット、61:陝西、62:甘粛、63:青海、64 :寧夏、65:新疆、71:台湾、81:香港、82:マカオ、91:海外}
var idcard,Y,JYM;
varS,M;
var idcard_array = 新しい Array();
idcard_array = idcard.split();
if(area[parseInt(idcard.substr(0,2))]==null)
{
document.getElementById('nunber_re').innerHTML='<img src=check_error.gif>';
document.getElementById('nunber_re_m').innerHTML=<span class=msg>+Errors[4]+</span>;
false を返します。
}
switch(idcard.length){
ケース15:
if ( (parseInt(idcard.substr(6,2))+1900) % 4 == 0 || ((parseInt(idcard.substr(6,2))+1900) % 100 == 0 && (parseInt(idcard) .substr(6,2))+1900) % 4 == 0 )){
ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[ 1-2][0-9]|3[0 -1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2] [0-9]))[0-9]{3}$/;
} それ以外 {
ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[ 1-2][0-9]|3[0-1 ])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]| 2[0-8]))[0-9]{3}$/;
}
if(ereg.test(idcard)){
document.getElementById('nunber_re').innerHTML='<img src=check_right.gif>';
document.getElementById('nunber_re_m').innerHTML=<span class=msg2>+Errors[0]+</span>;
true を返します。
}
それ以外 {
document.getElementById('nunber_re').innerHTML='<img src=check_error.gif>';
document.getElementById('nunber_re_m').innerHTML=<span class=msg>+Errors[2]+</span>;
false を返します。
}
壊す;
ケース 18:
//18桁の識別番号検出
if ( parseInt(idcard.substr(6,4)) % 4 == 0 || (parseInt(idcard.substr(6,4)) % 100 == 0 && parseInt(idcard.substr(6,4))% 4 == 0 )){
ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]| [1-2][0-9]|3[0-1] )|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0- 9]))[0-9]{3}[0-9Xx]$/;
} それ以外 {
ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]| [1-2][0-9]|3[0-1]) |(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[ 0-8]))[0-9]{3}[0-9Xx]$/;
}
if(ereg.test(idcard)){
S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7
+ (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9
+ (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10
+ (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5
+ (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8
+ (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4
+ (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2
+ parseInt(idcard_array[7]) * 1
+ parseInt(idcard_array[8]) * 6
+ parseInt(idcard_array[9]) * 3;
Y = S% 11;
M = F;
JYM = 10X98765432;
M = JYM.substr(Y,1);
if(M == idcard_array[17]){
document.getElementById('nunber_re').innerHTML='<img src=check_right.gif>';
document.getElementById('nunber_re_m').innerHTML=<span class=msg2>+Errors[0]+</span>;
true を返します。
}
それ以外 {
document.getElementById('nunber_re').innerHTML='<img src=check_error.gif>';
document.getElementById('nunber_re_m').innerHTML=<span class=msg>+Errors[3]+</span>;
false を返します。
}
}
それ以外 {
document.getElementById('nunber_re').innerHTML='<img src=check_error.gif>';
document.getElementById('nunber_re_m').innerHTML=<span class=msg>+Errors[2]+</span>;
false を返します。
}
壊す;
デフォルト:
document.getElementById('nunber_re').innerHTML='<img src=check_error.gif>';
document.getElementById('nunber_re_m').innerHTML=<span class=msg>+Errors[1]+</span>;
false を返します。
}
}
//完全なフォーム送信の検証
関数 tijiao(){
if (isName()==false){
アラート(名前を空にすることはできません);
false を返します。
}
if (name_use==true){
alert(名前はすでに存在します、再入力);
false を返します。
}
if (sex()==false){
警告(性別を選択してください);
false を返します。
}
if (パスワード()==false){
アラート(パスワードを入力する必要があります);
false を返します。
}
if (pass_re()==false){
アラート(間違ったパスワードを確認);
false を返します。
}
if (answer()==false){
アラート (秘密の質問への答えを入力する必要があります);
false を返します。
}
if (isEmail()==false){
アラート(メールアドレスが空か間違っています);
false を返します。
}
if (mail_use==true){
alert(電子メールはすでに存在します。新しいものを入力してください);
false を返します。
}
if(document.getElementById('u_name_zs').value !=){
if(name_zs()==false){
警告(本名が間違っています);
false を返します。
}
}
if(document.getElementById('u_qq').value !=){
if(qq()==false){
アラート(qq 番号が間違って入力されました);
false を返します。
}
}
if (document.getElementById('u_alipay').value !=){
if(alipay()==false){
アラート(Alipayアカウントの入力が間違っています);
false を返します。
}
}
if (document.getElementById('u_nunber').value !=){
if(番号()==false){
アラート(ID番号が間違って入力されています);
false を返します。
}
}
document.form2.submit();
true を返します。
}