PHP - 在MySQL中更新md5密码字段

时间:2015-08-18 22:25:51

标签: php mysql

我是PHP和MySQL的新手。我正在为一个团队建立一个网站,允许家长登录,管理活动,管理运动员,并获取信息。我遇到的问题是允许父母重置自己的密码。当他们进入“管理配置文件”页面时,会向他们显示更改密码的选项。要求他们提供当前密码和新密码。他们单击“提交”并转到运行SQL语句的更新该字段的确认页面。这两个页面加载所以一切都很好,对吧?没有。我已经尝试了几次,密码似乎永远不会改变。这是应该更新密码字段的PHP:

<?PHP
function quote_smart($value, $handle) {
   if (get_magic_quotes_gpc()) {
       $value = stripslashes($value);
   }
   if (!is_numeric($value)) {
       $value = "'" . mysql_real_escape_string($value, $handle) . "'";
   }
   return $value;
}

$uid = $_SESSION['usrId'];
$unm = $_SESSION['usrNm'];

if ($_SERVER["REQUEST_METHOD"] == "POST"){
    $newpwd = $_POST['npwd'];
    $curpwd = $_POST['cpwd'];

    $newpwd = htmlspecialchars($newpwd);
    $curpwd = htmlspecialchars($curpwd);

    // Values changed / hidden here 
    $user_name = "-- USER NAME --";
    $pass_word = "-- HIDDEN --";
    $database = "-- DATA BASE NAME --";
    $server = "-- IP OF SERVER --:3306";

    $db_handle = mysql_connect($server, $user_name, $pass_word);
    $db_found = mysql_select_db($database, $db_handle);

    if ($db_found) {
        $SQL = "UPDATE Parents SET pwd = md5($newpwd) WHERE parID = $uid";
        $nrslt = mysql_query($SQL);
}
}
?>

我哪里错了?

1 个答案:

答案 0 :(得分:1)

  1. 您使用的是(原始)EMPLOYEE_COUNT TOTAL_HOURS_WORKED 650 23000 650 23000 扩展程序,该扩展程序自PHP 5.5起已被弃用,并将在PHP 7.0中完全删除。您需要尽快开始使用现代PHP界面,例如PDOmysqli

  2. 您已在问题中发布了数据库用户名,密码和IP地址。立即更改密码,然后将此数据移动到另一个PHP文件,以降低错误暴露的风险。

  3. 您没有在UPDATE查询中引用字符串mysql。由于它是一个字符串,它需要在它周围加上单引号。