PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : session und mysql mit php



malburg
11-06-2001, 08:21
mal ne frage:

ich will ein login proggen.
dazu wollte ich auf einen mysql server den usernamen und das password eintragen und wenn sich jemand einloggt, soll aus der datenbank dann das password verglichen werden.

ich will jetzt aber nicht das password im klartext in die mysql datenbank schreiben sondern kodieren.

wie kann ich jetzt einen text (oder string) in php so codieren, das er dem verschlüsselten password der mysql datenbank entspricht.

thx m.alburg

Martin Ament
11-06-2001, 15:03
Hi,

das ist weniger ein php, als ein mysql Problem, du kannst nur das verschluesselte passwort vergleichen.

$pass_coded_db = mysql('mysql',"select password from user where user='xyz' ");

$pass_coded = mysql('mysql', "select password('$given_clear_password');

if $pass_coded_db == $pass_coded ........

Denke mal es müsste so gehen.

Martin

malburg
11-06-2001, 15:50
mhh, aber mal angenommen ich habe zwei editfelder

im ersten der nutzername und im zweiten das passwort.

jetzt ist ja in meiner mysql db das passwort verschlüsselt untergebracht, d.h. das passwort was der user gerade eingegeben hat, muss ich verschlüsseln und dann vergleichen.

frage: wie kann ich dieses passwort (was der user im edit feld eingibt) mit dem mysql schlüssel (den ich net kenne) verschlüsseln ???


thx m.alburg

linsysop
11-06-2001, 17:05
<?php
$eingabe = crypt ($eingabefeld);
...
//sql anweisung
...
if ($eingabe == $verschpasswd)
{
echo "password ok."
}
?>


versuche es mal so... und schau dir dein crypt befehl an...

mfg

linsysop

Pingu
12-06-2001, 09:35
Hi,

ich habe jetzt leider nicht ganz verstanden was du genau machen willst, weil es gibt die zwei möglichkeiten: 1. selbst vergleichen und 2. las es mysql vergleichen.

Aber es läuft immer daraus hinaus, daß dir eigentlich die art und weise wie mysql verschlüsselt egal sein kann. denn wie martin schon schreibt gibt es in mysql schon dir vordefinierte 'PASSWORD'-funktion [ http://www.mysql.com/doc/M/i/Miscellaneous_functions.html ].

Kurz gesagt wenn due möglichkeit 1 realisieren willst, mach es wie martin geschrieben hat. (die zweite sql aktion gibt die übrigens das verschlüsselte password)

Möglichkeit 2:

$ret = mysql("mysql","select id from user where user='xyz' AND password='PASSWORD($clearpw)'");

ist die rückgabe leer, gabs wohl keinen user mit dieser kombination von username und password.

Gruß

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-= Pingu =-

malburg
12-06-2001, 10:19
ahh, genau das habe ich gesucht.

der user gibt sein passwort ein und ich kann es dann in mysql passwort form umändern mit

select PASSWORD($user_eingabe);

thx an alle