Jump to content

Registo PHP


joaocasta

Recommended Posts

Boas noites tenho uma pagina de registo em PHP, mas nao sei o que se passa, pois sempre que preencho os dados todos diz-me "Tem de preencher todos os campos."

Fica aqui o código:

registar.php


<?php

include "config.php";
include "template.php";


$error = "";
$success = "";
if (!empty($_POST['register'])) {
if (($_POST['username']) && ($_POST['password']) && ($_POST['repassword']) && ($_POST['email']) &&
($_POST['nomecompleto']) && ($_POST['apelido']) && ($_POST['numbi']) && ($_POST['morada']) &&
($_POST['codpostal']) && ($_POST['apelido']) && ($_POST['localidade']) && ($_POST['distrito']) &&
($_POST['idade']) && ($_POST['telefone']) && (int)($_POST['estadocivil']) > 0 &&
(int)($_POST['tipohabitacao']) > 0 && ($_POST['carro']) && ($_POST['marca']) && ($_POST['profissao']) &&
($_POST['profissaogostava']) && ($_POST['profissoesqsei']) && ($_POST['empregador']) && ($_POST['actividadextra']) &&
($_POST['localondepratica']) && ($_POST['agregadofamiliar'])) {
print "<div align='center'><h4>Tem de preencher todos os campos.</h4></div>";

exit;
}

$username = $_POST['username'];

$dupe1 = mysql_num_rows(mysql_query("select * from users where username='$username'"));

if ($dupe1 > 0) {
print "<div align='center'><h4>Esse username ja esta em uso.</h4></div>";

exit;
}

$email = $_POST['email'];

$dupe2 = mysql_num_rows(mysql_query("select * from users where email='$email'"));
if ($dupe2 > 0) {
print "<div align='center'><h4>Esse email ja esta a ser usado.</h4></div>";

exit;
}
elseif(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
print "<div align='center'><h4>Email nao é valido.</h4></div>";

}

//check if passwords are the same
if ($_POST['password'] != $_POST['repassword']) {
print "<div align='center'><h4>Passwords nao coincidem.</h4></div>";

exit;
}

if (empty($error )) {
$username = mysql_real_escape_string($_POST['username']);
$password = md5($_POST['password']);
$email = mysql_real_escape_string($_POST['email']);
$nomecompleto = mysql_real_escape_string($_POST['nomecompleto']);
$apelido = mysql_real_escape_string($_POST['apelido']);
$numbi = mysql_real_escape_string($_POST['numbi']);
$morada = mysql_real_escape_string($_POST['morada']);
$codpostal = mysql_real_escape_string($_POST['codpostal']);
$localidade = mysql_real_escape_string($_POST['localidade']);
$distrito = mysql_real_escape_string($_POST['distrito']);
$idade = mysql_real_escape_string($_POST['idade']);
$telefone = mysql_real_escape_string($_POST['telefone']);
$estadocivil = (int)($_POST['estadocivil']);
$tipohabitacao = (int)($_POST['tipohabitacao']);
$carro = mysql_real_escape_string($_POST['carro']);
$marca = mysql_real_escape_string($_POST['marca']);
$profissao = mysql_real_escape_string($_POST['profissao']);
$profissaogostava = mysql_real_escape_string($_POST['profissaogostava']);
$profissoesqsei = mysql_real_escape_string($_POST['profissoesqsei']);
$empregador = mysql_real_escape_string($_POST['empregador']);
$actividadextra = mysql_real_escape_string($_POST['actividadextra']);
$localondepratica = mysql_real_escape_string($_POST['localondepratica']);
$agregadofamiliar = mysql_real_escape_string($_POST['agregadofamiliar']);


if (empty($error)) {
    $registerquery = mysql_query("INSERT INTO users (username, password, email, nome_completo, apelido, numbi, codigo_postal, localidade, distrito, idade, telefone, estado_civil, tipo_habitacao, carro, marca, profissao, profissao_gostava, profissao_sei, empregador, actividades_extra, local_onde_pratica, numagregadofamiliar) VALUES('".$username."', '".$password."', '".$email."', '".$nomecompleto."', '".$apelido."', '".$numbi."', '".$morada."', '".$codpostal."', '".$localidade."', '".$distrito."', '".$idade."', '".$telefone."', '".$estadocivil."', '".$tipohabitacao."', '".$carro."', '".$marca."', '".$profissao."', '".$profissaogostava."', '".$profissoesqsei."', '".$empregador."', '".$actividadextra."', '".$localondepratica."', '".$agregadofamiliar."',)");
       if($registerquery) {
        $success .= "<div align='center'>A sua conta foi criada. Por favor <a href=\"login.php\">clique aqui para login</a>.</div>";
       } else {
        $error .= "<div align='center'>Desculpe, o registo falhou. Por favor tente de novo.</div>";
      }
   }
}
}
?>

