Verificação de senha PHP
não sei como e quando utilizar implements ou extends por exemplo nessa verificação
quero inseri la em outra "pagina" mas nao sei onde ou como colocar, se eu coloco no começo do codigo da esse erro
se ajudar, coloco o codigo da outra pagina aqui.
<?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.
Vitor Ferreira
Curtidas 0
Melhor post
Alex William
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:
E então em sua classe que você quer implementar ela, voce coloca na sua classe dessa forma:
E acredito que estanciando a classe em uma variavel, voce consiga chamar a função:
Acredito que assim voce consiga chamar sua função como deseja.
Espero ter ajudado. :D
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
GOSTEI 2
Mais Respostas
Vitor Ferreira
18/03/2019
Primeiramente muito obrigado pelo seu tempo, mas ainda não entendi, meus codigos estao assim.
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.
<?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
GOSTEI 0
Vanderley Junior
18/03/2019
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.
GOSTEI 1
Geovane Souza
18/03/2019
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; } } ?>
GOSTEI 1
Vitor Ferreira
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:
E então em sua classe que você quer implementar ela, voce coloca na sua classe dessa forma:
E acredito que estanciando a classe em uma variavel, voce consiga chamar a função:
Acredito que assim voce consiga chamar sua função como deseja.
Espero ter ajudado. :D
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!!
GOSTEI 0