php中的忘记密码页
我想创建一个忘记密码页面。为了避免向用户发送他的详细信息,我决定将他的详细信息显示在一个警报框中,尽管我知道这样做不太安全 下面是我在php文件“forgotdetails.php”中的代码 这是我的ajax函数(在html文件中),单击忘记密码按钮时会调用它-: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; //
<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);
}