Zum Inhalt springen

[php] MySQL Passwort()-Problem nach Update von MySQL


Empfohlene Beiträge

Hallo Leute,

mein Provider hat die MySQL-Serverversion gewechselt...

Die alte Version war: Server Version: 4.0.21

Die neue Version ist: Server Version: 4.1.10

Die neue Version unterstützt verschiedene Zeichensätze bei der Datenbankverbindung....

In der DB habe ich in einer Tabelle ein Feld dessen Werte mit der MySQL Funktion PASSWORD() kodiert wurden.

Die Datenbank wird mit PHP benutzt. Wenn sich User anmelden, generiere ich mit der MySQL Funktion PASSWORD bei einer Abfrage ein kodiertes Passwort der Usereingabe auf der Web-Seite.

Diesen String vergleiche ich dann mit dem Sting in der DB. Sind sie gleich,

hat der user das richtige Passwort eingegeben.

Das ging bisher auch prima, aber seit dem Update geht das nicht mehr...

hatt jemand eine Idee woran das liegen könnte?

Hier mal der Quellcode, wems hilft:

if ($_POST)  // Wenn Formular abgesicht wurde
{
$result = mysql_query ("select * from $table_user where username = '$wert1' and kennung = PASSWORD('$wert2')");
if(mysql_num_rows($result) === 1) // Wenn ein User mit dem PW in der DB gefunden wurde:
{
$_SESSION['username'] = mysql_result($result,0,"username");
$_SESSION['flags'] = mysql_result($result,0,"flags");
$_SESSION['zugang'] = 1;
echo "<h2>Login erfolgreich. Lade....</h2>";
echo '<meta http-equiv="refresh" content="2; URL=admin/index.php">';
die();
}
else echo "<h2>Username oder Passwort falsch!!!</h2>";
}[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Alternativ kannst Du auch die Funktion OLD_PASSWORD() benutzen.


$result = mysql_query ("select * from $table_user where username = '$wert1' and kennung = OLD_PASSWORD('$wert2')");

Oder einfach übergangsweise beides:

... AND ((length(kennung) = 41 AND kennung=PASSWORD('passwort'))

OR                 

(length(kennung) = 16 AND kennung=OLD_PASSWORD('passwort')))

Link zu diesem Kommentar
Auf anderen Seiten teilen

ok, danke für die Tipps, werd die PHP dateien mal anpassen...

mal ne andere Frage:

wenn ich jetzt in der Datenbank für meinen User ein neues Passwort generiere, also mit der Passwortfunktion, dann kommt er einen langer Hash-Wert....

Dazu lasse ich die PHP Datei unangetastet... allerdings geht es dann trotzdem nicht... Obwohl mein User ja einen "neuen Langen" hashwert hat...

????

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...