Maison > développement back-end > tutoriel php > Page d'inscription Web Vérification de correspondance dynamique Vérification de l'utilisateur Implémentation PHP

Page d'inscription Web Vérification de correspondance dynamique Vérification de l'utilisateur Implémentation PHP

不言
Libérer: 2023-03-29 22:38:01
original
1645 Les gens l'ont consulté

Cet article présente principalement l'implémentation PHP de la vérification des utilisateurs pour la vérification dynamique des pages d'inscription Web. Il a une certaine valeur de référence. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer

Obligatoire. connaissances : 1.connexion à la base de données php

2. correspondance d'expressions régulières php

3.ajax --

  • Bases HTML et CSS

  • Fondation JavaScript

1 :

Créer la zone de saisie :

<input name="username" type="text" class="form-control" id="contact_username" onkeyup="loadXMLDoc(this.value)" placeholder="用户名" required/>
            <span id="txtHint"></span>
Copier après la connexion
2 :

js implémente l'effet d'invite : (texte original de : cliquez pour ouvrir le lien)

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();
}
Copier après la connexion
3 :

le code php implémente la vérification dynamique : (la vérification est défectueuse car il a été écrit par moi-même, Il y a beaucoup d'endroits qui ne sont pas parfaits, je vais continuer à m'améliorer)

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

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

Il est entièrement basé sur mon propre compréhension et mon expression et explication orales, qui ne sont pas assez professionnelles ou standard, veuillez signaler s'il y a des erreurs : QQ363491343

Explication : Lorsque nous saisissons le nom d'utilisateur à enregistrer dans la saisie du nom d'utilisateur. case, la fonction

appelle la méthode loadXMLDoc() (voir étape 2) pour effectuer une vérification dynamique pertinente (voir cliquez pour ouvrir le lien pour plus de détails)


Explication du code php :

1.

$v=trim($_GET[&#39;v&#39;]);
Copier après la connexion
Utilisé pour obtenir le nom d'utilisateur saisi dynamiquement par l'utilisateur

2.

if (strlen($v) > 0)
Copier après la connexion
Le nom d'utilisateur saisi par l'utilisateur doit être supérieur à 0 c'est le plus basique.

3.

if(preg_match("/^[a-z]/",$v)){
Copier après la connexion
Ensuite, j'ai stipulé que le nom d'utilisateur doit commencer par une lettre et n'est pas sensible à la casse

4.

C'est-à-dire que je veux que le nom d'utilisateur comporte au moins 5 caractères ;

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); //关闭数据库连接
Copier après la connexion
Cette partie est lorsque tous les éléments ci-dessus sont satisfaits, effectuez une recherche dynamique dans le base de données pour voir si l'utilisateur existe déjà.

6.

if ($hint == ""){    
$response="";
}else{    
$response=$hint;}//打印返回echo $response;
Copier après la connexion
La sortie finale renvoie le contenu à afficher

J'ai vérifié ici que la sortie d'écho en PHP est le contenu renvoyé ;

Si php a un message d'avertissement ou si une erreur se produit, il sera renvoyé au front-end.

Si vous apprenez bien ajax, alors le code suivant sera facile à comprendre :

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

        }
    }
Copier après la connexion


Eh bien, ce qui précède est le compte utilisateur que j'ai écrit Obtenir des effets de vérification dynamiques via le serveur, c'est aussi apprendre et faire. J'espère que cela pourra aider les étudiants novices comme moi.

Si quelqu'un est ici, vous êtes invités à signaler les erreurs et les lacunes.

Page dinscription Web Vérification de correspondance dynamique Vérification de lutilisateur Implémentation PHP

-----Contenu nouvellement ajouté :

当焦点离开输入框,隐藏提示信息
Copier après la connexion
   //当焦点离开输入框,隐藏提示信息function upperCase(){
    document.getElementById("txtHint").innerHTML="";}
Copier après la connexion
à l'intérieur de

<input name="username" type="text" class="form-control" id="contact_username" onkeyup="loadXMLDoc(this.value)" onblur="upperCase()" placeholder="用户名" required/><span id="txtHint"></span>
Copier après la connexion
Ajouter le même événement onblur

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal