смяна на парола

torreto

Registered
имам следния скрипт

Код:
	$errors = array(); 
	
	
	if (empty($_POST['email'])) {
		$errors[] = 'You forgot to enter your email address.';
	} else {
		$e = mysqli_real_escape_string($dbc, trim($_POST['email']));
	}
	
	
	if (empty($_POST['pass'])) {
		$errors[] = 'You forgot to enter your current password.';
	} else {
		$p = mysqli_real_escape_string($dbc, trim($_POST['pass']));
	}

	
	if (!empty($_POST['pass1']) ) {
		if ($_POST['pass1'] != $_POST['pass2']) {
			$errors[] = 'Your new password did not match the confirmed password.';
		} else {
			$np = mysqli_real_escape_string($dbc, trim($_POST['pass1']));
		}
	} else {
		$errors[] = 'You forgot to enter your new password or password is wrong.';
	}
	
	if (empty($errors)) { 
		$q = "SELECT user_id FROM users WHERE (email='$e' AND pass=md5('$p') )";
		$r = @mysqli_query($dbc, $q);
		$num = @mysqli_num_rows($r);
		if ($num == 1) { 
			$row = mysqli_fetch_array($r, MYSQLI_NUM);

			
			$q = "UPDATE users SET pass=md5('$np') WHERE user_id=$row[0]";		
			$r = @mysqli_query($dbc, $q);
			
			if (mysqli_affected_rows($dbc) == 1) { 
				echo '<h1>Thank you!</h1>
				<p>Your password has been updated. In Chapter 11 you will actually be able to log in!</p><p><br /></p>';	
			
			} else { 
				echo '<h1>System Error</h1>
				<p class="error">Your password could not be changed due to a system error. We apologize for any inconvenience.</p>'; 
				
				
				echo '<p>' . mysqli_error($dbc) . '<br /><br />Query: ' . $q . '</p>';
				
			}

			
			
				
		} else { 
			echo '<h1>Error!</h1>
			<p class="error">The email address and password do not match those on file.</p>';
		}
		
	} else { 
	
		echo '<h1>Error!</h1>
		<p class="error">The following error(s) occurred:<br />';
		foreach ($errors as $msg) { 
			echo " - $msg<br />\n";
		}
		echo '</p><p>Please try again.</p><p><br /></p>';
		
	}

	mysqli_close($dbc); 
		
} 
?>

искам паролата да бъде ограничена като тази от регистрацията
Код:
!ereg("^[a-zA-Z0-9_-]{6,20}$",$pass)
, а тази в скрипта не е. Как ще стане? Пробвах по няколко начина но понеже още прохождам в програмирането не стана :/
 
Значи можеби не успяваш защото някаде из кода си сложил на паролата
Код:
md5($pass);
махни го и направи проверката
Код:
 !ereg("^[a-zA-Z0-9_-]{6,20}$",$pass)
след нея го сложи в
Код:
 md5();
....
 
това е целия код има още малко, но то е формата

пробвах с
Код:
 $pass1= ($_POST['pass1']);
                    $pass2= ($_POST['pass2']); .... if (!ereg("^[a-zA-Z0-9_-]{6,20}$",$pass1) ) {
		if ($pass1!= $pass2) {
вместо
Код:
if (!empty($_POST['pass1']) ) {
		if ($_POST['pass1'] != $_POST['pass2']) {

но ми дава грешка "You forgot to enter your new password or password is wrong."
 

Back
Горе