<?php
if (!empty($error)) {
?>
<h1 align='center'>Erro</h1>
<?php echo $error; ?>
<?php
}elseif (!empty($success)) {
echo $success;
}else {
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />

<title>Registo</title>
<link rel="stylesheet" href="style.css" type="text/css" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script language="javascript" src="funcoes.js"></script>
<style type="text/css">
div.dadospessoais {
float:left;
}
div.dadospessoais2 {
  margin: -248px;
  padding-right: 10px;

}
</style>
</head>
<body>
<div id="main">

<div id="login_wrapper">
<div id="login_box">
<form method="post" action="registar.php" name="registerform" id="registerform">
<div class="dadospessoais">
<table>
<tr>
                                    <td>
                                       Username:
                                       </td>
                                       <td>
                                       <input id="username" name="username" type="text" class="input" size="25"/>
                                       </td>
                                   </tr>
<tr>
                                    <td>
                                       Password:
                                       </td>
                                       <td>
                                       <input id="password" name="password" type="password" class="input" size="25"/>
                                       </td>
                                   </tr>
<tr>
                                    <td>
                                       Confirme a Password:
                                       </td>
                                       <td>
                                       <input id="repassword" name="repassword" type="password" class="input" size="25"/>
                                       </td>
                                   </tr>
<tr>
                                    <td>
                                       Email:
                                       </td>
                                       <td>
                                       <input id="email" name="email" type="text" class="input" size="25"/>
                                       </td>
                                   </tr>
<tr>
                                    <td>
                                       Nome Completo:
                                       </td>
                                       <td>
                                       <input name="nomecompleto" type="text" class="input" size="25"/>
                                       </td>
                                   </tr>
<tr>
                                    <td>
                                       Apelido:
                                       </td>
                                       <td>
                                       <input name="apelido" type="text" class="input" size="25"/>
                                       </td>
                                   </tr>
<tr>
                                    <td>
                                       Nº BI:
                                       </td>
                                       <td>
                                       <input name="numbi" type="text" class="input" size="25"/>
                                       </td>
                                   </tr>
<tr>
                                    <td>
                                       Morada:
                                       </td>
                                       <td>
                                       <input name="morada" type="text" class="input" size="25"/>
                                       </td>
                                   </tr>
<tr>
                                    <td>
                                       Código Postal:
                                       </td>
                                       <td>
                                       <input name="codpostal" type="text" class="input" size="25"/>
                                       </td>
                                   </tr>
<tr>
                                    <td>
                                       Localidade:
                                       </td>
                                       <td>
                                       <input name="localidade" type="text" class="input" size="25"/>
                                       </td>
                                   </tr>
<tr>
                                    <td>
                                       Distrito:
                                       </td>
                                       <td>
                                       <input name="distrito" type="text" class="input" size="25"/>
                                       </td>
                                   </tr>
<tr>
                                    <td>
                                       Idade:
                                       </td>
                                       <td>
                                       <input name="idade" type="text" class="input" size="25"/>
                                       </td>
                                   </tr></table></div>
<div style="height: 250px; margin-left: 20px; margin-right: 10px;"></div>
<div class="dadospessoais2"><table><tr>
                                    <td>
                                       Telefone:
                                       </td>
                                       <td>
                                       <input name="telefone" type="text" class="input" size="25"/>
                                       </td>
                                   </tr>
<tr><td>Estado Civil:</td><?php 
$q = 'SELECT id, estadocivil_categoria FROM estadocivilselect';
$result = mysql_query($q);
echo '<td><select name="estadocivil">'; $c='';
while ($row = mysql_fetch_array($result)) {
   echo '<option value="'.$row['id'].'">'.$row['estadocivil_categoria'].'</option>';
}
echo '</select></td><tr>'; ?>
<tr><td>Tipo de Habitação</td><?php 
$q = 'SELECT id, tipohabitacao_categoria FROM tipohabitacaoselect';
$result = mysql_query($q);
echo '<td><select name="tipohabitacao">'; $c='';
while ($row = mysql_fetch_array($result)) {
   echo '<option value="'.$row['id'].'">'.$row['tipohabitacao_categoria'].'</option>';
}
echo '</select></td></tr>'; ?>
<tr>
                                    <td>
                                       Carro:
                                       </td>
                                       <td>
                                       <input name="carro" type="text" class="input" size="25"/>
                                       </td>
                                   </tr>
<tr>
                                    <td>
                                       Marca:
                                       </td>
                                       <td>
                                       <input name="marca" type="text" class="input" size="25"/>
                                       </td>
                                   </tr>
<tr>
                                    <td>
                                       Profissão:
                                       </td>
                                       <td>
                                       <input name="profissao" type="text" class="input" size="25"/>
                                       </td>
                                   </tr>
<tr>
                                    <td>
                                       Profissão que gostava de ter:
                                       </td>
                                       <td>
                                       <input name="profissaogostava" type="text" class="input" size="25"/>
                                       </td>
                                   </tr>
<tr>
                                    <td>
                                       Profissões que sei e posso desempenhar:
                                       </td>
                                       <td>
                                       <input name="profissoesqsei" type="text" class="input" size="25"/>
                                       </td>
                                   </tr>
<tr>
                                    <td>
                                       Empregador:
                                       </td>
                                       <td>
                                       <input name="empregador" type="text" class="input" size="25"/>
                                       </td>
                                   </tr>
<tr>
                                    <td>
                                       Actividades Extra:
                                       </td>
                                       <td>
                                       <input name="actividadextra" type="text" class="input" size="25"/>
                                       </td>
                                   </tr>
<tr>
                                    <td>
                                       Local Onde Pratica:
                                       </td>
                                       <td>
                                       <input name="localondepratica" type="text" class="input" size="25"/>
                                       </td>
                                   </tr>
<tr>
                                    <td>
                                       Nº Agregado Familiar:
                                       </td>
                                       <td>
                                       <input name="agregadofamiliar" type="text" class="input" size="25"/>
                                       </td>
                                   </tr>
</table></div>
<div style="margin-top: 250px; margin-left: 350px;"><input type="submit" name="register" id="register" value="Register" /></div>
</form></div></div>

   <?php
}
?>

