Jump to content
Hijack

[Resolvido] Erro a efectuar registo

Recommended Posts

Hijack

Olá boa noite pessoal, sou novo neste fórum e extremamente "verdinho" na linguagem php. Estou agora a criar a minha primeira pagina em php com registo de utilizadores. Quando preencho todos os dados de registo e clico em registar recebo a mensagem que diz as passwords não correspondem. Gostaria que verificassem o meu código e me esclarecessem o que fiz de errado.

Codigo:

<div class="conteudoreg">
                
				<div class="form">
					<div id="toprow"><?php echo "<h1>Registo</h1>";?></div>
                        <div id="midrow">
                        
                                    
        <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<table> 
<?php

// dados do formulario de registo! // data form
$submit = 'submit';
$fullname = strip_tags('fullname');
$username = strtolower(strip_tags('username'));
$email = strip_tags('email');
$password = strip_tags('password');
$repeatpassword = strip_tags('repeatpassword');
$date = date("y-m-d");



if (isset($_POST['submit']))
{
//abrir a base de dados!
			$connect = mysql_connect("**","********","*********")or die("ERROR: De momento não é possivel estabelecer ligação com o servidor!"); 
//seleccionar a base de dados!
			mysql_select_db("dblusiwebdb")or die ("ERRO: Não é possivel ligar á base de dados!");

$namecheck = mysql_query("SELECT username FROM users WHERE username ='$username'");
$count = mysql_num_rows($namecheck);

if ($count!=0)
{
	print ("O utilizador que introduziu já existe, escolha outro nome por favor!");
	die();
}
// verifica se existe

if ($fullname&&$username&&$email&&$password&&$repeatpassword)
{
	if ($password==$repeatpassword)
	{
// verifica o tamanho do nome de utilizador ou nome complecto!
		if (strlen($username)>25||strlen($fullname)>25)
		{
		print "Nome de utilizador ou Nome completo é muito longo!";		
		}
		else
			{
// verifica o tamanho da password!
				if (strlen($password)>25||strlen($password)<6)
				{
					print "A password tem de ter entre 6 a 25 caracteres!";	
				}
				else
				{
//registar utilizador!

//encripta a password!
	                $password = md5($password);
	                $repeatpassword = md5($repeatpassword);


					$queryreg = mysql_query("INSERT INTO users VALUES ('','$fullname','$username','$password','$date','$email')");

					print ("Registo concluido com sucesso! <a href='index.html'>Ir para a página de Login!</a>");
				}
			}
		}
	else
		print "As passwords não correspondem!";
} 
else
	print "Por favor preencha <b>todos</b> os campos!";
}


?>

<tr>
    	<td>
        Nome completo:
        </td>
        <td>
        <input type="text" name="fullname" />
        </td>
    </tr>
    <tr>
    	<td>
        Nome de utilizador:
        </td>
        <td>
        <input type="text" name="username" />
        </td>
    </tr>
    <tr>
    	<td>
        Correio electrónico:
        </td>
        <td>
        <input type="text" name="email" />
        </td>
    </tr>
    <tr>
    	<td>
        Password:
        </td>
        <td>
        <input type="password" name="password" />
        </td>
    </tr>
    <tr>
    	<td>
        Confirmar password:
        </td>
        <td>
        <input type="password" name="repeatpassword" />
        </td>
    </tr>

</table>
	<p>
	<input type="submit" name="submit" value="Registar" />
</form>
      
                     </div>
                        <div id="botrow"><span>  * Campos de preenchimento obrigatório.   </span></div>
			</div>
</div>

Obrigado a todos

Share this post


Link to post
Share on other sites
Hijack

Bem, já descobri o problema, declarei as variaveis desta forma

 $submit = 'submit';

quando deveria ser

$submit = $_POST['submit'];

<?php
// dados do formulario de registo! // data form
$submit = $_POST['submit'];
$fullname = strip_tags($_POST['fullname']);
$username = strtolower(strip_tags($_POST['username']));
$email = strip_tags($_POST['email']);
$password = strip_tags($_POST['password']);
$repeatpassword = strip_tags($_POST['repeatpassword']);
$date = date("y-m-d");

Mas agora encontro outro erro, depois de corrigir as variáveis, quando visualizo no browser aparece-me

Notice: Undefined index: submit in C:\wamp\www\olivais\pagregisto.php on line 167

Notice: Undefined index: fullname in C:\wamp\www\olivais\pagregisto.php on line 168

Notice: Undefined index: username in C:\wamp\www\olivais\pagregisto.php on line 169

Notice: Undefined index: email in C:\wamp\www\olivais\pagregisto.php on line 170

Notice: Undefined index: password in C:\wamp\www\olivais\pagregisto.php on line 171

Notice: Undefined index: repeatpassword in C:\wamp\www\olivais\pagregisto.php on line 172

que corresponde precisamente ás linhas onde foram declaradas as variáveis e isto origina que o formulário fique fora das div's, como se não tivesse folhas de estilo.  :bored:

Se me poderem ajudar agradecia.

Obrigado

Share this post


Link to post
Share on other sites
mAiN_iNfEcTiOn

Bom dia Hijack...

Repara que esse código que colocaste vai correr antes sequer de ter sido feito um POST....

Daí o ele dar esse erro....

tens que fazer a seguinte validação ao teu código:

if( count($_POST) > 0){
    /* O teu código aqui */
}

Share this post


Link to post
Share on other sites
Hijack

Bom dia mAiN_iNfEcTiOn,

já corrigi o erro e está tudo a funcionar como devia.

Fico muito grato pelo teu apoio e por me ajudares a resolver o meu erro.

Mais uma vez os meus sinceros agradecimentos.

Share this post


Link to post
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.