mirror of
				https://github.com/Znote/ZnoteAAC.git
				synced 2025-11-04 04:46:23 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			92 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php require_once 'engine/init.php';
 | 
						|
protect_page();
 | 
						|
 | 
						|
if (empty($_POST) === false) {
 | 
						|
	/* Token used for cross site scripting security */
 | 
						|
	if (!Token::isValid($_POST['token'])) {
 | 
						|
		$errors[] = 'Token is invalid.';
 | 
						|
	}
 | 
						|
 | 
						|
	$required_fields = array('current_password', 'new_password', 'new_password_again');
 | 
						|
 | 
						|
	foreach($_POST as $key=>$value) {
 | 
						|
		if (empty($value) && in_array($key, $required_fields) === true) {
 | 
						|
			$errors[] = 'You need to fill in all fields.';
 | 
						|
			break 1;
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	$pass_data = user_data($session_user_id, 'password');
 | 
						|
	//$pass_data['password'];
 | 
						|
	// $_POST['']
 | 
						|
 | 
						|
	// .3 compatibility
 | 
						|
	if ($config['ServerEngine'] == 'TFS_03' && $config['salt'] === true) {
 | 
						|
		$salt = user_data($session_user_id, 'salt');
 | 
						|
	}
 | 
						|
	if (sha1($_POST['current_password']) === $pass_data['password'] || $config['ServerEngine'] == 'TFS_03' && $config['salt'] === true && sha1($salt['salt'].$_POST['current_password']) === $pass_data['password']) {
 | 
						|
		if (trim($_POST['new_password']) !== trim($_POST['new_password_again'])) {
 | 
						|
			$errors[] = 'Your new passwords do not match.';
 | 
						|
		} else if (strlen($_POST['new_password']) < 6) {
 | 
						|
			$errors[] = 'Your new passwords must be at least 6 characters.';
 | 
						|
		} else if (strlen($_POST['new_password']) > 100) {
 | 
						|
			$errors[] = 'Your new passwords must be less than 100 characters.';
 | 
						|
		}
 | 
						|
	} else {
 | 
						|
		$errors[] = 'Your current password is incorrect.';
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
include 'layout/overall/header.php'; ?>
 | 
						|
 | 
						|
<h1>Change Password:</h1>
 | 
						|
 | 
						|
<?php
 | 
						|
if (isset($_GET['success']) && empty($_GET['success'])) {
 | 
						|
	echo 'Your password has been changed.<br>You will need to login again with the new password.';
 | 
						|
	session_destroy();
 | 
						|
	header("refresh:2;url=index.php");
 | 
						|
	exit();
 | 
						|
} else {
 | 
						|
	if (empty($_POST) === false && empty($errors) === true) {
 | 
						|
		//Posted the form without errors
 | 
						|
		if ($config['ServerEngine'] == 'TFS_02' || $config['ServerEngine'] == 'TFS_10' || $config['ServerEngine'] == 'OTHIRE') {
 | 
						|
			user_change_password($session_user_id, $_POST['new_password']);
 | 
						|
		} else if ($config['ServerEngine'] == 'TFS_03') {
 | 
						|
			user_change_password03($session_user_id, $_POST['new_password']);
 | 
						|
		}
 | 
						|
		header('Location: changepassword.php?success');
 | 
						|
	} else if (empty($errors) === false){
 | 
						|
		echo '<font color="red"><b>';
 | 
						|
		echo output_errors($errors);
 | 
						|
		echo '</b></font>';
 | 
						|
	}
 | 
						|
	?>
 | 
						|
 | 
						|
	<form action="" method="post">
 | 
						|
		<ul>
 | 
						|
			<li>
 | 
						|
				Current password:<br>
 | 
						|
				<input type="password" name="current_password">
 | 
						|
			</li>
 | 
						|
			<li>
 | 
						|
				New password:<br>
 | 
						|
				<input type="password" name="new_password">
 | 
						|
			</li>
 | 
						|
			<li>
 | 
						|
				New password again:<br>
 | 
						|
				<input type="password" name="new_password_again">
 | 
						|
			</li>
 | 
						|
			<?php
 | 
						|
				/* Form file */
 | 
						|
				Token::create();
 | 
						|
			?>
 | 
						|
			<li>
 | 
						|
				<input type="submit" value="Change password">
 | 
						|
			</li>
 | 
						|
		</ul>
 | 
						|
	</form>
 | 
						|
<?php
 | 
						|
}
 | 
						|
include 'layout/overall/footer.php'; ?>
 |