</div>
</body>
</html>

E queria que sempre que se o email nao for valido que aparecesse a mensagem, por baixo do campo de email...

E se as passwords nao coincidirem, aparecia a mensagem a dizer que as passwords nao coincidem por baixo do campo da password. E como tenho uma função para colocar os campos vermelhos quando estao vazios nao é precisa aquela mensagem a dizer "Tem de preencher todos os campos.", pois nao?

Espero por ajuda obrigado.

Link to comment
Share on other sites

para veres se a variavel existe usa a funcao isset:

if(isset($_POST["username"])...)

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Link to comment
Share on other sites

e isto:

E queria que sempre que se o email nao for valido que aparecesse a mensagem, por baixo do campo de email...

E se as passwords nao coincidirem, aparecia a mensagem a dizer que as passwords nao coincidem por baixo do campo da password. E como tenho uma função para colocar os campos vermelhos quando estao vazios nao é precisa aquela mensagem a dizer "Tem de preencher todos os campos.", pois nao?

Link to comment
Share on other sites

um emal valido tem que ter um @, 1 letra antes do @, outra letra depois do @ e um .

basicamente tens que criar uma funcao que faca algo do genero(tens que ver que e' uma forma muito simples de ver se o email e' valido!)

podes manter ou nao isso e' deixado ao teu criterio

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Link to comment
Share on other sites

// em cima, onde tens a variavel $error, substitui por um array
$errors = array();

// para adicionares erros ao array, substituis os prints dos mesmos por isto
$errors['email_invalido'] =  "<div align='center'><h4>Email nao é valido.</h4></div>";

// mais em baixo, na parte dos erros, substituis por isto
if (!empty($error))
{
  foreach($errors as $error)
  {
   echo $error;
  }
}

// se quiseres mostrar um erro específico num local diferente
if (isset($errors['email_invalido']))
{
echo $errors['email_invalido'];
}
Edited by yoda
Link to comment
Share on other sites

// se quiseres mostrar um erro específico num local diferente
if (isset($errors['email_invalido']))
{
echo $errors['email_invalido'];
}

esta parte de colocar num local diferente, como sei que por exemplo ela fica por baixo do input? tenho de fazer lá o echo, não é? Só estou a perguntar para depois de fazer tantos topicos e tantas mensagen sobre a mesma coisa.

Link to comment
Share on other sites

ou entao podes utilizar javascript para verificar se todos os campos estão preenchidos e de forma correcta.

Podes fazer isso quando retiras o cursor do caixa de texto (evento onblur, se nao estou em erro), ou entao quando clicas no botao submit.

podes fazer uma função veirificando tudo de uma vez, quando submetes ou entao ir verificando por onde passa o cursor...

"Innovation distinguishes between a leader and a follower." Steve jobs.

Link to comment
Share on other sites

esta parte de colocar num local diferente, como sei que por exemplo ela fica por baixo do input? tenho de fazer lá o echo, não é? Só estou a perguntar para depois de fazer tantos topicos e tantas mensagen sobre a mesma coisa.

Sim, metes onde queres que apareça.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.