Ir para conteúdo
Fórum Script Brasil
  • 0

Problema com mensagens em PHP


chris_ammy

Pergunta

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 "&lt;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 "&lt;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" />

&lt;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

  • 0

Basta trocar:

<?php
if (isset($ac)){
for($i=0;$i<count($ac);$i++){
echo "<li>".$ac[$i];
}
}
?>
De lugar... por exemplo, em vez de:
<?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>
Usar:
<form id="form1" name="form1" method="post" action="<? $_SERVER['Sistema de login/PHP_SELF']?>">
<div id="header">
<h1>CADASTRO</h1>
</div>
<?php
if (isset($ac)){
for($i=0;$i<count($ac);$i++){
echo "<li>".$ac[$i];
}
}
?>

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...