Ir para conteúdo

Arquivado

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

WBS DIGITAL

Formulário não cadastra no banco de dados

Recommended Posts

Não consigo encontrar o erro, o formulário não faz o cadastro de todos os dados no banco de dados:

<form action="?pagina=inserir&tabela=login" method="post" enctype="multipart/form-data">
<br>
<div class="divisorForm">
<span class="txtForm">NOME:</span><br>
<input name="nome_usuario" type="text" class="inputForm2" id="nome_usuario" placeholder="Digite seu login de acesso"/>
</div>
<div class="divisorForm">
<span class="txtForm">EMAIL:</span><br>
<input name="email_usuario" type="text" class="inputForm2" id="email_usuario" placeholder="Cadastre sua senha de acesso"/>
</div>
<br>
<div class="divisorForm">
<span class="txtForm">CIDADE:</span><br>
<input name="cidade" type="text" class="inputForm2" id="cidade" placeholder="Digite seu login de acesso"/>
</div>
<div class="divisorForm">
<span class="txtForm">ESTADO:</span><br>
<input name="estado" type="text" class="inputForm2" id="estado" placeholder="Cadastre sua senha de acesso"/>
</div>
<br>
<span class="txtForm">FOTO:</span><br>
<input name="foto" type="file" class="inputForm" id="foto"/>
<br>
<div class="divisorForm">
<span class="txtForm">LOGIN:</span><br>
<input name="loginU" type="text" class="inputForm2" id="loginU" placeholder="Digite seu login de acesso"/>
</div>
<div class="divisorForm">
<span class="txtForm">SENHA:</span><br>
<input name="senha" type="text" class="inputForm2" id="senha" placeholder="Cadastre sua senha de acesso"/>
</div>
<input type="hidden" name="data_cadastro" value="date(Y-m-d H:i:s);" />
<br>
<input type=hidden value=1 name=ativo />
<input type="submit" class="inputBtnForm" value="Cadastrar" />
<br>
</form>  

Arquivo de inserção no banco:

case login:

$foto = $_FILES['foto']['name'];
$tmp_foto = $_FILES['foto']['tmp_name'];
$num = rand(0, 9999999999);
$diferencia = $num . "-";
$local_foto_serv = "usuarios/" . $diferencia . $foto;
$foto_serv = $diferencia . $foto;
if (move_uploaded_file($tmp_foto, $local_foto_serv))
{
$tipo = 'escolher';
$sql = "insert into login (data_cadastro, nome_usuario, email_usuario, cidade, estado, foto, tipo, ativo, loginU, senha) VALUES('$hoje', '$nome_usuario', '$email_usuario', '$cidade', '$estado', '$foto_serv', '$tipo', '$ativo', '$loginU', '$senha')";
}

break; /* fim do caso $tabela = login */

tabela banco de dados:

--

