Забыл пароль страницы в php

Я хотел создать страницу забытого пароля. Чтобы не отправлять пользователю по почте его данные, я решил отобразить его данные в окне предупреждения, хотя знаю, что это намного менее безопасно!

Итак, вот мой код в php-файле "Forgotdetails.php".

//Here are my database details, which I can't show.

$conn= mysql_connect($dbhost, $dbuser, $dbpass);
    // Check connection

    if(!$conn){
        die('Could not connect'.mysql_error() );  
    }

    $db_selected = mysql_select_db('users');  

    if(!$db_selected){
        die('wrong'.mysql_error() );
    }



    $post_username = $_POST['email']; // the ajax post username


    $query = "SELECT * FROM users WHERE id='". $post_username. "'";
    $results= mysql_query($query);
    $row=mysql_fetch_assoc($results);
    $username=$row['id'];
    $password=$row['pass'];
    if(mysql_num_rows($results)==0)
    {
        echo "pass= " . $password;
        echo "You haven't registered yet! Go to the Home-Page to Register!";
    /*$query = "SELECT * FROM users WHERE id='$post_username' AND pass='$post_password'";*/

    }
    else
    {   
        echo $password;
    echo "Your Login details are-:"."\nUser ID- ". $username . "\nPassword- ". $password . "\nLogin to your account, to change your password. ";

    }

А вот моя функция 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>

Мой запрос заключается в том, что мне нужно проверить, является ли запрос, возвращаемый с помощью SQL в файле PHP ($results), пустым или нет, а затем мне нужно выполнить функции, как я уже упоминал в своем коде. Я использовал условие mysql_num_rows($results)==0 (о котором я узнал после прочтения похожих постов о переполнении стека). Хотя, кажется, это не правильно оценивать. Он всегда оценивает true, даже если в базе данных есть записи.

Я прочитал все посты, относящиеся к этому типу вопросов о переполнении стека, и после 12+ часов тестирования кода с множеством различных возможностей, я все еще не могу решить свой запрос. Я предоставил все детали, необходимые для моего запроса, однако, если кому-то что-нибудь понадобится, я предоставлю их вам.

Я новичок в веб-разработке, поэтому, пожалуйста, помогите мне решить мой вопрос. Заранее спасибо за вашу помощь!

Мне жаль, если вы чувствуете, что на этот вопрос уже был дан ответ ранее, однако я опубликовал его еще раз, потому что эти сообщения, к сожалению, не могли мне помочь. Я прочитал их все. Сожалею!

1 ответ

Так должно быть

 $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, и это небезопасно.

Другие вопросы по тегам