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>
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.
include_once("Class.usuario.php"); <--- Mostra isto E estava a falar disto: <form action='cad_usu.php' method='post'>
<? 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>"; } } ?>
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.