Web-Registrierungsseite, dynamische Matching-Überprüfung, Benutzerüberprüfung, PHP-Implementierung

不言
Freigeben: 2023-03-29 22:38:01
Original
1622 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich die PHP-Implementierung der Benutzerüberprüfung für die dynamische Übereinstimmungsüberprüfung von Webregistrierungsseiten vor. Jetzt kann ich ihn mit allen teilen, die ihn benötigen.

Erforderlich Kenntnisse: 1.php-Datenbankverbindung

2.php-Abgleich regulärer Ausdrücke

3.ajax --

  • HTML- und CSS-Grundlagen

  • JavaScript-Grundlagen

1:

Erstellen Sie das Eingabefeld:

<input name="username" type="text" class="form-control" id="contact_username" onkeyup="loadXMLDoc(this.value)" placeholder="用户名" required/>
            <span id="txtHint"></span>
Nach dem Login kopieren

2:

js implementiert Prompt-Effekt: (Originaltext von: Klicken Sie hier, um den Link zu öffnen)

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();
}
Nach dem Login kopieren

3:

PHP-Code implementiert dynamische Überprüfung: (Die Überprüfung ist fehlerhaft, da sie geschrieben wurde von Ich selbst, und es gibt viele Stellen, die nicht korrekt sind. Perfekt, ich werde mich weiter verbessern)

<?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;

?>
Nach dem Login kopieren
更新:(2018年6月5日14:31:00)
Nach dem Login kopieren
//判断输入的账账号长度是否大于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 = "必须以字母开头!";    
}
}
Nach dem Login kopieren

4:

Es basiert vollständig auf meinem eigenen Verständnis und meinem mündlichen Ausdruck und meiner Erklärung nicht professionell oder standardisiert genug ist, weisen Sie bitte darauf hin: QQ363491343

Erklärung: Wenn wir den zu registrierenden Benutzernamen in das Eingabefeld für den Benutzernamen eingeben, wird das

angezeigt Die

-Funktion ruft die Methode „loadXMLDoc()“ auf (siehe Schritt 2), um eine relevante dynamische Überprüfung durchzuführen (zur Einführung klicken Sie bitte, um den Link zu öffnen)


Erklärung des PHP-Codes:

1.

$v=trim($_GET[&#39;v&#39;]);
Nach dem Login kopieren

wird verwendet, um den Benutzernamen für die dynamische Eingabe zu erhalten.

2.

if (strlen($v) > 0)
Nach dem Login kopieren

Der vom Benutzer eingegebene Benutzername muss verwendet werden größer als 0 sein; dies ist das grundlegendste.

3.

if(preg_match("/^[a-z]/",$v)){
Nach dem Login kopieren

Dann habe ich festgelegt, dass der Benutzername mit einem Buchstaben beginnen muss und die Groß-/Kleinschreibung nicht beachtet werden muss

4.

Das ist was ich will Der Benutzername muss mindestens 5 Zeichen lang sein;

5.

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); //关闭数据库连接
Nach dem Login kopieren

Dieser Teil ist, wenn alle oben genannten Punkte erfüllt sind, dynamisch in der Datenbank suchen, um ihn anzuzeigen wenn der Benutzer bereits existiert.

6.

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

Die endgültige Ausgabe gibt den anzuzeigenden Inhalt zurück.

Ich habe hier überprüft, dass die Echo-Ausgabe in PHP der zurückgegebene Inhalt ist.

Wenn PHP eine Warnmeldung hat oder ein Fehler auftritt, wird diese an das Frontend zurückgegeben.

Wenn Sie Ajax gut lernen, ist der folgende Code leicht zu verstehen:

xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            //responseText	获得字符串形式的响应数据。
            document.getElementById("txtHint").innerHTML=xmlhttp.responseText;

        }
    }
Nach dem Login kopieren


Nun, das oben genannte ist das Benutzerkonto, an das ich selbst geschrieben habe Durchlaufen des Servers Das Erreichen dynamischer Verifizierungseffekte ist auch eine Frage des Lernens und Handelns. Ich hoffe, dass es Anfängern wie mir helfen kann.

Wenn jemand hier ist, bitte auf Fehler und Mängel hinweisen.

Web-Registrierungsseite, dynamische Matching-Überprüfung, Benutzerüberprüfung, PHP-Implementierung

-----Neu hinzugefügter Inhalt:

当焦点离开输入框,隐藏提示信息
Nach dem Login kopieren
   //当焦点离开输入框,隐藏提示信息function upperCase(){
    document.getElementById("txtHint").innerHTML="";}
Nach dem Login kopieren

Fügen Sie ein Onblur-Ereignis in

<input name="username" type="text" class="form-control" id="contact_username" onkeyup="loadXMLDoc(this.value)" onblur="upperCase()" placeholder="用户名" required/><span id="txtHint"></span>
Nach dem Login kopieren

hinzu

Das obige ist der detaillierte Inhalt vonWeb-Registrierungsseite, dynamische Matching-Überprüfung, Benutzerüberprüfung, PHP-Implementierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage