Validação em PDO OOP
Boa tarde a todos.
Estou desenvolvendo um sistema de registro para fins de estudos, mas tenho algumas dúvidas e dificuldades até. Estou usando "programação orientada a objetos", e quero validar alguns campos do meu registro, se puderem me auxiliar, será de grande ajuda.
Meu Diretório:
Projeto1/
├── backend/
│ ├── classes/
│ │ ├── Register.php
├── index.php
Em Register.php tenho o seguinte código para fazer a validação, mas acredito que estou fazendo algo de errado.
public function setUsername($username) {
$sql = "SELECT * FROM $this->table WHERE username = :username";
$stmt = Database::prepare($sql);
$stmt->execute(array('username' => $_POST["username"]));
if(empty($_POST["username"])) {
return "O campo usuário não pode ser vázio.";
}elseif(ctype_space($_POST["username"])) {
return "Não pode usar apenas espaços no campo de usuário.";
}elseif(strlen($_POST["username"] < 3)) {
return "É necessário no mínimo 3 (três) caracteres no usuário.";
}elseif(strlen($_POST["username"] > 15)) {
return "O máximo é de 15 (quinze) caracteres no usuário.";
}elseif(preg_match("/^[a-zA-Z0-9]*$/", $_POST["username"] == 0)) {
return "O nome de usuário só pode conter letras e números. (sem espaços e sem caracteres epeciais)";
}elseif($stmt->num_rows !== 0) {
return "O nome de usuário já está cadastrado em nossos bancos de dados.";
}else {
$this->username = $username;
}
}
E no **index.php** tenho o seguinte código, acredito que está certo, mas eu gostaria de mostrar as mensagens de erros que estão no **Register.php**, como que posso fazer isso?
$register = new Registers();
if(isset($_POST["cadastrar"])) {
$username = $_POST["username"];
$email = $_POST["email"];
$password = $_POST["password"];
$register->setUsername($username);
$register->setEmail($email);
$register->setPassword($password);
if($register->insert()) {
return "Usuário cadastrado com sucesso.";
}
}
Obrigado pela atenção!Discussão (9)
Carregando comentários...