SQL UPDATE如果密码正确

时间:2012-01-03 12:27:41

标签: php mysql

我有以下代码:

$userpass = $row->userpass;
$gesamtpass = $pass.$chili;
$pwdata = mysql_query("SELECT MD5('".$gesamtpass."') AS newpass");
$pwk = mysql_fetch_object($pwdata);
$pwkey = $pwk->newpass;

$_POST["email"] = $email;
$_POST["fbuid"] = $fbuid;

if ($userpass == $pwkey){
  $result_update = mysql_query("UPDATE member SET (fbuid = '".mysql_real_escape_string($_POST["fbuid"])."')  WHERE email = '".mysql_real_escape_string($_POST['email'])."'") or die("not possible");}

我没有让这段代码更新我的数据。

3 个答案:

答案 0 :(得分:2)

此代码以更整洁的方式执行您想要执行的操作。当出现问题时,它还会输出一些有用的错误消息。显然,您不应该直接将这些输出到生产中的用户,但它可以帮助您在开发过程中调试问题。

// Is this already an MD5 hash?
$userpass = $row->userpass;
// MUCH simpler way to do MD5
$pwkey = md5($pass.$chili);

if ($userpass == $pwkey) { // Compare the passwords
  // If they match, do the query
  $query = "UPDATE member
            SET fbuid = '".mysql_real_escape_string($fbuid)."'
            WHERE email = '".mysql_real_escape_string($email)."'";
  mysql_query($query) or die("MySQL Query Error: ".mysql_error());
} else {
  // They don't match, lets look at the data and find out why
  die("They don't match! $userpass != $pwkey");
}

答案 1 :(得分:0)

错误信息是什么?

1)你可以直接在php (md5 In php)中生成MD5哈希值,这样可以达到更好的性能。

2)你是否(通过一个简单的回声)检查了$ userpass == $ pwkey是否为真?

3)尝试删除

  

或死亡("不可能");

部分,获取sql错误(如果有的话)

4)在我看来,你不明白如何使用$ _POST []变量,因为你给它们赋值了!?!?!?!

答案 2 :(得分:-1)

$userpass = $row->userpass;
$gesamtpass = $pass.$chili;
$pwdata = mysql_query("SELECT MD5('".$gesamtpass."') AS newpass");
$pwk = mysql_fetch_object($pwdata);
$pwkey = $pwk->newpass;

$_POST["email"] = $email;
$_POST["fbuid"] = $fbuid;

if ($userpass == $pwkey)
{
  $result_update = mysql_query("UPDATE member SET fbuid = '".mysql_real_escape_string($_POST["fbuid"])."'  WHERE email = '".mysql_real_escape_string($_POST['email'])."'") or die("not possible");
 }

不使用大括号()来更新字段