1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Pagina de registo nao envia informaçoes para o banco de dados

Discussão em 'Web Development' iniciada por dkduck, 15 de Agosto de 2012. (Respostas: 5; Visualizações: 677)

  1. ola, estou a desenvolver uma pagina de registos, porem quando a pessoa quer registar da sucesso mas as informaçoes como mail,id e password nao vao para o banco dados,aqui fica o codigo.

    <?
    include_once("config.php");
    include_once("Class.usuario.php");


    if(isset($_POST['cadastrar'])){
    if($_POST['email'] == ""){
    echo "O campo nome nao pode ficar vazio.";
    }else if($_POST['usuario'] == ""){
    echo "O campo nome nao pode ficar vazio.";
    }else if($_POST['senha'] == ""){
    echo "O campo nome nao pode ficar vazio.";
    }else {
    $cadastrar = new Usuario();
    $cadastrar->Cadastrar($_POST['email'], $_POST['usuario'], $_POST['senha']);
    }
    }








    ?>


    <form action='cad_usu.php' method='post'>
    <table align='center'>
    <tr>
    <td><b>Email:</b></td>
    <td><input type='text' id='email' name='email' /> (Para recuperação de senha)</td>
    </tr>
    <tr>
    <td><b>Usuario:</b></td>
    <td><input type='text' id='usuario' name='usuario' /></td>
    </tr> <tr>
    <td><b>Senha:</b></td>
    <td><input type='password' id='senha' name='senha' /></td>
    </tr>
    <tr>
    <td></td>
    <td><input type='submit' name='cadastrar' id='cadastrar' value='Regista-te!' /></td>
    </tr>
    </table>




    </form>
     
    Última edição: 15 de Agosto de 2012
  2. Sidner

    Sidner Power Member

    Dava jeio ver esses includes.

    Edit: E é suposo ser aquele o ficheiro para onde vai o Post? Nao tem de ser o nome do proprio ficheiro, visto que tens o php nele proprio? Ja tentaste fazer um echo a ver se estas a apanhar alguma coisa? Se estas, entao eh problema na ligaçao à bd e para isso tens de mostrar a funcao cadastrar.
     
    Última edição: 15 de Agosto de 2012
  3. tas a falar do settings?
     
  4. Sidner

    Sidner Power Member

    include_once("Class.usuario.php"); <--- Mostra isto

    E estava a falar disto:
    <form action='cad_usu.php' method='post'>
     
  5. <?
    include_once("funcao.php");




    class Usuario {



    function Cadastrar($email,$usuario, $senha){
    $this->usuario = AntiSql($usuario);
    $this->email = AntiSql($email);
    $this->senha = md5($senha);

    $consulta = mysql_query("SELECT * FROM usuario where usuario='$usuario' ");
    $conConsulta = mysql_num_rows($consulta);

    if($conConsulta == 0){
    mysql_query("INSERT INTO usuario VALUES('','$this->email', '$this->usuario', '$this->senha', '".date("Y/m/d H:m:s")."') ");
    echo "VOCE FOI REGISTADO COM SUCESSO, CLIQUE AQUI PARA LOGAR <a href='logar.php'>Logar</a>";
    }else{
    echo "Já existe um usuario com estes dados registado. ";
    }

    }


    #####FUNCAO PARA ESQUECI MINHA SENHA SEM ENVIO DE EMAIL #####

    function EsqueciSenha($usuario, $email){
    $this->Email = AntiSql($email);
    $this->Usuario = AntiSql($usuario);
    $sql = mysql_query("SELECT * FROM usuario WHERE email = '$this->Email'");
    $cont = mysql_num_rows($sql);

    if($cont == 0){
    echo "Usuario não existe";
    }else if($cont == 1){
    $senha1 = rand(1111,9999);
    $senha2 = md5($senha1);
    mysql_query("UPDATE usuario SET senha = '$senha2' WHERE email='$this->Email' ");
    Alertar("Sua senha foi Zerada, agora é: ".$senha1 , 0);


    }else{
    echo "Erro nao esperado";

    }




    }


    #####FUNCAO PARA ESQUECI MINHA SENHA COM ENVIO DE EMAIL #####
    /*
    function EsqueciSenha($usuario, $email){
    $this->Email = AntiSql($email);
    $this->Usuario = AntiSql($usuario);
    $sql = mysql_query("SELECT * FROM usuario WHERE email = '$this->Email'");
    $cont = mysql_num_rows($sql);

    if($cont == 0){
    echo "Usuario não existe";
    }else if($cont == 1){
    $senha1 = rand(1111,9999);
    $senha2 = md5($senha1);
    mysql_query("UPDATE usuario SET senha = '$senha2' WHERE email='$this->Email' ");
    mail($this->Email, "Esqueceu sua senha?", "Sua nova senha é $senha1 ");


    }else{
    echo "Erro nao esperado";

    }




    }

    */




    function ListarDados($campo){

    $sql = mysql_query("SELECT * FROM usuario WHERE usuario='$_COOKIE[usuario]'");
    $res = mysql_fetch_assoc($sql);
    $campo = $res[$campo];
    return($campo);
    }


    function EditarDados($email,$usuario, $senha){
    $this->usuario = AntiSql($usuario);
    $this->email = AntiSql($email);
    $this->senha = md5($senha);
    $dados_atuais = mysql_query("SELECT * FROM usuario WHERE usuario='$_COOKIE[usuario]' ");
    $res_dados_atuais = mysql_fetch_assoc($dados_atuais);
    $email_atual = $res_dados_atuais['email'];
    $usuario_atual = $res_dados_atuais['usuario'];



    $consulta = mysql_query("SELECT * FROM usuario WHERE email='$this->email' AND email NOT LIKE '$email_atual' ");
    $conConsulta = mysql_num_rows($consulta);
    if($conConsulta <> 0){
    echo "Não foi possivel fazer a atualização, provavelmente o email já está cadastrado. Utilize a opcao voltar no seu navegador";
    exit;
    }



    $consulta = mysql_query("SELECT * FROM usuario WHERE usuario='$this->usuario' AND usuario NOT LIKE '$usuario_atual' ");
    $conConsulta = mysql_num_rows($consulta);



    if($conConsulta <> 0){
    echo "Não foi possivel fazer a atualização, provavelmente o usuario já está registado. Utilize a opcao voltar no seu navegador";
    exit;
    }

    setcookie("usuario", $this->usuario);
    mysql_query("UPDATE usuario SET email='$this->email', usuario='$this->usuario', senha='$this->senha' WHERE usuario='$_COOKIE[usuario]' ");



    Alertar("Os dados foram atualizados corretamente", 0);
    echo "<script>
    location.href='index.php';
    </script>";






    }
    }










    ?>
     
  6. Sidner

    Sidner Power Member

    Acrescenta ao teu código este segundo if e diz-me o que deu.

    Código:
    [COLOR=#EDEDED]if($conConsulta == 0){[/COLOR]
    [COLOR=#EDEDED]   if(mysql_query("INSERT INTO usuario VALUES('','$this->email', '$this->usuario', '$this->senha', '".date("Y/m/d H:m:s")."') "))[/COLOR]
    [COLOR=#EDEDED]   {
          echo "VOCE FOI REGISTADO COM SUCESSO, CLIQUE AQUI PARA LOGAR <a href='logar.php'>Logar</a>";[/COLOR]
    [COLOR=#EDEDED]   }
      else
      {
         echo "ERRO AO INSERIR REGISTO";
      }
    }
    else{[/COLOR]
    [COLOR=#EDEDED]   echo "Já existe um usuario com estes dados registado. ";[/COLOR]
    [COLOR=#EDEDED]}
    [/COLOR]


    Nota: Não te esqueças de formatar o teu código, fica muito mais fácil de analisar... Só uma pequena dica. :)


    Edit: Já agora, não sei se sabes, mas se estás a saltar algum campo (por exemplo, se tens uma chave a auto-incrementar, como é normal) tens de fazer o INSERT desta maneira:

    Ex:
    Código:
    [/COLOR]mysql_query("INSERT INTO Users (nome,idade,password,email) VALUES ($name,$age,$enc_pass,$visitor_email)");
    
    O que é diferente da maneira com tens é que necessitas de indicar o nome dos campos antes do VALUES. No meu caso, como a tabela tem os campos ID NOME IDADE PASS EMAIL e eu não estou a inserir o ID, é preciso fazer desta maneira.
     
    Última edição: 18 de Agosto de 2012

Partilhar esta Página