Ir para conteúdo
Fórum Script Brasil
  • 0

Problema com cadastro após adição de campos na tabela


Portal do Químico

Pergunta

Boa noite a todos!

Estou com um problema no meu sistema de cadastro de usuários. Tudo aconteceu depois que eu adcionei alguns campos em minha tabela, o sistema simplesmente não "injeta" os dados do usuário dentro da tabela.

PS: Eu sou cru em PHP + MySQL

Vou colocar a estrutura da minha tabela

Atual (Com problemas)

CREATE TABLE users (
 username varchar(30) primary key,
 password varchar(32),
 userid varchar(32),
 userlevel tinyint(1) unsigned not null,
 email varchar(50),
 timestamp int(11) unsigned not null,
  `nome` varchar(250) NOT NULL default '''''''''''''''',
  `sexo` varchar(250) NOT NULL default '''''''''''''''',
  `estadoCivil` varchar(250) NOT NULL default '''''''''''''''',
  `cpf` varchar(250) NOT NULL default '''''''''''''''',
  `dia` char(2) NOT NULL default '''''',
  `mes` char(2) NOT NULL default '''''',
  `ano` varchar(4) NOT NULL default '''''''''',
  `empregado` char(1) NOT NULL default '''',
  `situacao` varchar(250) NOT NULL default '''''''''''''''',
  `telefoneDDD` varchar(5) NOT NULL default '''''''''''',
  `telefone` varchar(50) NOT NULL default '''''''''''''''',
  `recado` varchar(50) NOT NULL default '''''''''''''''',
  `celularDDD` varchar(5) NOT NULL default '''''''''''',
  `celular` varchar(50) NOT NULL default '''''''''''''''',
  `homePage` varchar(250) NOT NULL default '''''''''''''''',
  `endereco` varchar(250) NOT NULL default '''''''''''''''',
  `numero` varchar(250) NOT NULL default '''''''''''''''',
  `complemento` varchar(250) NOT NULL default '''''''''''''''',
  `bairro` varchar(250) NOT NULL default '''''''''''''''',
  `cep1` varchar(8) NOT NULL default '''''''''''''''',
  `cep2` varchar(8) NOT NULL default '''''''''''''''',
  `estado` varchar(250) NOT NULL default '''''''''''''''',
  `cidade` varchar(250) NOT NULL default '''''''''''''''',
  `desejoTrabalharCidade` text NOT NULL,
  `ramo` varchar(250) NOT NULL default '''''''''''''''',
  `area` varchar(250) NOT NULL default '''''''''''''''',
  `nivel` varchar(250) NOT NULL default '''''''''''''''',
  `pretensao` varchar(250) NOT NULL default '''''''''''''''',
  `palavraChave` text NOT NULL,
  `objetivo` text NOT NULL,
  `alemao` varchar(150) NOT NULL default '''''''''''''''',
  `espanhol` varchar(150) NOT NULL default '''''''''''''''',
  `frances` varchar(150) NOT NULL default '''''''''''''''',
  `ingles` varchar(150) NOT NULL default '''''''''''''''',
  `italiano` varchar(150) NOT NULL default '''''''''''''''',
  `minicurriculo` text NOT NULL,
  `especializacoes` text NOT NULL,
  `formacaoGrau` varchar(250) NOT NULL default '''''''''''''''',
  `formacaoCurso` varchar(250) NOT NULL default '''''''''''''''',
  `formacaoDataInicioMes` varchar(250) NOT NULL default '''''''''''''''',
  `formacaoDataInicioAno` varchar(250) NOT NULL default '''''''''''''''',
  `formacaoDataSaidaMes` varchar(250) NOT NULL default '''''''''''''''',
  `formacaoDataSaidaAno` varchar(250) NOT NULL default '''''''''''''''',
  `formacaoAno` varchar(250) NOT NULL default '''''''''''''''',
  `formacaoInstituicao` varchar(250) NOT NULL default '''''''''''''''',
  `experienciaDataEntradaMes` varchar(250) NOT NULL default '''''''''''''''',
  `experienciaDataEntradaAno` varchar(250) NOT NULL default '''''''''''''''',
  `experienciaDataSaidaMes` varchar(250) NOT NULL default '''''''''''''''',
  `experienciaDataSaidaAno` varchar(250) NOT NULL default '''''''''''''''',
  `experienciaEmpresa` varchar(250) NOT NULL default '''''''''''''''',
  `experienciaCargo` varchar(250) NOT NULL default '''''''''''''''',
  `experienciaDescricao` text NOT NULL,
  `senhaDica` varchar(250) NOT NULL default ''''''''''''''''
)
Antiga (Sem problemas)
DROP TABLE IF EXISTS users;

CREATE TABLE users (
 username varchar(30) primary key,
 password varchar(32),
 userid varchar(32),
 userlevel tinyint(1) unsigned not null,
 email varchar(50),
 timestamp int(11) unsigned not null
);

Alguém pode me dá uma forcinha na resolução deste problema?

EDIT: Acessem:

http://tecnicoquimico.com/testar/login/main.php

para entender o que está acontecendo.

Editado por Portal do Químico
Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0

Fala FIT*...

Então vou postar o formulário e o codigo de inserção

Formulário:

<form action="process.php" method="POST">
<table align="left" border="0" cellspacing="0" cellpadding="3">
<tr>
  <td>Usu&aacute;rio:</td>
  <td><input type="text" name="user" maxlength="30" value="<? echo $form->value("user"); ?>"></td><td><? echo $form->error("user"); ?></td></tr>
<tr>
  <td>Senha:</td><td><input type="password" name="pass" maxlength="30" value="<? echo $form->value("pass"); ?>"></td><td><? echo $form->error("pass"); ?></td></tr>
<tr><td>Email:</td><td><input type="text" name="email" maxlength="50" value="<? echo $form->value("email"); ?>"></td><td><? echo $form->error("email"); ?></td></tr>
<tr><td colspan="2" align="right">
<input type="hidden" name="subjoin" value="1">
<input type="submit" value="Registrar"></td></tr>
<tr>
  <td colspan="2" align="left"><a href="main.php">Voltar ao &iacute;nicio</a></td>
</tr>
</table>
</form>
Codigo de inserção (Dentro do arquivo Process.php)
function procRegister(){
      global $session, $form;
      /* Converte o usuario em caixa baixa (Opcao) */
      if(ALL_LOWERCASE){
         $_POST['user'] = strtolower($_POST['user']);
      }
      /* Variavel de registro */
      $retval = $session->register($_POST['user'], $_POST['pass'], $_POST['email']);
      
      /* Sucesso */
      if($retval == 0){
         $_SESSION['reguname'] = $_POST['user'];
         $_SESSION['regsuccess'] = true;
         header("Location: ".$session->referrer);
      }
      /* Erro */
      else if($retval == 1){
         $_SESSION['value_array'] = $_POST;
         $_SESSION['error_array'] = $form->getErrorArray();
         header("Location: ".$session->referrer);
      }
      /* Variavel de registro falhou */
      else if($retval == 2){
         $_SESSION['reguname'] = $_POST['user'];
         $_SESSION['regsuccess'] = false;
         header("Location: ".$session->referrer);
      }
   }

Qualquer coisa é só falar

Link para o comentário
Compartilhar em outros sites

  • 0

É pra já, o código é este:

function addNewUser($username, $password, $email){
      $time = time();
      /* Se o admin cadastrar, dá o level de admin */
      if(strcasecmp($username, ADMIN_NAME) == 0){
         $ulevel = ADMIN_LEVEL;
      }else{
         $ulevel = USER_LEVEL;
      }
      $q = "INSERT INTO ".TBL_USERS." VALUES ('$username', '$password', '0', $ulevel, '$email', $time)";
      return mysql_query($q, $this->connection);
   }

Ahh... Esqueci de dizer, esta função esta no arquivo Database.php, incluido no arquivo session.php, que está sendo incluido pelo arquivo register.php

Link para o comentário
Compartilhar em outros sites

  • 0
É pra já, o código é este:

function addNewUser($username, $password, $email){
      $time = time();
      /* Se o admin cadastrar, dá o level de admin */
      if(strcasecmp($username, ADMIN_NAME) == 0){
         $ulevel = ADMIN_LEVEL;
      }else{
         $ulevel = USER_LEVEL;
      }
      $q = "INSERT INTO ".TBL_USERS." VALUES ('$username', '$password', '0', $ulevel, '$email', $time)";
      return mysql_query($q, $this->connection);
   }

Ahh... Esqueci de dizer, esta função esta no arquivo Database.php, incluido no arquivo session.php, que está sendo incluido pelo arquivo register.php

tente retirar essas aspas

"INSERT INTO TBL_USERS VALUES ('$username', '$password', '0', $ulevel, '$email', $time)";

e min uma coisa nessa tabela tbl_users tem quantos campos?

você tenta inserir 6 campos mas se tiver mais campos vai gerar erro.

até mais

Link para o comentário
Compartilhar em outros sites

  • 0

Ricyayron, tem uns 50 campos a mais...

O problema está ai, eu sou cru em PHP+MySQL...

Qual o procedimento que eu devo adotar para que quando o usuario for cadastrar, ele apenas insira esses dados nesses 6 campos?...

Futuramente ele poderar "completar" seu cadastro, pra não tornar um cadastro chato de se fazer...

EDIT:

Cara coloquei assim e parece que cadastrou normal...

$q = "INSERT INTO ".TBL_USERS." VALUES ('$username', '$password', '0', $ulevel, '$email', $time, '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '')";

Editado por Portal do Químico
Link para o comentário
Compartilhar em outros sites

  • 0

Defina em quais campos quer cadastrar, fica mais fácil, exemplo.

$q = "INSERT INTO TBL_USERS (campo1,campo2,campo3,campo4,campo5,campo6) VALUES ('$campo1','$campo2','$campo3','$campo4','$campo5','$campo6')";

Aonde o primeiro conjunto de campos, são os nomes das colunas na tabela, e o segundo conjunto, são os valores que serão salvos respectivamente.

Link para o comentário
Compartilhar em outros sites

  • 0

Perfeito FIT*

Funcionou como uma luva.

Uma outra coisa, se eu quero fazer uma atualização num campo, eu posso simplesmente fazer uma consulta,

o resultado dessa consulta eu colocar dentro de um input, e no final eu colocar o fomulario como action post, e essa ação ser insert into?

Ou tem algum jeito de fazer uma atualização na tabela?

Link para o comentário
Compartilhar em outros sites

  • 0

Até a parte da consulta na tabela e colocar os valores em dentro do input está correto, mas para fazer alteração na tabela terá que usar o update e não insert, exemplo:

$altera = mysql_query("UPDATE tabela SET campo1='$campo1',campo2='$campo2' WHERE id='$id'");

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...