Bankprojekt Bankuser: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „== Testbenutzer anlegen == === PHP-Skript zur Generierung von Passwort-Hashes === Um sichere Passwort-Hashes für die Testbenutzer zu generieren, kann das fol…“) |
|||
| Zeile 1: | Zeile 1: | ||
| − | == | + | |
| + | == Erstellung und Import von Testbenutzern == | ||
=== PHP-Skript zur Generierung von Passwort-Hashes === | === 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. | |
| + | |||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
<?php | <?php | ||
| Zeile 18: | Zeile 20: | ||
]; | ]; | ||
| + | $file = fopen('users.csv', 'w'); | ||
foreach ($users as $username => $password) { | foreach ($users as $username => $password) { | ||
$email = $username . '@linuggs.de'; | $email = $username . '@linuggs.de'; | ||
$passwordHash = password_hash($password, PASSWORD_BCRYPT); | $passwordHash = password_hash($password, PASSWORD_BCRYPT); | ||
| − | + | fputcsv($file, [$username, $email, $passwordHash]); | |
} | } | ||
| + | fclose($file); | ||
| + | echo "Benutzer in users.csv gespeichert.\n"; | ||
?> | ?> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | + | Führe das Skript aus, um die CSV-Datei zu erzeugen: | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
php generate_users.php | php generate_users.php | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | + | 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: | ||
| + | |||
| + | <syntaxhighlight lang="php"> | ||
| + | <?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()); | ||
| + | } | ||
| + | ?> | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | Führe das Skript aus, um die Benutzer in die Datenbank einzufügen: | ||
| + | <syntaxhighlight lang="bash"> | ||
| + | php import_users.php | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | === Überprüfung der importierten Benutzer === | ||
| + | Nach dem Import können die Benutzer mit folgendem SQL-Befehl überprüft werden: | ||
<syntaxhighlight lang="sql"> | <syntaxhighlight lang="sql"> | ||
| − | + | SELECT id, username, email FROM users; | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | + | Wenn die Ausgabe die erwarteten Benutzer zeigt, war der Import erfolgreich. | |
| − | |||
| − | |||
Aktuelle Version vom 17. Februar 2025, 20:04 Uhr
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.