pdo statements
Profil
profil.php
<?php
Prüfen ob User berechtigung hat!
if (!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true)
{
header("Location:index.php?page=80");
exit();
}
Benutzende Variablen auf leere Werte setzen
$new_password = $confirm_password = $pass = "";
$new_password_err = $confirm_password_err = $pass_err = "";
Formulardaten werden verarbeitet, wenn das Formular gesendet wird einfügen
POST für Userpasswort prüfen
$postpass=isset($_POST['pass']) ? $_POST['pass'] : "";
if(empty($postpass))
{
$pass_err = "Feld Passwort ist leer.";
}
else
{
$passwort=trim($postpass);
if ($passwort === false)
{
$pass_err = "Passwort Fehler!";
}
}
POST für Neues Passwort prüfen
$newpaswort=isset($_POST['new_password']) ? $_POST['new_password'] : "";
if(!empty($newpaswort));
if((strlen(trim($newpaswort)) < 16)||(strlen(trim($newpaswort))) > 60)
{
$new_password_err = "Passwort muß 16 bis 60 Zeichen haben.";
}
else
{
$new_password = isset($newpaswort) ? $newpaswort : "";
if (!preg_match("/[^a-zA-Z0-9]/",$new_password))
{
$password_err = 'Groß, klein-Buchstaben, Ziffern und Sonderzeichen sind Pflicht!';
}
}
POST für Userpasswort wiederholen prüfen
$connectpassw = isset($_POST['confirm_password']) ? $_POST['confirm_password'] : "";
if(!empty($connectpassw))
{
$confirm_password = isset($connectpassw) ? $connectpassw : "";
}
Neues Passwort und Passwort bestätigen auf übereinstimmung prüfen
if(empty($new_password_err) && ($new_password != $confirm_password))
{
$confirm_password_err="Die Passwörter stimmen nicht überein.";
}
Keine Fehler Inhalt ausführen
if(empty($pass_err) && empty($new_password_err) && empty($confirm_password_err))
{
Weitere Variablen definieren
$param_id=IntVal($_SESSION['id']);
$param_active=1;
$param_blok=0;
Datenbank abfrage
$stmt=$pdo->prepare("SELECT id, userpass FROM usertable WHERE id=:id and active=:aktive and block=:blogg");
$stmt->bindParam(':id',$param_id,PDO::PARAM_INT);
$stmt->bindParam(':aktive',$param_active,PDO::PARAM_INT);
$stmt->bindParam(':blogg',$param_blok,PDO::PARAM_INT);
$stmt->bindColumn(1,$uid);
$stmt->bindColumn(2,$hashed_password);
$stmt->execute();
$stmt->fetch();
Benutzer Passwort überprüfen
if(password_verify($passwort,$hashed_password))
{
Neues Passwort hashen
$set_password=password_hash($new_password,PASSWORD_DEFAULT);
Datenbank aktualisieren
$stmt=$pdo->prepare("UPDATE usertable SET userpass=:passwort WHERE id=:id");
$stmt->bindParam(':id',$uid,PDO::PARAM_INT);
$stmt->bindParam(':passwort',$set_password,PDO::PARAM_STR);
if ($stmt->execute())
{
session_unset(); session_destroy();
header("Location:index.php?page=90&message=profil");
}
}
else
{
echo"Da ist was schief gelaufen!";
}
}
}
?>
Wie soll das Formular wo hin
<form method="post" action="<?php $_SERVER["PHP_SELF"];?>">
<div class="form-face">
<label for="passwort">Neues Passwort:<span>*</span></label>
<span class="fehler"><?php echo $new_password_err;?></span>
<input pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{16,60}" required="required" placeholder="16-60 Zeichen" title="Groß, klein-Buchstaben, Ziffern und Sonderzeichen sind Pflicht!" type="password" id="new_password" name="new_password" maxlength="62" class="form-control">
</div>
Feld für Neues-Passwort bestätigen einfügen
Feld für Benutzer-Passwort einfügen
Feld für Senden einfügen
</form>
Top
Top