Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Empfohlene Antworten

Veröffentlicht

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]

Die alte Version war: Server Version: 4.0.21

Die neue Version ist: Server Version: 4.1.10

[...]

hatt jemand eine Idee woran das liegen könnte?

MySQL AB :: MySQL 5.1 Referenzhandbuch :: 5.8.9 Kennwort-Hashing ab MySQL 4.1

Die Option --old-passwords beim MySQL-Server sollte dir helfen.

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')))

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...

????

dong, da ist das Brett *g*

Varchar(40) und für den langen Hash-Wert müssen es 41 Byte sein, stimmts???

ich danke euch wie immer für eure Hilfe und die Erweiterung meines Horizontes :D :D :D

:uli :uli :uli

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.