Javascript 如何发送一条消息,该消息的字符数为php-ajax

Javascript 如何发送一条消息,该消息的字符数为php-ajax,javascript,php,html,ajax,Javascript,Php,Html,Ajax,其原理是,php脚本验证两个密码是否相同,然后计算字符数,然后返回一条包含数字的消息 我的html代码 <fieldset class="appel"> <input id="premier_champ_password" type="password" /> <input id="second_champ_password" type="password" /> <input type="button"

其原理是,php脚本验证两个密码是否相同,然后计算字符数,然后返回一条包含数字的消息 我的html代码

<fieldset class="appel">
        <input id="premier_champ_password" type="password" />
        <input id="second_champ_password" type="password" />
        <input type="button" id="bouton_secrets" value="Vérifier les mots de passe"/>
        <br />
        <br />
        <fieldset class="retour">
            <legend>Contenu du fichier</legend>
            <div id="retour_secrets"></div>
        </fieldset>
    </fieldset>

var bouton6=document.getElementById('bouton_secrets');
bouton5.addEventListener('click', appel_contenue_secret);
我的PHP代码

我想要脚本:chek如果passeword是相同的 计算密码中的字符数 根据输出中的以下原则返回一条消息,告知密码的难度:id=retour\u secret 1至6个字符:“不可通行” 7至12个字符:“Mot de passe moyen” 从13个字符开始:“复杂的历史”


我不确定什么不适合您的代码,因为您没有指定您遇到的问题,但有两个常规注意事项:

  • 使用PHP框架。我强烈推荐拉威尔。它功能强大,学习曲线简单。它具有表单的内置密码确认验证

  • 我建议使用jQuery发送Ajax请求。语法很容易学习,并且使过程非常简单

  • 使用这两种方法将大大减少代码中的bug,因为它们为您做了大量工作。

    试试这个

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <title>Ajax Example</title>
    <meta charset="utf-8">
    
    <script>
    
    function appel_contenue_secret(){
    
       var cM = new XMLHttpRequest();
            cM.open("POST","secrets.php",true);
            cM.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        var passeword = document.getElementById('premier_champ_password').value;
        var verif_passeword = document.getElementById('second_champ_password').value;
        var retour_solutions = document.getElementById('retour_solutions');
            cM.send("passeword1="+passeword+"&passeword2="+verif_passeword);
            cM.onreadystatechange = function (){
        if (cM.readyState == 4 && cM.status == 200)
            {
                retour_solutions.innerHTML=cM.responseText;
            }
        }
    }
    
    </script>
    </head>
    
    <body>
    
    <fieldset class="appel">
        <input id="premier_champ_password" type="password" />
        <input id="second_champ_password" type="password" />
        <input type="button" id="bouton_secrets" value="Vérifier les mots de passe" onClick="appel_contenue_secret();"/>
        <br />
        <br />
        <fieldset class="retour">
            <legend>Contenu du fichier</legend>
            <div id="retour_secrets"></div>
        </fieldset>
        <span id="retour_solutions"></span>
    </fieldset>
    </body>
    </html>
    
    
    Ajax示例
    函数appel\u contenue\u secret(){
    var cM=新的XMLHttpRequest();
    打开(“POST”,“secrets.php”,true);
    cM.setRequestHeader(“内容类型”、“应用程序/x-www-form-urlencoded”);
    var passeword=document.getElementById('premier\u champ\u password')。值;
    var verif_passeword=document.getElementById('second_champ_password')。值;
    var retour_solutions=document.getElementById('retour_solutions');
    cM.发送(“passeword1=“+passeword+”&passeword2=“+verif_passeword”);
    cM.onreadystatechange=函数(){
    如果(cM.readyState==4&&cM.status==200)
    {
    retour_solutions.innerHTML=cM.responseText;
    }
    }
    }
    

    费希尔伯爵酒店
    PHP


    那么你尝试过的东西有什么不起作用呢?是的,我尝试过,当我点击时,它不起作用word@sidi再一次。。什么不起作用?你有错误吗?你检查控制台了吗?没有给我任何错误@meda@sidi您是否正确复制了所有代码?我得到了输出。你的答案是有效的,但是,OP(可能)在某些情况下没有得到任何输出的原因是,如果输入的密码是7个字符长,它不会显示任何内容,因此
    必须是
    =
    ,除了最后一个。@sidi是的,我更改了。您的PHP代码中有错误。@JensonMJohn回想起来,
    否则如果($nbre>=7&&$nbre=7
    应该是
    >7
    ,因为另一个
    @JensonMJohn感谢您,我尝试了它,但仍然没有输出,我想我的ajax函数中可能有错误
    
    <?php 
    $passeword = trim($_POST["passeword1"]);
    $verif_passeword =trim($_POST["passeword2"]);
    if ($passeword==$verif_passeword)
    {$nbre = strlen($passeword);
    if (1 < $nbre < 7) echo "Mot de passe faible";
    else if (7 < $nbre < 12) echo "Mot de passe moyen";
    else if ($nbre > 12) echo "Mot de passe complexe";}?>
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <title>Ajax Example</title>
    <meta charset="utf-8">
    
    <script>
    
    function appel_contenue_secret(){
    
       var cM = new XMLHttpRequest();
            cM.open("POST","secrets.php",true);
            cM.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        var passeword = document.getElementById('premier_champ_password').value;
        var verif_passeword = document.getElementById('second_champ_password').value;
        var retour_solutions = document.getElementById('retour_solutions');
            cM.send("passeword1="+passeword+"&passeword2="+verif_passeword);
            cM.onreadystatechange = function (){
        if (cM.readyState == 4 && cM.status == 200)
            {
                retour_solutions.innerHTML=cM.responseText;
            }
        }
    }
    
    </script>
    </head>
    
    <body>
    
    <fieldset class="appel">
        <input id="premier_champ_password" type="password" />
        <input id="second_champ_password" type="password" />
        <input type="button" id="bouton_secrets" value="Vérifier les mots de passe" onClick="appel_contenue_secret();"/>
        <br />
        <br />
        <fieldset class="retour">
            <legend>Contenu du fichier</legend>
            <div id="retour_secrets"></div>
        </fieldset>
        <span id="retour_solutions"></span>
    </fieldset>
    </body>
    </html>
    
    <?php 
    
    $passeword = trim($_POST["passeword1"]);
    $verif_passeword =trim($_POST["passeword2"]);
    if ($passeword==$verif_passeword)
    {
    $nbre = strlen($passeword);
    
    if ($nbre>=1 &&  $nbre<=7) echo "Mot de passe faible";
    else if ($nbre>7 && $nbre<=12) echo "Mot de passe moyen";
    else if ($nbre > 12) echo "Mot de passe complexe";
    
    }
    else
    {
     echo "Passowrds didn't match!";
    } 
    
    ?>