CREATE TABLE IF NOT EXISTS `login` (
  `id_login` int(11) NOT NULL AUTO_INCREMENT,
  `loginU` varchar(50) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL,
  `senha` varchar(10) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL,
  `cidade` char(100) COLLATE utf8_bin NOT NULL,
  `estado` char(50) COLLATE utf8_bin NOT NULL,
  `nome_usuario` varchar(250) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `email_usuario` varchar(150) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `tipo` varchar(15) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `ativo` char(1) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `data_cadastro` date NOT NULL,
  `foto` varchar(150) CHARACTER SET utf8 NOT NULL,
  PRIMARY KEY (`id_login`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1 ;



Alguém consegue me ajudar a identificar o erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, amigo!

 

Tem como você nos dar mais informações? A mensagem de erro que está aparecendo, ou quais campos exatamente não estão sendo populados?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o campo senha, cidade estado não são cadastrado, no sistema informa que o cadastro foi feito corretamente, mas não cadastra na tabela esses campos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Onde estão definidas as variáveis: '$hoje', '$nome_usuario', '$email_usuario', '$cidade', '$estado', '$foto_serv', '$tipo', '$ativo', '$loginU', '$senha' ????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Onde estão definidas as variáveis: '$hoje', '$nome_usuario', '$email_usuario', '$cidade', '$estado', '$foto_serv', '$tipo', '$ativo', '$loginU', '$senha' ????

Não definir as variaveis nesse primeiro ato, apenas quero inserir no banco de dados

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas onde tu passou os valores para esses campos?

Se tu fizer:

echo $nome;

De onde vem o valor do resultado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então é óbvio que não vai rodar. Como tu tá tentando inserir algo no banco, se esse algo não existe?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então é óbvio que não vai rodar. Como tu tá tentando inserir algo no banco, se esse algo não existe?

Mas pq os outros campos como login, senha, email estão sendo inseridos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eles estão definidos em algum lugar do código.

Faz o seguinte:

case login:

$foto = $_FILES['foto']['name'];
$tmp_foto = $_FILES['foto']['tmp_name'];
$num = rand(0, 9999999999);
$diferencia = $num . "-";
$local_foto_serv = "usuarios/" . $diferencia . $foto;
$foto_serv = $diferencia . $foto;
if (move_uploaded_file($tmp_foto, $local_foto_serv))
{
$tipo = 'escolher';
$sql = "insert into login (data_cadastro, nome_usuario, email_usuario, cidade, estado, foto, tipo, ativo, loginU, senha) VALUES('$hoje', '$nome_usuario', '$email_usuario', '$cidade', '$estado', '$foto_serv', '$tipo', '$ativo', '$loginU', '$senha')";
}
echo $sql;
break; /* fim do caso $tabela = login */

Dá um echo na variável $sql pra ver como está sendo gerado o script.

Mas em algum lugar do teu código você está definindo essas variáveis.

Coloca todo o código do arquivo num gist.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eles estão definidos em algum lugar do código.

Faz o seguinte:

case login:

$foto = $_FILES['foto']['name'];
$tmp_foto = $_FILES['foto']['tmp_name'];
$num = rand(0, 9999999999);
$diferencia = $num . "-";
$local_foto_serv = "usuarios/" . $diferencia . $foto;
$foto_serv = $diferencia . $foto;
if (move_uploaded_file($tmp_foto, $local_foto_serv))
{
$tipo = 'escolher';
$sql = "insert into login (data_cadastro, nome_usuario, email_usuario, cidade, estado, foto, tipo, ativo, loginU, senha) VALUES('$hoje', '$nome_usuario', '$email_usuario', '$cidade', '$estado', '$foto_serv', '$tipo', '$ativo', '$loginU', '$senha')";
}
echo $sql;
break; /* fim do caso $tabela = login */

Dá um echo na variável $sql pra ver como está sendo gerado o script.

Mas em algum lugar do teu código você está definindo essas variáveis.

Coloca todo o código do arquivo num gist.

Ok Marlon, vou subir os arquivos e posto o link aqui pra vc, desde já muito obrigado pela atenção e ajuda.

Marlon, favor pegar os arquivos no link:

https://onedrive.live.com/redir?resid=8DB1F0ADE569F46%21124

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, certeza absoluta que tem algo funcionando?? Não consigo fazer nada. Os links só tem "#". O script de login não pega os dados do formulário.

Pelo que entendi, sem o login não dá pra cadastrar.

O script que você postou aqui no fórum é diferente do script que você mandou.

Em qual arquivo está o formulário que você mandou?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, certeza absoluta que tem algo funcionando?? Não consigo fazer nada. Os links só tem "#". O script de login não pega os dados do formulário.

Pelo que entendi, sem o login não dá pra cadastrar.

O script que você postou aqui no fórum é diferente do script que você mandou.

Em qual arquivo está o formulário que você mandou?

Ta no seu email o arquivo e o link deles em uso

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como eu chego na tela de cadastro??


Outra coisa? Tem 2 scripts de DLL diferentes para a mesma tabela. Qual o certo? No script de login aponta para um modelo, no script de cadastro aponta para outro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como eu chego na tela de cadastro??

Outra coisa? Tem 2 scripts de DLL diferentes para a mesma tabela. Qual o certo? No script de login aponta para um modelo, no script de cadastro aponta para outro.

No script de login aponta para o chackuser, vai checar se o usuário existe na tabela, no script de cadastro aponta para a pasta sql onde contem o arquivo inserir, que tem a função de inserir os dados cadastrados no formulario para o banco de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

OK, eu entendi o funcionamento. A versão que está online está funcionando o login?

Nos arquivos que você mandou existem 2 scripts para a criação da tabela do banco:

login.sql

CREATE TABLE IF NOT EXISTS `login` (
  `id_login` int(11) NOT NULL AUTO_INCREMENT,
  `loginU` varchar(50) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL,
  `senha` varchar(10) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL,
  `nc` varchar(250) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `mail` varchar(150) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `tipo` varchar(15) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `ativo` char(1) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `data_cadastro` date NOT NULL,
  `foto` varchar(150) CHARACTER SET utf8 NOT NULL,
  PRIMARY KEY (`id_login`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=15 ;

login(1).sql

CREATE TABLE IF NOT EXISTS `login` (
  `id_login` int(11) NOT NULL AUTO_INCREMENT,
  `loginU` varchar(50) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL,
  `senha` varchar(10) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL,
  `cidade` char(100) COLLATE utf8_bin NOT NULL,
  `estado` char(50) COLLATE utf8_bin NOT NULL,
  `nome_usuario` varchar(250) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `email_usuario` varchar(150) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `tipo` varchar(15) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `ativo` char(1) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `data_cadastro` date NOT NULL,
  `foto` varchar(150) CHARACTER SET utf8 NOT NULL,
  PRIMARY KEY (`id_login`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1 ;

Qual dos dois é o correto??

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.