0

テーブル「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";
}
?>
4

5 に答える 5

1

mysql_errorでエラーを確認してみてください。ただし、password ='$pw1'の後に"、"を付けていると思います。試してみてください。

于 2012-08-02T13:50:00.847 に答える
0

クエリのエラーはこれを使用します

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

また、ここで最初の回答を読んでください。これにより、SQLインジェクションに注意してmysql_*を使用せずにmysqliとPDOを使用する理由が簡単に説明されます。

于 2012-08-02T13:48:48.880 に答える
0

初めに :

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'");
于 2015-11-23T20:28:39.720 に答える
0

SET の後にカンマを付けるべきではありません。また、MySQL クエリを処理する場合 (実際には任意の文字列です。これは悪い習慣です)、文字列内に変数を挿入することは避けるのが最善です。

試す:

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

変更されたクエリで修正されない場合は、mysql_error()が問題の場所を説明します。

于 2012-08-02T13:50:57.467 に答える
0

カンマがぶら下がっています:

... SET password='$pw1', WHERE ...
                       ^---
于 2012-08-02T14:01:55.993 に答える