Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

paulo123araujo

Sistema não cadastra no banco de dados

Recommended Posts

To construindo um sistema, porém na hora de fazer o cadastro no banco de dados, no sistema ele fala que deu certo, mais no db não aparece nada. Alguém sabe me falar aonde que está errado?

 

aqui vai o código da página:

 

cadastro.php

<?php
include("includes/header.php");
if($startaction == 1 && $acao == "cadastrar"){
$nome=$_POST["nome"];
$end=$_POST["end"];
$cep=$_POST["cep"];
$email=$_POST["email"];
$senha=$_POST["senha"]; 
$confirmsenha=$_POST["confirmsenha"]; 


if(empty($nome) || empty($end) || empty($email) || empty($senha) || empty($confirmsenha)){
$msg="Preencha todos os campos!";
}else{
if(!filter_var($email,FILTER_VALIDATE_EMAIL)){
$msg="Digite seu email corretamente!";
}else{
if(strlen($cep)>8 || strlen($cep)<8){
$msg="Digite seu cep corretamente!"; 
}else{
if(strlen($senha)<8){
$msg="A senha deve ter no minimo 8 caracteres!"; 
}elseif($senha!=$confirmsenha){ 
$msg="As senhas digitadas devem ser iguais!";
}else{
$conectar=new Cadastro;
echo "<div class=\"flash\">";
$conectar=$conectar->cadastrar($nome,$end,$email,$cep,$senha); 
echo "</div>";
}
}
}
} 
}
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="css/style.css" type="text/css" />
<title>::<?php echo $title?>::</title>
</head>


<body>
<div><center><div class="message"><p><?php echo $msg?></p></div>
<table style="width:450px; border:thin solid #000;">
     <tr>
         <td><center><img src="img/logo.jpg" /></center></td>
        </tr>
    <form method="post" action="cadastro.php?acao=cadastrar">
     <tr>
         <td><font style="font-family:Helvetica; font-size:15px; color:#000;">Nome:<input type="text" name="nome" class="bt-form-cad" /></font></td>
        </tr>
        <tr>
         <td><font style="font-family:Helvetica; font-size:15px; color:#000;">E-mail:<input type="text" name="email" class="bt-form-cad" /></font></td>
        </tr>
        <tr>
         <td><font style="font-family:Helvetica; font-size:15px; color:#000;">Endereço:<input type="text" name="end" class="bt-form-cad" /></font></td>
        </tr>
        <tr>
         <td><font style="font-family:Helvetica; font-size:15px; color:#000;">CEP:<input type="text" name="cep" class="bt-form-cad" /></font></td>
        </tr>
        <tr>
         <td><font style="font-family:Helvetica; font-size:15px; color:#000;">Senha:<input type="password" name="senha" class="bt-form-cad" /></font></td>
        </tr>
        <tr>
         <td><font style="font-family:Helvetica; font-size:15px; color:#000;">Confirme sua senha:</font><input type="password" name="confirmsenha" class="bt-form-cad" /></td>
        </tr>
        <tr>
         <td><input type="submit" value="Cadastrar" name="cadastrar" class="bt-submit-cad" /></td>
        </tr>
    </form>
<br><br><tr>
<td><center><a href="<?php echo $home?>" title="<?php echo $title?>" style="font-family:Helvetica; font-size:24px; color:#4682B4; text-decoration:none;">Página Inicial</a></center></td>
</tr>
</table>
</center></div>
</body>
</html>

header.php

 

<?php
//Globais
$home="http://localhost/vendinha/index.php";
$title="Vendinha - Administração";
$acao="";
$startaction="";
$msg="";
if(isset($_GET["acao"])){
$acao=$_GET["acao"];
$startaction=1;
}


//Conexão com banco de dados
include("classes/DB.class.php");
include("classes/Cadastro.class.php");
$conectar=new DB;
$conectar=$conectar->conectar();
?>

Cadastro.class.php

 

<?php
class Cadastro{
public function cadastrar($nome,$end,$email,$cep,$senha){
$nome=ucwords(strtolower($nome));
$end=ucwords(strtolower($end)); 
$senha=sha1($senha."fire1");


$conn=mysqli_connect("localhost","root","","db");
$insert=mysqli_query($conn, "INSERT INTO usuarios(nome,end,cep,email,senha,nivel,status)VALUES($nome,$end,$cep,$email,$senha,1,0)");
if(isset($insert)){
$flash="Cadastro realizado com sucesso!"; 
}else{
$flash="Ops! Houve um erro em nosso sistema, contate o administrador."; 
}


echo $flash;
}
}
?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utilize mysqli_error para mostrar o erro


<?php
class Cadastro
{
    public function cadastrar($nome, $end, $email, $cep, $senha)
    {
        $nome  = ucwords(strtolower($nome));
        $end   = ucwords(strtolower($end));
        $senha = sha1($senha . "fire1");
        
        
        $conn   = mysqli_connect("localhost", "root", "", "db");
		
	if (!mysqli_query($conn, "INSERT INTO usuarios(nome,end,cep,email,senha,nivel,status)VALUES($nome,$end,$cep,$email,$senha,1,0)")) {
		$flash = sprintf("Erro: %s", mysqli_error($conn));
	} else {
		$flash = "Cadastro realizado com sucesso!";			
	}       
        
        echo $flash;
		
    }
} 

Outro detalhe, já não criou a classe separada de conexão DB?

Então injete os dados!!

Veja que esta sendo criada uma nova conexão dentro da função cadastrar

$conn = mysqli_connect("localhost", "root", "", "db");

Compartilhar este post


Link para o post
Compartilhar em outros sites

adicione ini_set( 'display_errors', 1 );
error_reporting( E_ALL | E_STRICT ); no inicio do seu code e veja se retorna algum erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

marxrtf, o confimsenha é só para ver se o cliente digitou a senha corretamente, ele não vai ser cadastrado no db.

 

coloquei o display_errors no código e continuou dando erro, daí dando uma olhada mais com calma no código vi que eu tinha esquecido de colocar a variavel $cep no cadastro.class.php. Assim que eu coloquei ele deu esse erro:

 

http://i.imgur.com/IF240xT.png

 

o código que eu mudei está assim agora

 

Cadastro.class.php

<?php
ini_set( 'display_errors', 1 );
error_reporting( E_ALL | E_STRICT );


class Cadastro{
    public function cadastrar($nome, $end, $email, $cep, $senha){
        $nome  = ucwords(strtolower($nome));
        $end   = ucwords(strtolower($end));
        $cep   = ucwords(strtolower($cep));
        $senha = sha1($senha . "fire1");
        
        
        $conn   = mysqli_connect("localhost", "root", "", "db");


if (!mysqli_query($conn, "INSERT INTO usuarios(nome,end,cep,email,senha,nivel,status)VALUES($nome,$end,$cep,$email,$senha,1,0)")) {
$flash = sprintf("Erro: %s", mysqli_error($conn));
} else {
$flash = "Cadastro realizado com sucesso!"; 
}       
        
        echo $flash;


    }
} 
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque as variáveis entre aspas simples

"INSERT INTO usuarios(nome,end,cep,email,senha,nivel,status)VALUES('$nome','$end','$cep','$email','$senha',1,0)"

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.