Eintrag funktionert nicht

ocinrezle

Gesperrt
Hier mal der Code

PHP:
$verbindung = mysql_connect("xxx", "xxx" , "xxx")
or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
mysql_select_db("nico") or die ("Datenbank konnte nicht ausgewählt werden");
$username = $_POST["n"];
$passwort = $_POST["old"];
$passwort2 = $_POST["new"];
$abfrage = "SELECT name, password FROM user WHERE name LIKE '$username' LIMIT 1";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);

if($row->password == $passwort)
    {
    $sqlab ="update user set password = $passwort2";
    mysql_query(sqlab);
    }
else
    {
    echo "passwort konnte nicht geändert werden" ;
    } 
	/* Kontrolle, ob innerhalb der Session */

?>


Und er gibt jetzt immer "passwort konnte nicht geändert werden" seht ihr vielleicht einen Fehler?

der sinn des scriptes ist das man sein passwort ändern kann

Lg Nico
 
Schreib doch mal vor das if:
PHP:
print_r($passwort);
echo " == ";
print_r($row->password);

Und vergleiche selbst ob das stimmt.
Wie ist denn das Passwort gespeichert?
Als reiner Text?
Beachtet auch die Groß- / Kleinschreibung.

EDIT: Außerdem muss das neue Passwort im UPDATE-Query in einfache Anführungszeichen.
 
großund kleinschreibung und so habe ich geachtet...

meinst du so?

PHP:
username = $_POST["n"];
$passwort = $_POST["old"];
$passwort2 = $_POST["new"];
$abfrage = "SELECT name, password FROM user WHERE name LIKE '$username' LIMIT 1";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);
print_r($passwort);
echo " == ";
print_r($row->password);
if($row->password == $passwort)
    {
    $sqlab ="update user set password = $passwort2";
    mysql_query(sqlab);
    }
else
    {
    echo "passwort konnte nicht geändert werden" ;
    } 
	/* Kontrolle, ob innerhalb der Session */

?>
 
Ja. Schau mal in deinen Browser was da raus kommt oder schreib es hier.
Folgendes wäre auch interessant:
PHP:
var_dump($_POST);
Das kann irgendwo hin. Egal wo!
 
Code:
array(0) { }

das kam raus

//EDIT

ich hab das jetzt alles geändert so siehts jetzt aus :

PHP:
mysql_select_db("nico") or die ("Datenbank konnte nicht ausgewählt werden");
$username = $_POST["n"];
$passwort = $_POST["old"];
$passwort2 = $_POST["new"];
$abfrage = "SELECT name, password FROM user WHERE name name='$username' LIMIT 1";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);
if($row->password == $passwort)
    {
    $sqlab ="update user set password = '$passwort2'";
    mysql_query(sqlab);
    }
else
    {
    echo "passwort konnte nicht geändert werden" ;
    } 
	/* Kontrolle, ob innerhalb der Session */

?>

aber jetzt kommt folgende fehlermeldung:

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in cc.php on line 37
 
Zuletzt bearbeitet:
bei var dum kommt wenn ich das formular abescickt hab das raus:

Code:
array(2) { ["old"]=>  string(4) "nico" ["new"]=>  string(4) "test" } passwort konnte nicht ge?ndert werden
 
Augen auf ;)

Dein Formular übergibt:
Code:
array(2) {
  ["old"]=>  string(4) "nico"
  ["new"]=>  string(4) "test"
}

Eine PHP weiter fragst du nach:
PHP:
$username = $_POST["n"];
$passwort = $_POST["old"];
$passwort2 = $_POST["new"];

Und wenn ich das so seh, kann ich dir schon fast garantieren das du die Felder im Formular beim erstellen im Quelltext kopiert hast und es dadurch nun zweimal das Feld "new" oder "old" gibt.
 
Zuletzt bearbeitet:
Zurück