Bankprojekt Bankuser

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Erstellung und Import von Testbenutzern

PHP-Skript zur Generierung von Passwort-Hashes

Die Testbenutzer erhalten sichere, mit bcrypt gehashte Passwörter. Das folgende PHP-Skript generiert die Hashes und speichert die Benutzerdaten in einer CSV-Datei.

<?php
$users = [
    'anna' => 'Passwort1',
    'benjamin' => 'Passwort2',
    'clara' => 'Passwort3',
    'daniel' => 'Passwort4',
    'eva' => 'Passwort5',
    'felix' => 'Passwort6',
    'greta' => 'Passwort7',
    'henrik' => 'Passwort8',
    'isabel' => 'Passwort9',
    'jonas' => 'Passwort10'
];

$file = fopen('users.csv', 'w');
foreach ($users as $username => $password) {
    $email = $username . '@linuggs.de';
    $passwordHash = password_hash($password, PASSWORD_BCRYPT);
    fputcsv($file, [$username, $email, $passwordHash]);
}
fclose($file);
echo "Benutzer in users.csv gespeichert.\n";
?>

Führe das Skript aus, um die CSV-Datei zu erzeugen:

php generate_users.php

Nach der Ausführung enthält die Datei `users.csv` die Benutzernamen, E-Mail-Adressen und gehashten Passwörter.

PHP-Skript zum Import der Testbenutzer

Um die generierten Benutzer in die Datenbank `bankdb` zu importieren, wird folgendes PHP-Skript verwendet:

<?php
$host = 'localhost';
$dbname = 'bankdb';
$username = 'root'; // ggf. anpassen
$password = ''; // ggf. anpassen

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // CSV-Datei einlesen
    $file = fopen('users.csv', 'r');
    while (($data = fgetcsv($file, 1000, ",")) !== FALSE) {
        $sql = "INSERT INTO users (username, email, password_hash, role) VALUES (:username, :email, :password_hash, 'user')";
        $stmt = $pdo->prepare($sql);
        $stmt->execute([
            ':username' => $data[0],
            ':email' => $data[1],
            ':password_hash' => $data[2]
        ]);
    }
    fclose($file);
    echo "Benutzer erfolgreich importiert!";
} catch (PDOException $e) {
    die("Fehler: " . $e->getMessage());
}
?>

Führe das Skript aus, um die Benutzer in die Datenbank einzufügen:

php import_users.php

Überprüfung der importierten Benutzer

Nach dem Import können die Benutzer mit folgendem SQL-Befehl überprüft werden:

SELECT id, username, email FROM users;

Wenn die Ausgabe die erwarteten Benutzer zeigt, war der Import erfolgreich.