Só mais uma coisinha que deve ser fácil mas eu nao percebo muito disto. Eu já coloquei o UNIQUE mas eu queria que aparecesse uma mensagem de erro ("Email já existe! Escolha outro.") na página como estas que estão em vermelho debaixo do email. http://prnt.sc/coqce0
Código Página de Inscrição:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$Validacao = True;
// Verificar que os campos obrigatórios estão preenchidos
// Campo Nome
if (empty($_POST['Nome']))
{
$ErroNome = "<strong>Preenchimento obrigatório</strong>";
$Validacao = False;
}
// Campo Email
if (empty($_POST['Email']))
{
$ErroEmail = "<strong>Preenchimento obrigatório</strong>";
$Validacao = False;
}
// Campo Password
if (empty($_POST['Password']))
{
$ErroPassword = "<strong>Preenchimento obrigatório</strong>";
$Validacao = False;
}
// Confirmar a Password
if (empty($_POST['Confirmar_Password']))
{
$ErroConfirmar_Password = "Preenchimento obrigatório";
$Validacao = False;
}
if ($_POST['Password'] != $_POST['Confirmar_Password'])
{
$ErroConfirmar_Password = "<strong>Password deve ser igual</strong>";
$Validacao = False;
}
// Atribuir os dados do formulário a um array e, ao mesmo tempo, retirar carateres perigosos
$utilizador = array('Nome' => strip_tags(trim($_POST['Nome'])),
'Email' => strip_tags(trim($_POST['Email'])),
'Password' => strip_tags(trim($_POST['Password'])));
// Se não ocorreram erros de validação, criar o novo utilizador
if ($Validacao)
{
if (UserManager::CriarUtilizador($utilizador))
{
// Redirecionar para a página inicial
header('Location: Obrigado.php');
}
else
{
echo "<div class='alert alert-danger' role='alert'><span class='glyphicon glyphicon-remove'></span> <strong>Ocorreu um erro ao tentar criar o novo utilizador!</strong></div>";
}
}
}
?>
<div class="container">
<h1><strong><font color="#FFFFFF">Inscrição</font></strong></h1>
</div>
<br />
<div class="container">
<form name="DadosUtilizador" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" class="form-horizontal" role="form">
<!-- Nome (campo obrigatório) -->
<div class="form-group <?php if (!empty($ErroNome)) { ?>has-error<?php } ?>">
<label for="Nome" class="col-sm-2 control-label"><font color="#FFFFFF">Nome</font> <span style='color:#ff0000'>*</span></label>
<div class="col-sm-10">
<input type="text" name="Nome" value="<?php if (!empty($_POST['Nome'])) echo $_POST['Nome']; ?>" maxlength="50" class="form-control" placeholder="Nome" autofocus />
<?php if (!empty($ErroNome)) { ?>
<span class="help-block small" style="color:#ff0000"><?php echo $ErroNome; ?></span>
<?php } ?>
</div>
</div>
<!-- Email (campo obrigatório) -->
<div class="form-group <?php if (!empty($ErroEmail)) { ?>has-error<?php } ?>">
<label for="Email" class="col-sm-2 control-label"><font color="#FFFFFF">Email</font> <span style='color:#ff0000'>*</span></label>
<div class="col-sm-10">
<input type="text" name="Email" value="<?php if (!empty($_POST['Email'])) echo $_POST['Email']; ?>" maxlength="100" class="form-control" placeholder="Email" />
<?php if (!empty($ErroEmail)) { ?>
<span class="help-block small" style="color:#ff0000"><?php echo $ErroEmail; ?></span>
<?php } ?>
</div>
</div>
<!-- Password (campo obrigatório) -->
<div class="form-group <?php if (!empty($ErroPassword)) { ?>has-error<?php } ?>">
<label for="Password" class="col-sm-2 control-label"><font color="#FFFFFF">Password</font> <span style='color:#ff0000'>*</span></label>
<div class="col-sm-10">
<input type="password" name="Password" value="<?php if (!empty($_POST['Password'])) echo $_POST['Password']; ?>" maxlength="100" class="form-control" placeholder="Password" />
<?php if (!empty($ErroPassword)) { ?>
<span class="help-block small" style="color:#ff0000"><?php echo $ErroPassword; ?></span>
<?php } ?>
</div>
</div>
<!-- Confirmar Password (campo obrigatório) -->
<div class="form-group <?php if (!empty($ErroConfirmar_Password)) { ?>has-error<?php } ?>">
<label for="Confirmar_Password" class="col-sm-2 control-label"><font color="#FFFFFF">Confirmar Password</font> <span style='color:#ff0000'>*</span></label>
<div class="col-sm-10">
<input type="password" name="Confirmar_Password" value="<?php if (!empty($_POST['Confirmar_Password'])) echo $_POST['Confirmar_Password']; ?>" maxlength="100" class="form-control" placeholder="Confirmar Password" />
<?php if (!empty($ErroConfirmar_Password)) { ?>
<span class="help-block small" style="color:#ff0000"><?php echo $ErroConfirmar_Password; ?></span>
<?php } ?>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<p class="small"><strong><font color="#FFFFFF">Campos assinalados com</font> <span style='color:#ff0000'>*</span> <font color="#FFFFFF">são obrigatórios</font></strong></p>
<button type="submit" class="btn btn-success">Criar</button>
<a class="btn btn-danger" href="index.php">Cancelar</a>
</div>
</div>
</form>
</div>
Código UserManager:
public static function CriarUtilizador($utilizador)
{
$hash = "";
// Inicializar uma variável que sinaliza o sucesso ou insucesso da operação
$sucesso = False;
// Criar a ligação
$mysqli = new mysqli(self:: $DB_Server, self::$DB_User, self::$DB_Password, self::$DB_Name);
// Verificar se a ligação foi efetuada com sucesso
if (!$mysqli->connect_error)
{
/* IMPORTANTE:
Antes de interagir com a base de dados, estabelecer o character set.
*/
$mysqli->set_charset("utf8");
// Preparar a query
if ($stmt = $mysqli->prepare("INSERT INTO utilizador (Nome, Email, Password) VALUES (?, ?, ?)"))
{
// Codificar a password
$hash = password_hash($utilizador['Password'], PASSWORD_DEFAULT);
$stmt->bind_param('sss', $utilizador['Nome'], $utilizador['Email'],$hash);
// Executar a query e verificar que não retornou FALSE
if ($stmt->execute())
{
// A operação foi executada com sucesso
$sucesso = True;
}
$stmt->close();
}
// Terminar a ligação
$mysqli->close();
}
return $sucesso;
}
↧