Guten Tag,
ich wollte eine Art Registration erstellen und wollte Fragen ob es so sicher ist oder ob ich etwas vergessen habe. Ebenso wollte ich Fragen wozu man "const" benötigt für den Password_hash. Das was ihr sieht ist nur ein Test keine richtige Registration also nicht wundern warum da nur 3 Felder stehen. Es geht mir hauptsächlich darum das es sicher und richtig ist.
PHP
<?php
if(isset($_POST['user']))
{
$user = trim($_POST['user']);
$pw = trim($_POST['password']);
$pnr = trim($_POST['personalnummer']);
if(!empty($user) && !empty($pw) && !empty($pnr))
{
$pnr = filter_var($pnr, FILTER_VALIDATE_INT);
if(ctype_alnum($user) && $pnr !== false)
{
include "inc/verbindung.inc.php";
$insert = $verbindung->prepare("INSERT INTO account (user, password, personalnummer) VALUES (?, ?, ?)");
$insert->bindValue(1, $user);
$insert->bindValue(2, password_hash($pw, PASSWORD_DEFAULT));
$insert->bindValue(3, $pnr);
if($insert->execute()) echo "Der Datensatz wurde hinzugefügt!"; else print_r($insert->errorInfo());
}
else
{
if(!ctype_alnum($user) && $pnr === false)
echo "Der Benutzername ist nicht Korrekt. Ebenso darf die Personalnummer nur Zahlen enthalten";
else if(!ctype_alnum($user))
echo "Der Benutzername ist nicht Korrekt";
else if($pnr === false)
echo "Die Personalnummer darf nur Zahlen enthalten";
}
}
else
echo "Bitte alle Pflichtfelder ausfüllen";
}
?>
<form action="<?php $_SERVER['SCRIPT_NAME'] ?>" method="POST">
<p><input name="user" placeholder="Username"></p>
<p><input name="password" type="password" placeholder="Passwort"></p>
<p><input name="personalnummer" placeholder="Personalnummer"></p>
<p><input type="submit" value="Login" name="senden"></p>
</form>
<style>
input {
margin:2em auto;
width:45%;
padding:2%;
border:1px solid #ccc;
font-family:helvetica;
color:#444
}
</style>
Alles anzeigen