Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Problema no cadastro

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Duvida Problema no cadastro

    Olá galera estou com um probleminha no meu sisteminha de cadastro de usuários, olhem o código:

    cadastro_usuario.php
    Código:
    <?php
    	include 'include/conexao.php';
    	
    	if ( isset ($_GET['excluir']) ) {
    		
    		$id_pessoa = $_GET['excluir'];
    		$sql = "DELETE FROM usuario
    				WHERE cod_user = $id";
    		mysql_query($sql,$con);
    		
    	}
    	
    	if ( isset ($_POST['cadastrar']) ) {
    		$nome      = $_POST['nome'];
    		$data_nasc = $_POST['data_nasc'];
    		$sexo      = $_POST['sexo'];
    		$cpf       = $_POST['cpf'];
    		$rg        = $_POST['rg'];
    		$cep       = $_POST['cep'];
    		$endereco  = $_POST['endereco'];
    		$numero    = $_POST['numero'];
    		$bairro    = $_POST['bairro'];
    		$cidade    = $_POST['cidade'];
    		$telefone  = $_POST['telefone'];
    		$celular   = $_POST['celular'];
    		$email     = $_POST['email'];
    		$login     = $_POST['login'];
    		$senha     = $_POST['senha'];
    		$estado    = $_POST['cod_estado'];
    		
    		$sql = "INSERT INTO usuario
    				(nome, rg, cpf, endereco, telefone, celular, email, sexo, data_nasc, bairro, cep, login, senha, cod_estado)
    				VALUES ('$nome',$rg,$cpf,'$endereco','$telefone','$celular','$email','$sexo','$data_nasc','$bairro','$cep','$login','$senha', $estado)";
    				
    		mysql_query($sql,$con);
    // echo mysql_error(); ~> para ver erros.
    	}
    ?>
    
    <!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" />
    <title>Cadastro Usuário</title>
    <script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript">
    
    	$(document).ready(function(){
    		
    		$("select[name=estado]").change(function(){
    		
    			$("select[name=cidade]").html('<option value="0">Carregando...</option>');
    			
    			$.post("cidades.php",
    				   {estado:$(this).val()},
    				   function(valor){
    				   
    				   		$("select[name=cidade]").html(valor);
    				   
    				     }
    				   )
    		
    		})
    		
    	})
    
    </script>
    <style type="text/css">
    <!--
    .style2 {font-size: 10px}
    -->
    </style>
    </head>
    
    <body>
    <form action="cadastro_usuario.php" method="POST">
        <table width="681" border="1">
          <tr>
            <td colspan="4"><div align="center">Dados Pessoais</div></td>
          </tr>
          <tr>
            <td width="134">Nome:</td>
    <td width="223"><label>
              <input type="text" name="nome" id="nome" />
            </label></td>
            <td width="113">Sobrenome:</td>
            <td width="183"><label>
              <input type="text" name="sobrenome" id="sobrenome" />
            </label></td>
          </tr>
          <tr>
            <td>Data de Nascimento:</td>
            <td><label>
              <input type="text" name="data_nasc" id="data_nasc" />
            </label></td>
            <td>Sexo:</td>
            <td>Masculino
              <label>
              <input type="radio" name="sexo" id="masc" value="masculino" />
            Feminino
            <input type="radio" name="sexo" id="fem" value="feminino" />
            </label></td>
          </tr>
          <tr>
            <td>CPF:</td>
            <td><label>
              <input type="text" name="cpf" id="cpf" />
            <span class="style2">        *somente números</span></label></td>
            <td>RG:</td>
            <td><label>
            <input type="text" name="rg" id="rg" />
            </label></td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td colspan="4"><div align="center">Informações de Endereço</div></td>
          </tr>
          <tr>
            <td>Cep:</td>
            <td><input type="text" name="cep" id="cep" /></td>
            <td>Endereço:</td>
            <td><input type="text" name="endereco" id="endereco" /></td>
          </tr>
          <tr>
            <td>Estado:</td>
            <td><label>
              <select name="estado" id="estado">
                <option value="0">Escolha um estado</option>
                <?php
    			  $sql = mysql_query("SELECT * FROM estado ORDER BY nome ASC");
    			  while($monta = mysql_fetch_assoc($sql)){
    				echo '<option value=" ' .$monta['cod_estado'].' "> '.$monta['nome'].'</option>';
    			  }
    		  ?>
              </select>
            </label></td>
            <td>Cidade:</td>
            <td><label>
              <select name="cidade" id="cidade">
              </select>
            </label></td>
          </tr>
          <tr>
            <td>Bairro:</td>
            <td><label>
              <input type="text" name="bairro" id="bairro" />
            </label></td>
            <td>&nbsp;</td>
            <td><label></label></td>
          </tr>
          <tr>
            <td>Telefone:</td>
            <td><label>
              <input type="text" name="telefone" id="telefone" />
            </label></td>
            <td>Celular:</td>
            <td><label>
              <input type="text" name="celular" id="celular" />
            </label></td>
          </tr>
          <tr>
            <td>Email:</td>
            <td><label>
              <input type="text" name="email" id="email" />
            </label></td>
            <td>&nbsp;</td>
            <td><label></label></td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td colspan="4"><div align="center">Login</div></td>
          </tr>
          <tr>
            <td>Login:</td>
            <td><input type="text" name="login" id="login" /></td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td>Senha:</td>
            <td><label>
              <input type="text" name="senha" id="senha" />
            </label></td>
            <td>Confirme a senha:</td>
            <td><label>
              <input type="text" name="conf_senha" id="conf_senha" />
            </label></td>
          </tr>
          <tr>
            <td>Email:</td>
            <td><label>
              <input type="text" name="email2" id="email2" />
            </label></td>
            <td>Confirme o email:</td>
            <td><label>
              <input type="text" name="conf_email" id="conf_email" />
            </label></td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td><label>
              <input type="submit" name="cadastrar" id="cadastrar" value="Cadastrar" />
            </label></td>
            <td><label>
              <input type="submit" name="limpar" id="limpar" value="Limpar" />
            </label></td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
          </tr>
      </table>
    </form>
    
    <?php
    	$sql = "SELECT cod_user, usuario.nome, rg, cpf, endereco, telefone, celular, email, sexo, data_nasc, bairro, cep, login, senha, cidade.nome
    FROM usuario
    INNER JOIN cidade ON cidade.cod_cid = usuario.cod_cid
    ;";
    	$result = mysql_query($sql, $con);
    
    ?>
    
    <table width="1057" border="1">
      <tr>
        <td width="48">Nome</td>
        <td width="34">RG </td>
        <td width="39">CPF</td>
        <td width="66">Endereço</td>
        <td width="59">Telefone</td>
        <td width="88">Celular</td>
        <td width="93">Email </td>
        <td width="49">Sexo</td>
        <td width="72">Nascimento</td>
        <td width="140">Bairro</td>
        <td width="99">Cidade</td>
        <td width="99">CEP</td>
        <td width="46">Login</td>
        <td width="37">Senha</td>
      </tr>
    	<?php
        for ( $i = 0 ; $i < mysql_num_rows($result); $i++ ) {
            $id        = mysql_result($result, $i, 'cod_user');
            $nome      = mysql_result($result, $i, 'nome');
            $rg        = mysql_result($result, $i, 'rg');
    		$cpf       = mysql_result($result, $i, 'cpf');
    		$endereco  = mysql_result($result, $i, 'endereco');
    		$telefone  = mysql_result($result, $i, 'telefone');
    		$celular   = mysql_result($result, $i, 'celular');
    		$email     = mysql_result($result, $i, 'email');
    		$sexo      = mysql_result($result, $i, 'sexo');
    		$data_nasc = mysql_result($result, $i, 'data_nasc');
    		$bairro    = mysql_result($result, $i, 'bairro');
    		$cidade    = mysql_result($result, $i, 'cidade.nome');
    		$cep       = mysql_result($result, $i, 'cep');
    		$login     = mysql_result($result, $i, 'login');
    		$senha     = mysql_result($result, $i, 'senha');
            echo '<tr>
                     <td>'. $nome . '</td>
                     <td>' . $rg . '</td>
    				 <td>' . $cpf . '</td>
    				 <td>' . $endereco . '</td>
    				 <td>' . $telefone . '</td>
    				 <td>' . $celular . '</td>
    				 <td>' . $email . '</td>
    				 <td>' . $sexo . '</td>
    				 <td>' . $data_nasc . '</td>
    				 <td>' . $bairro . '</td>
    				 <td>' . htmlentities($cidade) . '</td>
    				 <td>' . $cep . '</td>
    				 <td>' . $login . '</td>
    				 <td>' . $senha . '</td>
                     <td><button onclick="verifica('.$id.');">Excluir</button></td>
                  </tr>';
        
        }
        ?>
    </table>
    <script type="text/javascript">
                function verifica(id) {
                    
                    if ( confirm ("Deseja mesmo excluir ?") ) {
                        window.location = '?excluir=' + id;
                        return;
                    }
                    else {
                        
                        return false;
                    }
                    
                }
            </script>  
    </body>
    </html>
    conexao.php
    Código:
    <?php
    
    	$con = mysql_connect('localhost','root','') or die( mysql_error() );
    	
    	$bd = mysql_select_db('freta_db',$con) or die( mysql_error() );
    	
    
    
    ?>
    cidades.php
    Código:
    <?php
    
    	include 'include/conexao.php';
    
    $estado = $_POST['estado'];
    
    $sql = "SELECT * FROM cidade WHERE cod_estado = '$estado' ORDER BY nome ASC";
    $qr = mysql_query($sql) or die(mysql_error());
    
    if(mysql_num_rows($qr) == 0){
       echo  '<option value="0">'.htmlentities('Sem cadastros no momento').'</option>';
       
    }else{
       while($ln = mysql_fetch_assoc($qr)){
       	  echo '<option value="0">Escolha a cidade</option>';
          echo '<option value=">'.$ln['id'].'">'.htmlentities($ln['nome']).'</option>';
       }
    }
    
    ?>

    Não da nenhum erro, ele simplesmente não cadastra, e não exclui o usuário.
    Tentei muitas coisas mas não consegui resolver, se alguém puder me ajudar eu agradeço.

  • Font Size
    #2
    Tenta fazer o seguinte:
    Código PHP:
        if ( isset ($_GET['excluir']) ) {
            
            
    $id_pessoa is_numeric($_GET['excluir']) ? $_GET['excluir'] : die('Isso não é um número!!!'); // opa, amigo, SQLi aqui
            
    $sql "DELETE FROM usuario
                    WHERE cod_user = '
    $id_pessoa';"// aqui a variável é $id ou $id_pessoa?
            
    mysql_query($sql,$con) or die(mysql_error()); // veja se há erro aqui
            
        

    Outra dica: isto está vulnerável a SQLi:
    Código PHP:
            $nome      $_POST['nome'];
            
    $data_nasc $_POST['data_nasc'];
            
    $sexo      $_POST['sexo'];
            
    $cpf       $_POST['cpf'];
            
    $rg        $_POST['rg'];
            
    $cep       $_POST['cep'];
            
    $endereco  $_POST['endereco'];
            
    $numero    $_POST['numero'];
            
    $bairro    $_POST['bairro'];
            
    $cidade    $_POST['cidade'];
            
    $telefone  $_POST['telefone'];
            
    $celular   $_POST['celular'];
            
    $email     $_POST['email'];
            
    $login     $_POST['login'];
            
    $senha     $_POST['senha'];
            
    $estado    $_POST['cod_estado']; 
    Escape as aspas usando mysql_real_escape_string(). Por exemplo:
    Código PHP:
    $foo mysql_real_escape_string($_POST['foo']); 
    Às vezes também é importante proteger-se do XSS, usando htmlspecialchars() ou strip_tags(). Também é importante criptografar as senhas, com MD5, por exemplo.

    Outra: tente fazer isso:
    Código PHP:
            $sql "INSERT INTO usuario
                    (`nome`, `rg`, `cpf`, `endereco`, `telefone`, `celular`, `email`, `sexo`, `data_nasc`, `bairro`, `cep`, `login`, `senha`, `cod_estado`)
                    VALUES ('
    $nome','$rg','$cpf','$endereco','$telefone','$celular','$email','$sexo','$data_nasc','$bairro','$cep','$login','$senha', '$estado');"
    Se não resolver, teria como você exportar a tabela 'usuario' em formato SQL, para podermos analisar?
    Se houverem senhas e/ou outras informações privilegiadas, apague-as antes de postar, claro!
    Este material pode ser compartilhado, desde que os devidos créditos sejam dados.



    Notify-list · Twitter · Blog

    Nova lei: Invadir computadores protegidos é crime.
    Lógica: Se eu invadi, não é protegido. Logo, não é crime :-)

    Comment


    • Font Size
      #3
      0kal valeu pelas dicas, fiz o que me sugeriu e mesmo assim não funcionou. da uma olhada

      Código:
          if ( isset ($_GET['excluir']) ) {
              
              $id_pessoa = is_numeric($_GET['excluir']) ? $_GET['excluir'] : die('Isso não é um número!!!'); i
              $sql = "DELETE FROM usuario
                      WHERE cod_user = '$id';"; // aqui é $id mesmo
              mysql_query($sql,$con) or die(mysql_error()); // veja se há erro aqui
              
          }
      Código:
      	if ( isset ($_POST['cadastrar']) ) {
      		$nome      = mysql_real_escape_string($_POST['nome']);
      		$data_nasc = mysql_real_escape_string($_POST['data_nasc']);
      		$sexo      = mysql_real_escape_string($_POST['sexo']);
      		$cpf       = mysql_real_escape_string($_POST['cpf']);
      		$rg        = mysql_real_escape_string($_POST['rg']);
      		$cep       = mysql_real_escape_string($_POST['cpf']);
      		$endereco  = mysql_real_escape_string($_POST['endereco']);
      		$numero    = mysql_real_escape_string($_POST['numero']);
      		$bairro    = mysql_real_escape_string($_POST['bairro']);
      		$cidade    = mysql_real_escape_string($_POST['cidade']);
      		$telefone  = mysql_real_escape_string($_POST['telefone']);
      		$celular   = mysql_real_escape_string($_POST['celular']);
      		$email     = mysql_real_escape_string($_POST['email']);
      		$login     = mysql_real_escape_string($_POST['login']);
      		$senha     = mysql_real_escape_string($_POST['senha']);
      		$estado    = mysql_real_escape_string($_POST['estado']);
      		
              $sql = "INSERT INTO usuario
                      (`nome`, `rg`, `cpf`, `endereco`, `telefone`, `celular`, `email`, `sexo`, `data_nasc`, `bairro`, `cep`, `login`, `senha`, `cod_estado`)
                      VALUES ('$nome','$rg','$cpf','$endereco','$telefone','$celular','$email','$sexo','$data_nasc','$bairro','$cep','$login','$senha', '$estado');";
      				
      		mysql_query($sql,$con);
      // echo mysql_error(); ~> para ver erros.
      	}
      ?>
      Ta ai a tabela usuário

      Código:
      
      -- 
      -- Estrutura da tabela `usuario`
      -- 
      
      CREATE TABLE `usuario` (
        `cod_user` int(11) NOT NULL auto_increment,
        `nome` varchar(45) NOT NULL,
        `rg` int(20) NOT NULL,
        `cpf` int(20) NOT NULL,
        `endereco` varchar(60) NOT NULL,
        `telefone` varchar(45) NOT NULL,
        `celular` varchar(45) default NULL,
        `email` varchar(60) NOT NULL,
        `sexo` varchar(45) NOT NULL,
        `data_nasc` date NOT NULL,
        `bairro` varchar(45) NOT NULL,
        `cep` varchar(60) NOT NULL,
        `login` varchar(45) NOT NULL,
        `senha` varchar(45) NOT NULL,
        `cod_cid` int(11) NOT NULL,
        PRIMARY KEY  (`cod_user`),
        KEY `fk_usuario_cidade` (`cod_cid`)
      ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
      
      -- 
      -- Extraindo dados da tabela `usuario`
      --
      Lembrando que ela se relaciona com a tabela cidade. Esse formulário ta tirando meu sono

      Comment


      • Font Size
        #4
        Ali no excluir é $id_pessoa, e funcionou o excluir, só falta inserir agora

        Comment


        • Font Size
          #5
          Comigo funcionou da seguinte maneira:
          1. Troquei:
          Código PHP:
              if ( isset ($_POST['cadastrar']) ) { 
          Por:
          Código PHP:
          if($_SERVER['REQUEST_METHOD']=="POST") { 
          2. Criei uma coluna chamada "cod_estado" na tabela "usuario". Note que você tenta inserir dados nela, mas ela não existe. SQL:
          Código:
          SET NAMES utf8;
          SET foreign_key_checks = 0;
          SET time_zone = 'SYSTEM';
          SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
          
          CREATE TABLE `usuario` (
            `cod_user` int(11) NOT NULL AUTO_INCREMENT,
            `nome` varchar(45) NOT NULL,
            `rg` int(20) NOT NULL,
            `cpf` int(20) NOT NULL,
            `endereco` varchar(60) NOT NULL,
            `telefone` varchar(45) NOT NULL,
            `celular` varchar(45) DEFAULT NULL,
            `email` varchar(60) NOT NULL,
            `sexo` varchar(45) NOT NULL,
            `data_nasc` date NOT NULL,
            `bairro` varchar(45) NOT NULL,
            `cep` varchar(60) NOT NULL,
            `login` varchar(45) NOT NULL,
            `senha` varchar(45) NOT NULL,
            `cod_cid` int(11) NOT NULL,
            `cod_estado` varchar(45) NOT NULL, -- a coluna esta aqui ---------------------------------------
            PRIMARY KEY (`cod_user`),
            KEY `fk_usuario_cidade` (`cod_cid`)
          ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
          Veja se funciona.
          T+!
          Este material pode ser compartilhado, desde que os devidos créditos sejam dados.



          Notify-list · Twitter · Blog

          Nova lei: Invadir computadores protegidos é crime.
          Lógica: Se eu invadi, não é protegido. Logo, não é crime :-)

          Comment


          • Font Size
            #6
            Entendi 0kal, mas ai no caso é melhor eu inserir o cod_cid então, é melhor que inserir um campo novo. Mas agora eu não estou conseguindo pegar o cod_cid

            Comment


            • Font Size
              #7
              Verifique nas suas queries de seleção (SELECT...) e veja se você seleciona o cod_cid nelas também.
              Este material pode ser compartilhado, desde que os devidos créditos sejam dados.



              Notify-list · Twitter · Blog

              Nova lei: Invadir computadores protegidos é crime.
              Lógica: Se eu invadi, não é protegido. Logo, não é crime :-)

              Comment


              • Font Size
                #8
                Eae galera, desculpa demorar para postar... eu consegui resolver meu problema, vou mostrar onde estava o erro.

                Em uma parte do javascript estava assim:
                Código:
                $("select[name=cidade]").html(valor);
                Então troquei o name para cod_cid:
                Código:
                $("select[name=cod_cid]").html(valor);
                Nos atributos da tag html tbm troquei o nome para cod_cid, assim:
                Código:
                <select name="cod_cid" id="cod_cid">
                          	<option value="0">Escolha a cidade</option>
                          </select>
                E percebi que na hora de receber os valores eu estava usando uma variavel $cidade a mais, então tirei uma e ficou assim:
                Código PHP:
                    if($_SERVER['REQUEST_METHOD']=="POST") {
                        
                $nome      mysql_real_escape_string($_POST['nome']);
                        
                $sobrenome mysql_real_escape_string($_POST['sobrenome']);
                        
                $data_nasc mysql_real_escape_string($_POST['data_nasc']);
                        
                $sexo      mysql_real_escape_string($_POST['sexo']);
                        
                $cpf       mysql_real_escape_string($_POST['cpf']);
                        
                $rg        mysql_real_escape_string($_POST['rg']);
                        
                $cep       mysql_real_escape_string($_POST['cpf']);
                        
                $endereco  mysql_real_escape_string($_POST['endereco']);
                        
                $bairro    mysql_real_escape_string($_POST['bairro']);
                        
                $telefone  mysql_real_escape_string($_POST['telefone']);
                        
                $celular   mysql_real_escape_string($_POST['celular']);
                        
                $email     mysql_real_escape_string($_POST['email']);
                        
                $login     mysql_real_escape_string($_POST['login']);
                        
                $senha     mysql_real_escape_string($_POST['senha']);
                        
                $cid       mysql_real_escape_string($_POST['cod_cid']); 
                E lembrando tbm que só funciona com o
                Código PHP:
                $_SERVER['REQUEST_METHOD']=="POST" 
                com isset tbm não cadastra...


                Então é isso galera, valeu mesmo pela ajuda. Qualquer coisa me manda uma pm

                Comment


                • Font Size
                  #9
                  0KaL , qual comando de escapar as aspas, só que com o banco Postgresql ?

                  Obrigado

                  Comment


                  • Font Size
                    #10
                    Olá, diego999.
                    Experimente Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar....
                    Este material pode ser compartilhado, desde que os devidos créditos sejam dados.



                    Notify-list · Twitter · Blog

                    Nova lei: Invadir computadores protegidos é crime.
                    Lógica: Se eu invadi, não é protegido. Logo, não é crime :-)

                    Comment


                    • Font Size
                      #11
                      cara no momento estou longe do meu notebook, mas amanha cedo vou verificar o teu codigo e vejo se descubro pra ti, creio que seja coisa pouca.

                      de inicio te conselho tu fazer os echos em cada ação que tu tá fazendo e ver se tu ta passando todos os campos e requisições que você esta pedindo.

                      Att.

                      Psoneff

                      Comment

                      X
                      Working...
                      X