66 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
| <?php
 | |
|     if($_SERVER['REQUEST_METHOD'] == 'POST') {
 | |
|         if(!isset($_SESSION['LOGIN']) || !isset($_SESSION['UUID'])) {
 | |
|             header('Location: index.php');
 | |
|             die();
 | |
|         }
 | |
| 
 | |
|         include 'app/FormValidator.php';
 | |
|         $validator = new FormValidator(array(
 | |
|             'oldPassword' => array('required' => true, 'regex' => '/.{1,1000}/'),
 | |
|             'newPassword' => array('required' => true, 'regex' => '/.{1,1000}/'),
 | |
|             'newPasswordRepeat' => array('required' => true, 'regex' => '/.{1,1000}/')
 | |
|         ));
 | |
| 
 | |
|         if($validator->isValid($_POST)) {
 | |
|             if($_POST['newPasswordRepeat'] == $_POST['newPassword']) {
 | |
|                 if(password_verify($_POST['oldPassword'], $_SESSION['PASSWORD'])) {
 | |
|                     $hash = password_hash($NewPassword, PASSWORD_ARGON2ID);
 | |
|                     $statement = $RUNTIME['PDO']->prepare('UPDATE auth SET passwordHash = :PasswordHash WHERE UUID = :PrincipalID'); 
 | |
|                     $statement->execute(['PasswordHash' => $hash, 'PrincipalID' => $_SESSION['UUID']]);
 | |
|                     $_SESSION['PASSWORD'] = $hash;
 | |
|                     $_SESSION['pw_info'] = 'Neues Passwort gespeichert.';
 | |
|                 }
 | |
|                 else {
 | |
|                     $_SESION['pw_info'] = 'Das alte Passwort ist nicht richtig!';
 | |
|                 }
 | |
|             }
 | |
|             else {
 | |
|                 $_SESSION['pw_info'] = 'Die neuen Passwörter stimmen nicht überein!';
 | |
|             }
 | |
|         }
 | |
|         else {
 | |
|             $_SESSION['pw_info'] = 'Bitte fülle das Formular vollständig aus.';
 | |
|         }
 | |
| 
 | |
|         header('Location: index.php?page=password');
 | |
|         die();
 | |
|     }
 | |
| 
 | |
|     $HTML->setHTMLTitle("Passwort ändern");
 | |
|     $HTML->importSeitenInhalt("profile.html");
 | |
| 
 | |
|     include 'app/OpenSim.php';
 | |
|     $opensim = new OpenSim();
 | |
| 
 | |
|     $PartnerName = "";
 | |
|     $PartnerUUID = $opensim->getPartner($_SESSION['UUID']);
 | |
|     if($PartnerUUID != null)$PartnerName = $opensim->getUserName($PartnerUUID);
 | |
| 
 | |
|     $HTML->ReplaceSeitenInhalt("%%offlineIMSTATE%%", ' '); 
 | |
|     $HTML->ReplaceSeitenInhalt("%%firstname%%", htmlspecialchars($_SESSION['FIRSTNAME'])); 
 | |
|     $HTML->ReplaceSeitenInhalt("%%lastname%%", htmlspecialchars($_SESSION['LASTNAME'])); 
 | |
|     $HTML->ReplaceSeitenInhalt("%%partner%%", htmlspecialchars($PartnerName)); 
 | |
|     $HTML->ReplaceSeitenInhalt("%%email%%", htmlspecialchars($opensim->getUserMail($_SESSION['UUID']))); 
 | |
|     $HTML->ReplaceSeitenInhalt("%%listAllResidentsAsJSArray%%", "");
 | |
| 
 | |
|     $pwInfo = '';
 | |
|     if(isset($_SESSION['pw_info'])) {
 | |
|         $pwInfo = $_SESSION['pw_info'];
 | |
|         unset($_SESSION['pw_info']);
 | |
|     }
 | |
|     $HTML->ReplaceSeitenInhalt("%%INFOMESSAGE%%", $pwInfo);
 | |
|     
 | |
|     $HTML->build();
 | |
|     echo $HTML->ausgabe();
 | |
| ?>
 |