Verificação de senha PHP

18/03/2019

15

PHP

não sei como e quando utilizar implements ou extends por exemplo nessa verificação

<?php
        $password_length = 8;

        public function passcheck($senha) {
            $returnVal = True;
            
	            if ( strlen($senha) < $password_length ) {
		            $returnVal = False;
                }
                
	            if ( !preg_match("#[0-9]+#", $senha) ) {
		            $returnVal = False;
                }
                
	            if ( !preg_match("#[a-z]+#", $senha) ) {
		            $returnVal = False;
                }
                
	            if ( !preg_match("#[A-Z]+#", $senha) ) {
		            $returnVal = False;
                }

            return $returnVal;
        }
?>


quero inseri la em outra "pagina" mas nao sei onde ou como colocar, se eu coloco no começo do codigo da esse erro
Parse error: syntax error, unexpected 'if' (T_IF), expecting function (T_FUNCTION) in C:\\xampp\\htdocs\\dados.php on line 16

se ajudar, coloco o codigo da outra pagina aqui.
Responder

Post mais votado

18/03/2019

Bom, vou tentar te ajudar.

Primeira coisa que eu notei, sua função não esta dentro de uma classe, voce implementa classes e não funções.

Pode tentar assim:

<?php
public class PasswordFunctions{

        $password_length = 8;
 
        public function passcheck($senha) {
            $returnVal = True;
             
                if ( strlen($senha) < $password_length ) {
                    $returnVal = False;
                }
                 
                if ( !preg_match("#[0-9]+#", $senha) ) {
                    $returnVal = False;
                }
                 
                if ( !preg_match("#[a-z]+#", $senha) ) {
                    $returnVal = False;
                }
                 
                if ( !preg_match("#[A-Z]+#", $senha) ) {
                    $returnVal = False;
                }
 
            return $returnVal;
        }
}
?>


E então em sua classe que você quer implementar ela, voce coloca na sua classe dessa forma:

public class Login implements PasswordFunctions { ... }


E acredito que estanciando a classe em uma variavel, voce consiga chamar a função:

 <?php
$passfunc = new PasswordFunctions();

$passfunc->passcheck('1234');
?>


Acredito que assim voce consiga chamar sua função como deseja.

Espero ter ajudado. :D
Responder

Mais Posts

19/03/2019

Vitor Ferreira

Primeiramente muito obrigado pelo seu tempo, mas ainda não entendi, meus codigos estao assim.

<?php
    class dados{
    public class dados implements PasswordFunction{


    $nome = $_POST['nome'];
    $user = $_POST['usuario'];
    $senha = $_POST['senha'];
    $confs = $_POST['confsenha'];
    $email = $_POST['email'];

    $erros = array();
    
    $passfunc = new passcheck();
    $passfunc->passcheck('1234');

    if(!$nome){
        $erros[] = "Nome não definido!";
    }
    
    if(!$user){
        $erros[] = "Usuario não definido!";
    }

    if(!$senha){
        $erros[] = "Senha não definida!";
    }

    if(!$confs){
        $erros[] = "Confirmação de senha não definida!";
    }

    if(!$email){
        $erros[] = "E-mail não definido!";
    }



    if($nome){
        if(!ctype_alpha($nome) === false){
            $erros[] =  "Insira Nome e Sobrenome!";
        }


        $range2 = range(3,30);
        if(!in_array(strlen($nome), $range2)){
            $erros[] = "Nome deve conter entre 3 e 30 caracteres!";
        }
    }

    if($user){
        if(!ctype_alnum($user)){
            $erros[] =  "Usuario só pode conter letras e numeros!";
        }

        $range = range(1,30);
        if(!in_array(strlen($user),$range)){
            $erros[] = "Usuario deve conter entre 1 e 30 caracteres!";
        }
    }

    if($senha){
        if($senha != $passcheck){
            $erros[] = "senha deve conter uma MAIUSCULA, um numero e de 8 a 20 caracteres!";
        }
    }

    if($senha && $confs){
        if($senha != $confs){
            $erros[] = "Senhas não conferem!";
        }
    }

    if($email){
        if (!filter_var($email, FILTER_VALIDATE_EMAIL)){
            $erros[] = "E-mail no formato errado EX.: email@email.com";
        }
    }

    if(count($erros) > 0){
        foreach($erros as $erro){
            echo $erro. "<br>";
        }
    }else{
        echo "Registrado com sucesso Usuario: <b>" .$user. "</b> e Senha: <b>" .$senha. "<b>";
    }

    
    echo "<br>";
    echo "<br><a href='cadastro.php'><i> Voltar para Cadastro </i></a>";
}
?>


<?php
public class passcheck{
 
        $password_length = 8;
  
        public function passcheck($senha) {
            $returnVal = True;
              
                if ( strlen($senha) < $password_length ) {
                    $returnVal = False;
                }
                  
                if ( !preg_match("#[0-9]+#", $senha) ) {
                    $returnVal = False;
                }
                  
                if ( !preg_match("#[a-z]+#", $senha) ) {
                    $returnVal = False;
                }
                  
                if ( !preg_match("#[A-Z]+#", $senha) ) {
                    $returnVal = False;
                }
  
            return $returnVal;
        }
}}
?>


