我正在尝试更新表'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'");