Page 1 of 1

how to count upper, lower and numbers from word?

Posted: Sat Jun 16, 2007 4:01 pm
by ddragas
here is code so far, but with no luck. I always get all errors except last one

Code: Select all

<?


function check_pass($pass)
	{
		$loz = str_split($pass);
		$upper = array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
		$lower = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
		$number = array("0","1","2","3","4","5","6","7","8","9");
		
		foreach($loz as $vrijednost)
			{
				if(!in_array($vrijednost, $upper))
					{
						$SLOVA = 1;	
					}
			}
		foreach($loz as $vrijednost)
			{
				if(!in_array($vrijednost, $lower))
					{
						$slova = 1;	
					}
			}
		foreach($loz as $vrijednost)
			{
				if(!in_array($vrijednost, $number))
					{
						$broj = 1;	
					}
			}
					
		if(!empty($SLOVA)){$error .= "Password must contain UPPER letters!<br>";}
		if(!empty($slova)){$error .= "Password must contain LOWER letters!<br>";}
		if(!empty($broj)){$error .= "Password must contain NUMBERS!<br>";}

		if(strlen($pass) < 
			{
				$error .= "Password must have minimum 8 letters!<br>";
			}
		
		if(!empty($error))
			{
				return $error;
			}
				
	}	

echo check_pass("A1pasgfhz");
?>

Posted: Sat Jun 16, 2007 4:16 pm
by feyd
Short version

Code: Select all

function check_pass($pass)
{
  $upper = !(bool)preg_match('#[A-Z]#', $pass);
  $lower = !(bool)preg_match('#[a-z]#', $pass);
  $number = !(bool)preg_match('#[0-9]#', $pass);
  $length = strlen($pass) < 8;
  $error = array();
  if ($upper)
  {
    $error[] = 'needs upper case';
  }
  if ($lower)
  {
    $error[] = 'needs lower case';
  }
  if ($number)
  {
    $error[] = 'needs number';
  }
  if($length)
  {
    $error[] = 'too short';
  }
  if (count($error) > 0)
  {
    return implode("<br />\n", $error);
  }
  else
  {
    return true;
  }
}

Posted: Sat Jun 16, 2007 4:25 pm
by ddragas
jesus man

U R INCREDIBLE !!!!


You r PHP Legend

many thanks

regards ddragas