php中的忘记密码页

php中的忘记密码页,php,mysql,ajax,forgot-password,Php,Mysql,Ajax,Forgot Password,我想创建一个忘记密码页面。为了避免向用户发送他的详细信息,我决定将他的详细信息显示在一个警报框中,尽管我知道这样做不太安全 下面是我在php文件“forgotdetails.php”中的代码 这是我的ajax函数(在html文件中),单击忘记密码按钮时会调用它-: <script lang="javascript" type="text/javascript"> function ajaxFunction1() { var ajaxRequest; //

我想创建一个忘记密码页面。为了避免向用户发送他的详细信息,我决定将他的详细信息显示在一个警报框中,尽管我知道这样做不太安全

下面是我在php文件“forgotdetails.php”中的代码

这是我的ajax函数(在html文件中),单击忘记密码按钮时会调用它-:

<script lang="javascript" type="text/javascript">


    function ajaxFunction1() {
        var ajaxRequest;  // The variable that makes Ajax possible!

        try {
            // Opera 8.0+, Firefox, Safari
            ajaxRequest = new XMLHttpRequest();
        } catch (e) {
            // Internet Explorer Browsers
            try {
                ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {
                    // Something went wrong
                    alert("Your browser broke!");
                    return false;
                }
            }
        }
        // Create a function that will receive data 
        // sent from the server and will update
        // div section in the same page.
            ajaxRequest.onreadystatechange = function () 
            { if (ajaxRequest.readyState == 4) 
                { var ajaxDisplay = document.getElementById('results'); 
                alert (ajaxRequest.responseText); 
                ajaxDisplay.innerHTML = "<br/><br/><h2><font color='#18E618'>"+ajaxRequest.responseText+"</font></h2>"; } }


        // Now get the value from user and pass it to
        // server script.
        var email = document.getElementById('email').value;
        //var bitsmailid = document.getElementById('bitsmailid').value;

        if ( email== "" ||  email== null ||  email== '') {

            alert("BITS ID Not Filled");

            exit();
        }
        /*if ( bitsmailid== "" ||  bitsmailid== null ||  bitsmailid== '') {

            alert("BITS Mail ID Not Filled");

            exit();
        }*/


        var queryString = "?email=" + email;
        ajaxRequest.open("POST", "forgotdetails.php" +queryString, true);

        ajaxRequest.send(null);
    }

</script>

函数ajaxFunction1(){
var ajaxRequest;//使Ajax成为可能的变量!
试一试{
//Opera 8.0+、Firefox、Safari
ajaxRequest=新的XMLHttpRequest();
}捕获(e){
//Internet Explorer浏览器
试一试{
ajaxRequest=newActiveXObject(“Msxml2.XMLHTTP”);
}捕获(e){
试一试{
ajaxRequest=新的ActiveXObject(“Microsoft.XMLHTTP”);
}捕获(e){
//出了点问题
警告(“你的浏览器坏了!”);
返回false;
}
}
}
//创建一个将接收数据的函数
//从服务器发送并将更新
//同一页中的div部分。
ajaxRequest.onreadystatechange=函数()
{if(ajaxRequest.readyState==4)
{var ajaxDisplay=document.getElementById('results');
警报(ajaxRequest.responseText);
ajaxDisplay.innerHTML=“

”+ajaxRequest.responseText+”;} //现在从用户处获取值并将其传递给 //服务器脚本。 var email=document.getElementById('email')。值; //var bitsmailid=document.getElementById('bitsmailid').value; 如果(电子邮件=“”| |电子邮件==null | |电子邮件=“”){ 警报(“未填写位ID”); 退出(); } /*如果(BitsMaild==“”| | BitsMaild==null | | BitsMaild==“”){ 警报(“未填写BITS邮件ID”); 退出(); }*/ var queryString=“?email=“+email; 打开(“POST”、“forgotdetails.php”+queryString,true); ajaxRequest.send(空); }
我的查询是,我需要检查PHP文件($results)中通过SQL返回的查询是否为空,然后我需要执行代码中提到的函数。我已经使用了mysql_num_rows($results)==0条件(这是我在阅读了关于堆栈溢出的类似文章后才知道的)。虽然它的评估似乎不正确。它总是计算true,即使数据库中有条目

我已经阅读了所有关于堆栈溢出的此类问题的帖子,在12个多小时的测试之后,我仍然无法解决我的问题。我已经为我的查询提供了所有必要的细节,但是如果有人需要什么,我会提供给你

我是一个网络开发新手,所以请帮我解决我的问题。提前感谢您的帮助

我很抱歉,如果你觉得这个问题已经回答了早些时候,但我再次张贴,因为这些帖子很遗憾不能帮助我。我都读过了。对不起

应该是

 $sql = "SELECT * FROM users WHERE id='". $post_username. "'";
 $result = mysql_query($sql, $conn);
 if ($result && (mysql_num_rows($result) > 0)) {
     // user exists
     // here you get row
     $row = mysql_fetch_assoc($result);
 }

我知道它没有pdo,而且不安全。

你是否在
id
列电子邮件中保存密码?你是否以纯文本形式存储密码?@RichardA:是的,我在数据库中以纯文本形式存储密码。这是个糟糕的主意。永远不要以纯文本形式存储密码。如果有人入侵你的数据库,他们可以读取所有密码。@AshutoshSaboo可能会对你有所帮助。这是关于密码的常见做法,以及如何不使用密码。不过,条件永远不会计算为真,而总是计算为假。我刚才试过了。你的db是种子吗?脚本的结果是什么?它是否以错误或其他东西结束?为什么id=post username,用户名通常不是id,查看OP id=username=email。也许它是正确的,但读起来不太好。@ArtisiticPhoenix:id是列的名称。$post_username=$_post['email']包含用户输入的文本字段的值。@JozefDúc:Seeded,这是什么意思?不,它不显示任何错误,而是始终计算为false。
 $sql = "SELECT * FROM users WHERE id='". $post_username. "'";
 $result = mysql_query($sql, $conn);
 if ($result && (mysql_num_rows($result) > 0)) {
     // user exists
     // here you get row
     $row = mysql_fetch_assoc($result);
 }