更改密码表单,如果没有结果
由于某种原因,我无法将头围绕在此。更改密码表单,如果没有结果
$result = mysql_query("SELECT `strPassword` FROM cf_user WHERE `strUserId`='$username'"); if(!$result){
echo "The username entered does not exist!";
}
else {
if($newpassword == $confirmnewpassword){
$sql = mysql_query("UPDATE cf_user SET `strPassword` = '$newpassword' WHERE `strUserId` = '$username'");
}
if(!$sql){
echo "Congratulations, password successfully changed!";
}
else{
echo "New password and confirm password must be the same!";
}
}
每次我得到“输入的用户名不存在”,即使我指定的用户名。我确定!$结果意味着不等于?我也尝试了一个if(mysql_num_rows($ result)== 0),mysql_num_rows不存在。
我测试了没有变量的手动的sql命令,我得到了一个结果。我回应了表格结果,他们如预期的那样。
感谢您的帮助。
回答:
根据您的服务器的php版本,查询中的变量可能无法正确插入。
您有:
$result = mysql_query("SELECT `strPassword` FROM cf_user WHERE `strUserId`='$username'");
尝试使用PHP连接操作(周期),可能会帮助(不是居高临下,只是尝试了这一点,这可能是问题
$result = mysql_query("SELECT `strPassword` FROM cf_user WHERE `strUserId`='".$username."' ");
中。当然这是针对你说的那部分,如果变量被删除,所以我假设你的查询在变量区域周围有错误
我使用premiumsof t NaviCat测试我的查询以确保它们正常工作,更容易排除故障。您可以通过将查询保存在变量中并进行回显来查看您的查询是否正确写入,这样,您将看到它是否正确管道。
即。
$query = "SELECT `strPassword` FROM cf_user WHERE `strUserId`='".$username."' "; // echoes to browser to see final sql statement. Don't use in production environment, and make SURE to delete then going live!!! It will expose you database names and field names to whoever runs the function...
echo $query;
$result = mysql_query($query);
回答:
尝试的var_dump($结果)查看实际的结果,如果它是你需要做的是这样的密码或者没有
回答:
:
$result = mysql_query("SELECT user_id FROM cf_user WHERE `strUserId`='$username' AND strPassword='".md5($password)."' LIMIT 0,1"); if(mysql_num_rows($result)==0){
echo "The username entered does not exist!";
}
....
$result
不是实际的结果,它是一个资源链接到结果集。
从PHP手册:
对于SELECT,SHOW,描述,解释等语句返回的结果集 ,请求mysql_query()成功返回的资源,或 错误FALSE。
对于其他类型的SQL语句,INSERT,UPDATE,DELETE,DROP等, mysql_query()在成功时返回TRUE或在错误时返回FALSE。
返回的结果资源应该传递给mysql_fetch_array(), 和其他函数来处理结果表,来访问 返回的数据。
使用mysql_num_rows()来找出有多少行被返回的 SELECT语句或mysql_affected_rows()函数来找出有多少行 受到影响由DELETE,INSERT,REPLACE或UPDATE语句。
如果用户没有 有权访问查询引用的表,则mysql_query()也将失败并返回FALSE。
回答:
首先要做的事:代码片段编码不好。
以mysql_query
开头用于SELECT
仅为错误返回false。如果有空结果,它将成功执行。
当与UPDATE
一起使用时,它在成功时返回true
,在error
时返回false。代码似乎犯了一个错误。因为当它返回一个false时,就是说你已经成功地更改了密码,而不是这种情况。
什么需要做的是:
$result = mysql_query("SELECT `strPassword` FROM cf_user WHERE `strUserId`='$username'"); if ($result !== FALSE) { //not an error
if (mysql_num_rows($result) > 0) { //some rows have been returned
if ($newPassword == $confirmPassword) {
$query = mysql_query("UPDATE STATEMENT HERE");
if ($query === TRUE) {
die('Password changed');
} else {
die(mysql_error());
}
} else {
die('Passwords don't match);
}
} else { //no rows returned
die('Username not found');
}
} else { //error
die(mysql_error());
}
请注意上面的代码只是一个样本,我不建议在PROD环境中使用它。没有输入转义。
以上是 更改密码表单,如果没有结果 的全部内容, 来源链接: utcz.com/qa/264246.html