用PHP更新mySQLDatabase中的密码


UPDATE password in mySQLDatabase with PHP

我正在尝试更新表'nbk6_user'的密码。

当脚本启动时,我得到错误:"Fehler"

我做mysql_query对吗?

有人能帮我吗?

<?php
include 'conf.php';
$connection = mysql_connect("****", "****", "****");
mysql_select_db($datenbank);
session_start();
if(!isset($_SESSION["name"]))
{
    die("Für diese Seite musst du dich zuerst anmelden!");
}
$name = $_SESSION["name"];
$pw1 = $_POST["pw1"];
$pw2 = $_POST["pw2"];
$pw1 = trim($pw1);
$pw2 = trim($pw2);
if($pw1 == "")
{
die("Kein Passwort gesetzt.");
}
if($pw1 == $pw2)
{
    $query = mysql_query("UPDATE nbk6_user SET password='$pw1', WHERE name='$name'");
    if(!$query)
    {   
        echo "Fehler";
    }
}
else
{
    echo "Die Passwörter stimmen nicht überein";
}
?>

试着用mysql_error查看错误,但我认为你在password='$pw1'之后放了","我认为可以试试

在SET之后不应该有昏迷,在处理MySQL查询时,最好避免将变量插入字符串中(或者任何字符串,这都是不好的做法)。

尝试:

$query = mysql_query("UPDATE nbk6_user SET password='".$pw1."' WHERE name='".$name."'");
if(!$query)
{   
    mysql_error();
    echo "Fehler";
}

如果更改后的查询没有修复它,mysql_error()将解释问题所在。

您有一个悬空逗号:

... SET password='$pw1', WHERE ...
                       ^---

查询中的错误使用这个

$query = mysql_query("UPDATE nbk6_user SET password='".$pw1."' WHERE name='".$name."'");

还要阅读这里的第一个答案,这将向您简要介绍为什么不应该使用mysql_*,而应该使用mysqli和PDO,并注意sql注入。

首先:

session_start();必须是代码中的第一行。

然后

 $query = mysql_query("UPDATE nbk6_user SET password='$pw1', WHERE name='$name'");
must be
$pw1=md5($pw1);
 $query = mysql_query("UPDATE nbk6_user SET password='$pw1' WHERE name='$name'");