Passwortabfrage in PHP wo das Passwort in eine MySql - Datenbank gespeicher wird?

... komplette Frage anzeigen

5 Antworten

Von allen bisherigen Antworten mal abgesehen: Man speichert doch keine Klartext-Passwörter in einer DB! Das ist sicherheitstechnisch so ziemlich die größte Sünde, die man begehen kann! ><

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von areaDELme
15.06.2016, 13:16

-> du sollst nur das gehashte passwort speichern und dann bei der eingabe des passworts, dieses mit der selbsen funktion hashen und die hashs vergleichen.

0

Vollkommen falscher zugriff. Mit select db greifsr dz auf die datenbank zu. Die tabelle steht dann bei SELECT * FROM Zugang WHERE.... die sql abfragen noch mal angucken. War eigentlich kaum etwas richtig

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von YoloCheater
30.04.2016, 15:09

und wie soll ich dann besten darauf zugreifen? Ich will es am ende in einer Variable so gespeichert haben damit ich eine if abfrage mit $passwort machen kann.

0

Benutze mysqli_ statt mysql_, mysql ist veraltet und wird av PHP 7 nicht mehr unterstützt!

Antwort bewerten Vielen Dank für Deine Bewertung

Schau dir nochmal an was mysql_query genau zurück liefert und wie du es richtig verarbeitest.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von maximilianus7
15.06.2016, 15:29

noch besser: ein tutorial angucken mysql-zugriff unter php - gugeln.

0

ich würde an deiner stelle die db schon anders aufbauen.

users            
id                        1                            2
email                  admin@a.b           normal@a.b
passwort            adminpw-(HASH) normalpw-(HASH)

den login machst du dann mit email und passwort:

session_start();
$pdo = new PDO('mysql:host=#host;port=#port;dbname=#dbname', '#dbuser', '#dbuserpw');

if(isset($_GET['login'])) {
$email = $_POST['email'];
$passwort = $_POST['passwort'];

$statement = $pdo->prepare("SELECT * FROM users WHERE email = :email");
$result = $statement->execute(array('email' => $email));
$user = $statement->fetch();

//überprüfung des passworts
if ($user !== false && $passwort == $user['passwort']) {

echo "Eingeloggt";

} else {
$errorMessage = "error...";
}
}


--------------------------
mit der php-funktion crypt() kannst du die passwörter auch hashen
und dann die if-bedingung z.b. so ändern und so nur den aktuell erzeugten hash
mit dem in der datenbank vergleichen
(dann muss da aber auch der passwort_hash()-funktion erzeugt und gespeichert werden):

if ($user !== false && crypt($passwort, $user['passwort']) == $user['passwort']){

}


p.s. ich hoffe ich hab mich jetzt hier nicht vertippt. wird leicht unübersichtlich hier
Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?