e esta gerando esse erro, nao consigo ver aonde estou errando e se estou tentando utilizar isso de maneira correta, ja fiz colocando alguns ifs no primeiro codigo, mas gostaria de aprender a usar implements/extends/classes
desde ja grato pela atenção!! muito obrigado msm.

Parse error: syntax error, unexpected 'class' (T_CLASS), expecting variable (T_VARIABLE) in C:\\xampp\\htdocs\\vitor01\\dados.php on line 3
Responder
Ei carinha. Pra você entender melhor sobre como utilizar class e interfaces, procura saber sobre programação orientada a objetos. A famosa OO! Vai te ajudar muito. Ajuda a melhorar a arquitetura da sua aplicação e fica mais fácil de dar manutenção depois.
Responder

21/03/2019

Geovane Souza

Boa noite, analisando seu código vi que tem tem muito match desnecessário, o código correto seria.
<?php
class PasswordFunctions {
 
        private $password_length = 8;
  
        public function passcheck($senha) {
              
                if ( strlen($senha) < $this->password_length ) {
                    return false;
                }

                if( ! preg_match( '/^[a-zA-Z0-9]+/', $senha ) {
                    return false;
                }

                return true;
        }
}
?>
Responder

26/03/2019

Vitor Ferreira

Bom, vou tentar te ajudar.

Primeira coisa que eu notei, sua função não esta dentro de uma classe, voce implementa classes e não funções.

Pode tentar assim:

<?php
public class PasswordFunctions{

        $password_length = 8;
 
        public function passcheck($senha) {
            $returnVal = True;
             
                if ( strlen($senha) < $password_length ) {
                    $returnVal = False;
                }
                 
                if ( !preg_match("#[0-9]+#", $senha) ) {
                    $returnVal = False;
                }
                 
                if ( !preg_match("#[a-z]+#", $senha) ) {
                    $returnVal = False;
                }
                 
                if ( !preg_match("#[A-Z]+#", $senha) ) {
                    $returnVal = False;
                }
 
            return $returnVal;
        }
}
?>


E então em sua classe que você quer implementar ela, voce coloca na sua classe dessa forma:

public class Login implements PasswordFunctions { ... }


E acredito que estanciando a classe em uma variavel, voce consiga chamar a função:

 <?php
$passfunc = new PasswordFunctions();

$passfunc->passcheck('1234');
?>


Acredito que assim voce consiga chamar sua função como deseja.

Espero ter ajudado. :D


Boa tarde depois de alguns dias consegui!! li algumas coisas e um amigo me ajudou, sua explicação esta mto boa, nao tinha entendido, muito obrigado!!
Responder