Jump to content

Recommended Posts

Posted

Boas pessoal, estou a tentar fazer um login, e esta a funcionar +-, vou mostrar codigo para ver se alguem me consegues dizer poque me dá erro de que a variável senha2 nao esta declarada


<?php
$nome=$_POST['nome'];
$login=$_POST['login'];
$senha=$_POST['senha'];
$email=$_POST['email'];
//$senha2=$_POST['senha'];

$conexao=mysql_connect('localhost', 'root','1807');
if(!$conexao)
{ echo 'Falha na ligação </br>';
 echo mysql_error(); exit; }

else{
mysql_select_db("empresa", $conexao);
$pesquisar = mysql_query("SELECT * FROM login WHERE login='$login'", $conexao) ;
$contagem = mysql_num_rows($pesquisar); //traz o resultado da pesquisa acima


if ( $contagem == 1 ) {
 $errors = "Login escolhido já registado.<br>"; //se o login já existir, ele adiciona o erro
 }

if ( $login == "" ) {
 $errors = "Você não digitou um login<br>"; //confere se o campo login não ficou vazio
 }

if ( $senha == "" ) {
 $errors = "Você não digitou uma senha<br>"; //confere se o campo senha não ficou vazio
 }

if ( $senha != $senha2 ) {
 $errors = "Você digitou 2 senhas diferentes.<br>"; //adiciona o erro caso o usuário digitou 2 senhas diferentes
 }

if ( $errors == "" ) { //checa se houve ou não erros no cadastro


 $cadastrar = mysql_query("INSERT INTO login (nome, login, senha, email)
   VALUES ('$nome','$login','$senha','$email')", $conexao); //insere os campos na tabela 


   if ( $cadastrar == 1 ) {
     echo "<div align=center><font size=2 face=Verdana, Arial, Helvetica, sans-serif><br><br><br>Registo com sucesso.</font></div>"; //se cadastrou com sucesso o usuário aparece essa mensagem
     } else {
  echo "<div align=center><font size=2 face=Verdana, Arial, Helvetica, sans-serif><br><br><br>Ocorreu um erro no servidor ao tentar se registar.</font></div>"; //caso houver um erro quanto as configurações aparece essa mensagem
}
 } else {
   echo "<div align=center><font size=2 face=Verdana, Arial, Helvetica, sans-serif>Ocorreu os seguintes erros ao tentar se registar:<br><br>$errors</font></div>"; //mostra os erros do usuário, caso houver
}

}
mysql_close($conexao);
?>

Posted (edited)

qual a mensagem real que te é apresentada ?

Notice: Undefined variable: senha2 in C:\xampp\htdocs\Gestao\Enviar_Registo.php on line 39

Ocorreu os seguintes erros ao tentar se registar:

Você digitou 2 senhas diferentes.

Edited by Whiteangel
Posted

que linha de código declara a variável $senha2 antes de a usares na seguinte linha ?

if ( $senha != $senha2 ) { // <-----------------------------------
 $errors = "Você digitou 2 senhas diferentes.<br>"; //adiciona o erro caso o usuário digitou 2 senhas diferentes
}

nenhuma

Posted

No inicio, tens de fazer:

$senha2 = $_POST['senha2'];

Ja declarei

$senha2 = $_POST['senha2'];

Agora dá me erro aqui que nao esta declarado $erros,

if ( $erros == "" ) { //checa se houve ou não erros no cadastro

Mas se o declarar , da-me indice nao definido

$erros=$_POST['erros'];
Posted

Repara, muito provavelmente não tens nenhum elemento no form com o id = erros, pois não?

Em termos gerais a variável $_POST contém apenas os dados submetidos por um formulário, o que não tem nada a ver com a função/objectivo da variável $erros.

Ou seja, se não existir nenhum erro, a variável não será definida, logo o PHP emite um aviso. A solução é definir a variável $erros como vazia ao inicio:

$erros = '';
if ( $contagem == 1 ) {

PS: No código que tinhas em cima, a variável chamava-se $errors, e no código em baixo, $erros.

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

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.