Estou criando uma tela de cadastro de usuario, porém quando o usuario não insere nenhuma informação, ou digita a senha errada ou informa um email invalido ou email já esta sendo utilizado, as mensagens são mostradas em cima do titulo CADASTRO, com isso empurrando os campos para baixo, desconfigurando o layout. Tentei inserir essas mensagens como echo "<script>alert(mensagem.'); window.location.href='arquivo.php';</script>";, mas ocorreu um erro e o usuario acaba sendo inserido no banco mesmo sem as devidas validações.
Como eu poderia fazer isso?
Segue o codigo do CADASTRO.PHP
<?php
include("config.php");
if (isset($_POST['login'])){
//pega a sessão id do usuario
session_start();
$sessao = session_id();
$login = $_POST['login'];
$senha = $_POST['senha'];
$email = $_POST['email'];
$nome = $_POST['nome'];
$sobrenome = $_POST['sobrenome'];
$empresa = $_POST['empresa'];
$depto = $_POST['depto'];
$fone = $_POST['fone'];
$sql_busca = "SELECT * FROM user WHERE login = '$login'";
$exe_busca = mysql_query($sql_busca) or die (mysql_error());
$num_busca = mysql_num_rows($exe_busca);
$sql_busca2 = "SELECT * FROM user WHERE email = '$email'";
$exe_busca2 = mysql_query($sql_busca2) or die (mysql_error());
$mensagem .= "<p>Você efetuou um cadastro na intranet.</p></br></br>";
$mensagem .= "<p>Para confirmar seu cadastro e ativar sua conta, por favor clique no link abaixo ou copie e cole o link na barra de endereço do seu navegador.</p>";
Pergunta
chris_ammy
Olá,
Estou criando uma tela de cadastro de usuario, porém quando o usuario não insere nenhuma informação, ou digita a senha errada ou informa um email invalido ou email já esta sendo utilizado, as mensagens são mostradas em cima do titulo CADASTRO, com isso empurrando os campos para baixo, desconfigurando o layout. Tentei inserir essas mensagens como echo "<script>alert(mensagem.'); window.location.href='arquivo.php';</script>";, mas ocorreu um erro e o usuario acaba sendo inserido no banco mesmo sem as devidas validações.
Como eu poderia fazer isso?
Segue o codigo do CADASTRO.PHP
<?php
include("config.php");
if (isset($_POST['login'])){
//pega a sessão id do usuario
session_start();
$sessao = session_id();
$login = $_POST['login'];
$senha = $_POST['senha'];
$email = $_POST['email'];
$nome = $_POST['nome'];
$sobrenome = $_POST['sobrenome'];
$empresa = $_POST['empresa'];
$depto = $_POST['depto'];
$fone = $_POST['fone'];
$sql_busca = "SELECT * FROM user WHERE login = '$login'";
$exe_busca = mysql_query($sql_busca) or die (mysql_error());
$num_busca = mysql_num_rows($exe_busca);
$sql_busca2 = "SELECT * FROM user WHERE email = '$email'";
$exe_busca2 = mysql_query($sql_busca2) or die (mysql_error());
$num_busca2 = mysql_num_rows($exe_busca2);
//Verifica se os campos estão preenchidos
if ($_POST['login'] == "" || $_POST['senha'] == "" || $_POST['senha2'] == "" || $_POST['email'] == "" || $_POST['nome'] == ""){
$ac[] = "Por favor preencha todos os campos corretamente.";
}
//Verifica se já existe o login
if ($num_busca > 0){
$ac[] = "Esse login já esta sendo usado por outro usuario.";
}
//Verifica se já existe o e-mail
if ($num_busca2 > 0){
$ac[] = "Esse e-mail já esta sendo usado por outro usuario.";
}
//Verifica se o e-mail esta correto
if (!ereg("@.", $_POST['email'])){
$ac[] = "E-mail invalido.";
}
//Verifica se as duas senha são diferente
if ($_POST['senha'] != $_POST['senha2']){
$ac[] = "Verifique se as duas senha estão correta.";
}
//Verifica se todas estão corretas
if (!isset($ac)){
//Inclui o cadastro no mysql
$sql_inclu = "INSERT INTO user(login, senha, email, nome, sobrenome, empresa, depto, fone, sessao) VALUES
('$login', '$senha', '$email', '$nome', '$sobrenome', '$empresa', '$depto', '$fone', '$sessao')";
$exe_inclu = mysql_query($sql_inclu) or die (mysql_error());
// Busca o Último ID cadastrado na tabela
$ultimo_id = mysql_insert_id();
$tópico = "Confirmação de cadastro - Intranet";
$mensagem = "<html>";
$mensagem .= "<body>";
$mensagem .= "<p>Prezado(a) Sr(a). <strong>$nome $sobrenome</strong>,</p></br>";
$mensagem .= "<p>Você efetuou um cadastro na intranet.</p></br></br>";
$mensagem .= "<p>Para confirmar seu cadastro e ativar sua conta, por favor clique no link abaixo ou copie e cole o link na barra de endereço do seu navegador.</p>";
$mensagem .= "<a href=$site/active.php?ac=$sessao&usr=$ultimo_id'>$site/active.php?ac=$sessao&usr=$ultimo_id</a></p></br>";
$mensagem .= "<p>Após a ativação de sua conta, você poderá ter acesso ao conteúdo exclusivo, efetuando o login com os dados abaixo:</p></br></br>";
$mensagem .= "<p>----------------------------------<p/></br>";
$mensagem .= "<p><strong>Login</strong>: $login </br>";
$mensagem .= "<strong>Senha</strong>: $senha </p></br>";
$mensagem .= "<p>----------------------------------</p></br>";
$mensagem .= "<p>Obrigado!</p></br> </br></br>";
$mensagem .= "<p>Esta é uma mensagem automática, por favor não responda!</p>";
$mensagem .= "</body>";
$mensagem .= "</html>";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: Intranet <cristina.oliveira@bmslog.com>\r\n"; // Mude para o e-mail do remetente, não pode ser o mesmo do destinatário
$headers .= "To: <$email>\r\n";
echo "<script>alert('Cadastro efetuado com sucesso, verifique seu e-mail para ativar a conta.'); window.location.href='index.php';</script>";
//enviar para o email o login, senha e o codigo de ativação
mail($email, $tópico, $mensagem, $headers);
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<title>|| *** CADASTRO ***||</title>
<link href="form.css" rel="stylesheet" type="text/css" />
<script language=javascript>
//MÁSCARA DE VALORES
function txtBoxFormat(objeto, sMask, evtKeyPress) {
var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;
if(document.all) { // Internet Explorer
nTecla = evtKeyPress.keyCode; }
else if(document.layers) { // Nestcape
nTecla = evtKeyPress.which;
}
sValue = objeto.value;
// Limpa todos os caracteres de formatação que
// já estiverem no campo.
sValue = sValue.toString().replace( "-", "" );
sValue = sValue.toString().replace( "-", "" );
sValue = sValue.toString().replace( ".", "" );
sValue = sValue.toString().replace( ".", "" );
sValue = sValue.toString().replace( "/", "" );
sValue = sValue.toString().replace( "/", "" );
sValue = sValue.toString().replace( ":", "" );
sValue = sValue.toString().replace( ":", "" );
sValue = sValue.toString().replace( "(", "" );
sValue = sValue.toString().replace( "(", "" );
sValue = sValue.toString().replace( ")", "" );
sValue = sValue.toString().replace( ")", "" );
sValue = sValue.toString().replace( " ", "" );
sValue = sValue.toString().replace( " ", "" );
fldLen = sValue.length;
mskLen = sMask.length;
i = 0;
nCount = 0;
sCod = "";
mskLen = fldLen;
while (i <= mskLen) {
bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/") || (sMask.charAt(i) == ":"))
bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))
if (bolMask) {
sCod += sMask.charAt(i);
mskLen++; }
else {
sCod += sValue.charAt(nCount);
nCount++;
}
i++;
}
objeto.value = sCod;
if (nTecla != 8) { // backspace
if (sMask.charAt(i-1) == "9") { // apenas números...
return ((nTecla > 47) && (nTecla < 58)); } // números de 0 a 9
else { // qualquer caracter...
return true;
} }
else {
return true;
}
}
</script>
</head>
<body>
<?php
if (isset($ac)){
for($i=0;$i<count($ac);$i++){
echo "<li>".$ac[$i];
}
}
?>
<form id="form1" name="form1" method="post" action="<? $_SERVER['Sistema de login/PHP_SELF]?>">
<div id="header">
<h1>CADASTRO</h1>
</div>
<table id="todoform">
<br><br>
<tr>
<td width="90" td height="24"><label>Nome: </label> </td>
<td><input name="nome" type="text" size="50" maxlength="50" id="nome"></td>
<td></td> <td></td>
<td width="90" td height="24"><label>Sobrenome: </label></td>
<td><input name="sobrenome" type="text" size="50" maxlength="50" id="sobrenome"></td>
</tr>
<tr>
<td width="90" td height="24"><label>Empresa: </label> </td>
<td><select name="empresa">
<option value="">
<option value="BBS">BBS
<option value="BMS">BMS
<option value="Motoliner">Motoliner
<option value="Outros">Outros
</select> </td>
<td></td> <td></td>
<td width="90" td height="24"><label>Departamento: </label></td>
<td><select name="depto">
<option value="">
<option value="Administração">Administração
<option value="Comercial">Comercial
<option value="Compras">Compras
<option value="Contabil">Contabil
<option value="Financeiro">Financeiro
<option value="Operação">Operação
<option value="Planejamento">Planejamento
<option value="Projetos">Projetos
<option value="RH">RH
<option value="TI">TI
<option value="Outros">Outros
</select> </td>
</tr>
<tr>
<td width="90" td height="24"><label>Fone com DDD: </label> </td>
<td><input name="fone" type="text" size="30" maxlength="12" id="fone" onkeypress="return txtBoxFormat(this, '99-9999-9999', event);"></td>
<td></td> <td></td>
<td height="24"><label>*E-mail</label></td>
<td><input name="email" type="text" size="50" maxlength="50"></td>
</tr>
<tr>
<td width="90" td height="24"><label>*Login: </label> </td>
<td><input name="login" type="text" size="30" maxlength="15"></td>
<td></td> <td></td>
</tr>
<tr>
<td width="90" td height="24"><label>*Senha: </label></td>
<td><input name="senha" type="password" size="30" maxlength="8" id="senha"></td>
<td></td> <td></td>
<td width="90" td height="24"><label>*Repetir senha: </label></td>
<td><input name="senha2" type="password" size="30" maxlength="8" id="senha2"></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td height="30" colspan="2"><i><font color="red">*Campos de preenchimento obrigatório</font></i></td>
<tr>
<td height="53" colspan="4">
<input name="submit" type="submit" value="Enviar" class="botao">
<input name="Voltar" type="button" value="Voltar" class="botao" onClick="window.location='index.php';" >
</td>
</tr>
<tr>
<td></td>
</tr>
</table>
</form>
</body>
</html>
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.