0
Hello. The code below does not allow the user to choose an already used name. But I would still like to warn the user who chose the wrong name so he knows he needs to choose another registration name.
include_once 'database.php';
// Verifica se o formulário foi submetido
if($_SERVER['REQUEST_METHOD'] == 'POST'){
/* Armazena os dados enviados pelo formulário em uma
* variável normal para não trabalhar com a variável global $_POST (não é seguro)
*/
$post = $_POST;
// Verifica se todos campos vieram pelo formulário e se estão preenchidos
if(isset($post['email']) && $post['email'] &&
isset($post['username']) && $post['username'] &&
isset($post['password']) && $post['password']){
// Prepara uma sentença para ser executada
$statement = $pdo->prepare('INSERT INTO tbl_users (email, username, password) VALUES (:email, :username, :password)');
// Filtra os dados e armazena em variáveis (o filtro padrão é FILTER_SANITIZE_STRING que remove tags HTML)
$email = filter_var($post['email']);
$username = filter_var($post['username']);
$password = filter_var($post['password']);
// Adiciona os dados acima para serem executados na sentença
$statement->bindParam(':email', $email);
$statement->bindParam(':username', $username);
$statement->bindParam(':password', $password);
// Executa a sentença já com os valores
if($statement->execute()){
// Definimos a mensagem de sucesso
$_SESSION['message'] = 'Usuário cadastrado com sucesso';
}else{
// Definimos a mensagem de erro
$_SESSION['message'] = 'Falha ao cadastrar usuário';
}
}else{
// Definimos a mensagem de erro
$_SESSION['message'] = 'Preencha todos os campos';
}
}
// Redirecionamos para a página inicial
header('Location: login.php');
?>
This page receives the data through a redirect coming from a form, or you are using ajax?
– Leo Letto
Comes from a simple form.
– Iohanan Carvalho
It is already preventing two users with the same name, but it does not warn who puts the name that already exists and goes straight to the login page, without registering the person.
– Iohanan Carvalho
What you did in your script was to create a Session to save the message
– Leo Letto
If there is already a user with the same name you will send it back to login anyway?
– Leo Letto
No. I want the system to warn that the name already exists so that the user can fix it before going to login.
– Iohanan Carvalho
I made a few changes to your code, take a look and see if it fits
– Leo Letto