mysql — забыл пароль страницы в переполнении стека

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

Итак, вот мой код в 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+ часов тестирования кода с множеством различных возможностей, я все еще не могу решить свой запрос. Я предоставил все детали, необходимые для моего запроса, однако, если кому-то что-нибудь понадобится, я предоставлю их вам.

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

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

-2

Решение

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

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]