我正在尝试创建一个忘记密码表单,通过电子邮件向用户发送密码。但是,我遇到了一个问题,实际的密码部分。你看,我有电子邮件并正确比较电子邮件,除非我发送电子邮件,我总是得到“你的密码是。”或“您的密码是数组”。我正在使用:
$check_email = mysql_num_rows(mysql_query("SELECT email FROM userRecovery WHERE email = '$to'"));
if($check_email == 1){
$qtip = mysql_query("SELECT password FROM userRecovery WHERE email = '$to'");
$theirPassword = mysql_fetch_array($qtip);
Rest of the Code...
}
我曾经能够正确地做到这一点,但是我没有太长时间地完成PHP或MySQL,所以它有点烦人(那个,而且我处于初级中级的水平)。我记得有这个确切的问题,但我没有代码跟我一起找出我做了什么。如果您认为我遗漏了一个细节,请说出来。
任何帮助,如果赞赏。
$theirPassword
,正如你正在使用的那样,是一个数组(正如通过你的mysql_fetch_array
命令获取的那样)。尝试$theirPassword['password']
或只使用`mysql_result($qtip,'password')``
mysql_fetch_array
返回一个数组,所以如果你使用你的$theirPassword
,它将包含一个数组。由于您从查询中选择密码,因此您可能需要:
$qtip = mysql_query("SELECT password FROM userRecovery WHERE email = '$to'");
$row = mysql_fetch_array($qtip);
$theirPassword = $row['password'];
如何在一个查询中获取电子邮件地址和密码? SELECT email,password FROM userRecovery WHERE email = '$to'
。然后你就可以获得密码,就像之前的2个答案($theirPassword['password']
)一样。
最重要的是,你可能会发现这篇关于将密码存储在数据库中的博客文章 - http://blog.moertel.com/articles/2006/12/15/never-store-passwords-in-a-database
$sql = "SELECT password FROM userRecovery WHERE email = '$to'";
$password = mysql_result(mysql_query($sql), 0);