ホームページ > バックエンド開発 > PHPチュートリアル > Web登録ページの動的マッチング検証 ユーザー検証 PHP実装

Web登録ページの動的マッチング検証 ユーザー検証 PHP実装

不言
リリース: 2023-03-29 22:38:01
オリジナル
1645 人が閲覧しました

この記事では、Web 登録ページの動的マッチング検証のための PHP 実装を主に紹介します。必要な知識があれば、それを共有します。 1. PHP データベース。 Connection

(元のテキスト:リンクをクリックする)不完全な点がたくさんあります。今後も改善していきます)

rreerreerree

4:

これは完全に私自身の理解と私自身の口頭表現と説明に基づいています。間違いがあれば指摘してください。出力: QQ363491343

説明: ユーザー名入力ボックスに登録するユーザー名を入力すると、
  • この関数は、loadXMLDoc() メソッド (ステップ 2 を参照) を呼び出して、関連する動的検証を実行します (クリックして開くを参照)詳細についてはリンクを参照してください)

  • php コードの説明:

1.

<input name="username" type="text" class="form-control" id="contact_username" onkeyup="loadXMLDoc(this.value)" placeholder="用户名" required/>
            <span id="txtHint"></span>
ログイン後にコピー

はユーザーのダイナミクスを取得するために使用されます。入力されたユーザー名

2.

function loadXMLDoc(str)
{

    if (str.length==0)
    {
        document.getElementById("txtHint").innerHTML="";
        return;
    }
    var xmlhttp;
    //检查浏览器是否支持 XMLHttpRequest 对象
    if (window.XMLHttpRequest)
    {
        // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
        xmlhttp=new XMLHttpRequest();
    }
    else
    {
        // IE6, IE5 浏览器执行代码
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            //responseText	获得字符串形式的响应数据。
            document.getElementById("txtHint").innerHTML=xmlhttp.responseText;

        }
    }
    xmlhttp.open("GET","../common/verify.php?v="+str,true);
    xmlhttp.send();
}
ログイン後にコピー

ユーザーが入力したユーザー名は 0 より大きい必要があります。 ; これは最も基本的なものです。

3.

<?php

//注册验证----------

$v=trim($_GET[&#39;v&#39;]);     //获取用户输入的账号

$hint = "";  //用作返回输出



//判断是账号还是密码,或者其他匹配

    //判断输入的账账号长度是否大于0
    if (strlen($v) > 0)
    {

        //用户验证
        //1.必须以字母开头
        if(preg_match("/^[a-z]/",$v)){
            //2.至少5个字符
            if(preg_match("/^[a-z][\w]{4}/",$v))
            {
                echo $v;
                $hint = "";  //当满足时,让它输入空 因为前面不满足赋值了
                //数据库建立连接
                require "mysqli.php";
                //数据库查询语句--查询输入的账号是否存在
                $sql="select `username` from `user` where `username`=&#39;$v&#39;";
                $result = mysqli_query($conn, $sql);
                //当mysqli_num_rows($result)> 说明查到里数据
                if(mysqli_num_rows($result) > 0){
                    $hint ="该用户已存在!";
                }else{
                    $hint = "该用户可用";
                }
                mysqli_close($conn); //关闭数据库连接
            }else{
                $hint = "至少5个字符!";
            }

        }else{
            $hint = "必须以字母开头!";
        }
    }



if ($hint == "")
{
    $response="";
}
else
{
    $response=$hint;
}
//打印返回
echo $response;

?>
ログイン後にコピー

次に、ユーザー名は文字で始まる必要があり、大文字と小文字は区別されないことを規定しました

4.

これは、ユーザー名を少なくとも5文字にする必要がある部分です

5。

更新:(2018年6月5日14:31:00)
ログイン後にコピー

つまり、上記の条件がすべて満たされると、データベース内で動的検索が実行され、ユーザーが既に存在するかどうかが確認されます。
6.

//判断输入的账账号长度是否大于0if (strlen($v) > 0) {    //用户验证    
//1.必须以字母开头    
if (preg_match("/^[a-z]/", $v)) {        
//2.至少5个字符最长不超过11个字符        
if (strlen($v) < 5 || strlen($v) > 11) {            
$hint = "至少5个字符,最长不超过11个字符!";        
} else {            
//3.模式匹配            
if (preg_match("/^[a-z][\w]{2,10}$/", $v)) {                
echo $v;                
$hint = "";  //当满足时,让它输入空 因为前面不满足赋值了                
//数据库建立连接                
require "mysqli.php";                
//数据库查询语句--查询输入的账号是否存在                
$sql = "select `username` from `user` where `username`=&#39;$v&#39;";                
$result = mysqli_query($conn, $sql);                
//当mysqli_num_rows($result)> 0 说明查到里数据                
if (mysqli_num_rows($result) > 0) {                    
$hint = "该用户已存在!";                
} else {                    
$hint = "该用户可用";                
}                
mysqli_close($conn); //关闭数据库连接            
}else {                
$hint = "用户名只能是数值,字母,下划线";            
}        
}    
} else {        
$hint = "必须以字母开头!";    
}
}
ログイン後にコピー

最終出力は、表示されるコンテンツを返します。

私自身検証しましたが、PHP のエコー出力が返されたコンテンツです。

phpに警告メッセージが出たり、エラーが発生した場合はフロントエンドに返却されます。

ajax をよく学べば、次のコードは簡単に理解できるでしょう:

$v=trim($_GET[&#39;v&#39;]);
ログイン後にコピー

さて、上記はサーバーを介して動的検証効果を実現するために私が自分で書いたユーザーアカウントです。私のような初心者のクラスメイトに役立つことを願っています。

もしここにいらっしゃる方がいらっしゃいましたら、お気軽に間違いや不足点をご指摘ください。

-----新しく追加されたコンテンツ:

if (strlen($v) > 0)
ログイン後にコピー
if(preg_match("/^[a-z]/",$v)){
ログイン後にコピー

同じonblurイベント

echo $v;$hint = "";  //当满足时,让它输入空 因为前面不满足赋值了
//数据库建立连接
require "mysqli.php";//数据库查询语句--查询输入的账号是否存在
$sql="select `username` from `user` where `username`=&#39;$v&#39;";
$result = mysqli_query($conn, $sql);//当mysqli_num_rows($result)> 说明查到里数据
if(mysqli_num_rows($result) > 0){    
$hint ="该用户已存在!";
}else{    
$hint = "该用户可用";}mysqli_close($conn); //关闭数据库连接
ログイン後にコピー
に追加します

以上がWeb登録ページの動的マッチング検証 ユーザー検証 PHP実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート