Jump to content
allencar.limma

Não consigo gravar no Banco de Dados

Recommended Posts

Tento incluir as informações de um formulário no banco de dados e não consigo. conforme código abaixo.

<?

/*Incluir as informações no formulario */

include "config.php";

$nome = trim($_POST['nome']);
$masp = trim($_POST['masp']);
$cpf = trim($_POST['cpf']);
$telefone = trim($_POST['telefone']);
$email = trim($_POST['email']);
$endereco = trim($_POST['endereco']);
$data_nascimento = trim($_POST['data_nascimento']);
$unidade_lotacao = trim($_POST['unidade_lotacao']);

/* Vamos checar algum erro nos campos */

if ((!$nome) || (!$masp) || (!$cpf) || (!$telefone) || (!$email) || (!$endereco) || (!$data_nascimento) || (!$unidade_lotacao)){

echo "ERRO: <br /><br />";
    

if (!$nome){

echo "Nome Completo é requerido.<br />";

}

if (!$masp){

echo "Masp é requerido.<br />";
    
}
    
if (!$cpf){
    
echo "CPF é requerido.<br /)>";

}
    
if (!$telefone){
    
echo "Telefone é requerido.<br />";

}
if (!$email){
    
echo "Email é requerido.<br />";
}
    
if (!$endereco){
    
echo "Endereço é requerido.<br />";
        
}

if (!$data_nascimento){

echo "Data de Nascimento é requerido.<br />";

}
    
if (!$unidade_lotacao){
    
echo "Unidade de Lotação é requerido.<br>";
    
}    

echo "Preencha os campos abaixo: <br />";

include "formulario_cadastro.php";

}else
    
{
    

/* Vamos checar se o nome de Usuário escolhido e/ou Email já existem no banco de dados */

$sql_email_check = mysql_query(

"SELECT COUNT(usuario_id) FROM usuarios WHERE email='{$email}'"

);

$sql_masp_check = mysql_query(

"SELECT COUNT(usuario_id) FROM usuarios WHERE masp='{$masp}'"

);
    
$sql_cpf_check = mysql_query(

"SELECT COUNT(usuario_id) FROM usuarios WHERE cpf='{$cpf}'"

);    
    
    

$eReg = mysql_fetch_array($sql_email_check);
$uReg = mysql_fetch_array($sql_masp_check);
$uReg = mysql_fetch_array($sql_cpf_check);

$email_check = $eReg[0];
$masp_check = $uReg[0];
$cpf_check = $uReg[0];    

if (($email_check > 0) || ($masp_check > 0) || ($cpf_check > 0)){

echo "<strong>ERRO</strong>: <br /><br />";

if ($email_check > 0){

echo "Este email já está sendo utilizado.<br /><br />";

unset($email);

}

if ($masp_check > 0){

echo "Este Masp já está sendo
utilizado.<br /><br />";

unset($masp);

}
if ($cpf_check > 0){

echo "Este CPF já está sendo
utilizado.<br /><br />";

unset($cpf);    
    
}

include "formulario_cadastro.php";

}else{

/* Se passarmos por esta verificação ilesos é hora de
finalmente cadastrar os dados. Vamos utilizar uma função para gerar a senha de
forma randômica*/

function makeRandomPassword(){

$salt = "abchefghjkmnpqrstuvwxyz0123456789";
srand((double)microtime()*1000000);
$i = 0;

while ($i <= 7){

$num = rand() % 33;
$tmp = substr($salt, $num, 1);
$pass = $pass . $tmp;
$i++;

}

return $pass;

}

$senha_randomica = makeRandomPassword();
$senha = md5($senha_randomica);

// Inserindo os dados no banco de dados

//$cpf = htmlspecialchars($cpf); ***RETIRADO PELO FATO DE NÃO ESTA SENDO USADO

$sql = mysql_query(

"INSERT INTO usuarios

(none, masp, cpf, telefone, email, endereco, data_nascimento, unidade_lotacao)

VALUES
('$nome', '$masp', '$cpf', '$telefone', '$email', '$endereco', '$data_nascimento', '$unidade_lotacao', now())")

    or die( mysql_error()
           );
    
    if (!$sql){
    
    echo "Ocorreu um erro ao criar sua conta, entre em contato.";
        
}else{
        
    $usuario_id = mysql_insert_id();
        
    

// Enviar um email ao usuário para confirmação e ativar o cadastro!

$headers = "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
$headers .= "From: RCI - <rci@rcionline.com.br>";

$subject = "Confirmação de cadastro - www.rcionline.com.br";
$mensagem = "Prezado {$nome} {$masp},<br />
Obrigado pelo seu cadastro em nosso site, <a href='http://www.rcionline.com.br'>
http://www.rcionline.com.br</a>!<br /> <br />

Para confirmar seu cadastro e ativar sua conta em nosso site, podendo acessar à
áreas exclusivas, por favor clique no link abaixo ou copie e cole na barra de
endereço do seu navegador.<br /> <br />

<a href='http://www.rcionline.com.br/ativar.php?id={$usuario_id}&code={$senha}'>

http://www.rcionline.com.br/ativar.php?id={$usuario_id}&code={$senha}

</a>

<br /> <br />
Após a ativação de sua conta, você poderá ter acesso ao conteúdo exclusivo
efetuado o login com os seguintes dados abaixo:<br > <br />

<strong>Usuario</strong>: {$usuario_id}<br />
<strong>Senha</strong>: {$senha_randomica}<br /> <br />

Obrigado!<br /> <br />

Webmaster<br /> <br /> <br />
Esta é uma mensagem automática, por favor não responda!";

mail($email, $subject, $mensagem, $headers);

echo "Foi enviado para seu email - ( ".$email." ) um pedido de
confirmação de cadastro, por favor verifique e sigas as instruções!";

}

}

    
}

?>

 

Share this post


Link to post
Share on other sites

Creio que o SQL do INSERT deveria ser assim:

 

ANTERIOR

		$sql = mysql_query (
			"INSERT INTO usuarios (
				none, 
				masp, 
				cpf, 
				telefone, 
				email, 
				endereco, 
				data_nascimento, 
				unidade_lotacao
			) VALUES (
				'$nome', 
				'$masp', 
				'$cpf', 
				'$telefone', 
				'$email', 
				'$endereco', 
				'$data_nascimento', 
				'$unidade_lotacao', 
				now()
			)"
		) or die ( mysql_error () );

 

"NOVO"


		$sql = mysql_query (
			"INSERT INTO usuarios (
				nome, 
				masp, 
				cpf, 
				telefone, 
				email, 
				endereco, 
				data_nascimento, 
				unidade_lotacao
			) VALUES (
				'$nome', 
				'$masp', 
				'$cpf', 
				'$telefone', 
				'$email', 
				'$endereco', 
				'$data_nascimento', 
				'$unidade_lotacao'
			)"
		) or die ( mysql_error () );

 

Share this post


Link to post
Share on other sites
20 horas atrás, ShadowDLL disse:

Creio que o SQL do INSERT deveria ser assim:

ANTERIOR


		$sql = mysql_query (
			"INSERT INTO usuarios (
				none, 
				masp, 
				cpf, 
				telefone, 
				email, 
				endereco, 
				data_nascimento, 
				unidade_lotacao
			) VALUES (
				'$nome', 
				'$masp', 
				'$cpf', 
				'$telefone', 
				'$email', 
				'$endereco', 
				'$data_nascimento', 
				'$unidade_lotacao', 
				now()
			)"
		) or die ( mysql_error () );

 

 

"NOVO"



		$sql = mysql_query (
			"INSERT INTO usuarios (
				nome, 
				masp, 
				cpf, 
				telefone, 
				email, 
				endereco, 
				data_nascimento, 
				unidade_lotacao
			) VALUES (
				'$nome', 
				'$masp', 
				'$cpf', 
				'$telefone', 
				'$email', 
				'$endereco', 
				'$data_nascimento', 
				'$unidade_lotacao'
			)"
		) or die ( mysql_error () );

 

Bom dia! feito a correção como foi informando, porém  começou a gerar uma erro na linha 80:

/* Vamos checar se o nome de Usuário escolhido e/ou Email já existem no banco de dados */

$sql_email_check = mysql_query(

"SELECT COUNT(usuario_id) FROM usuarios WHERE email='{$email}'"

onde linha 80 é: $sql_email_check = mysql_query  (

 

erro apresentado :

PHP Fatal error:  Uncaught Error: Call to undefined function mysql_query() in /home3/rcionl85/public_html/cadastrar.php:80
Stack trace:
#0 {main}
  thrown in /home3/rcionl85/public_html/cadastrar.php on line 80

Desculpe-me pelas dúvidas, sou iniciantes na programação, mas preciso muito da ajuda de vocês. grato pela compreensão!

 

 

Share this post


Link to post
Share on other sites
Citar

Desculpe-me pelas dúvidas, sou iniciantes na programação, mas preciso muito da ajuda de vocês. grato pela compreensão!

 

Tranquilo, geral começou um dia.


Provavelmente seu servidor não suporte mais o driver 
mysql_* (Repare na ausência do i -> mysqli_)

Exemplo completo de como usar o mysqli_* para listar todos os dados de uma coluna:

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'SUA_SENHA';
$dbname = 'cadeirajs';

$conn = mysqli_connect($dbhost, $dbuser, $dbpass,$dbname);


if(! $conn ) {
	die('Could not connect: ' . mysqli_error());
}

$sql = 'SELECT id FROM cadeiras';
$resultQuery = mysqli_query($conn, $sql);

$cadeiras = mysqli_fetch_all($resultQuery, MYSQLI_ASSOC);

foreach($cadeiras as $cadeira) {
	echo "Id: {$cadeira['id']}\n";
}




---- Obs:

Tenta sempre 'separar' o Sql para facilitar no Debbug futuro.

Ex:
Antes:

$sql = mysql_query ("INSERT INTO usuario.....


Depois:
 

$sqlStatment = "INSERT INTO usuario....."
$sql = mysql_query ($sqlStatment);

 

Assim você pode simplesmente 'exibir e parar' para debugar/depurar de forma mais assertiva;
Ex: de como 'parar' e exibir apenas a instrução SQL:

$sqlStatment = "INSERT INTO usuario....."
die($sqlStatment); // Vai exibir apenas o SQL
$sql = mysql_query ($sqlStatment);

Assim você tem acesso ao SQL, e executa ele manualmente no seu Banco de dados.
Enxergando algum errinho de sql/estrutura mais facilmente.

(Nada impede de rodar o SQL-Statement dentro do seu client de Mysql (MySqlAdmin.php / WorkBench, etc) e ver a resposta.

Att.


 

Share this post


Link to post
Share on other sites
Em 28/03/2019 at 13:14, gabrieldarezzo disse:

Tranquilo, geral começou um dia.


Provavelmente seu servidor não suporte mais o driver 
mysql_* (Repare na ausência do i -> mysqli_)

Exemplo completo de como usar o mysqli_* para listar todos os dados de uma coluna:


<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'SUA_SENHA';
$dbname = 'cadeirajs';

$conn = mysqli_connect($dbhost, $dbuser, $dbpass,$dbname);


if(! $conn ) {
	die('Could not connect: ' . mysqli_error());
}

$sql = 'SELECT id FROM cadeiras';
$resultQuery = mysqli_query($conn, $sql);

$cadeiras = mysqli_fetch_all($resultQuery, MYSQLI_ASSOC);

foreach($cadeiras as $cadeira) {
	echo "Id: {$cadeira['id']}\n";
}




---- Obs:

Tenta sempre 'separar' o Sql para facilitar no Debbug futuro.

Ex:
Antes:


$sql = mysql_query ("INSERT INTO usuario.....


Depois:
 


$sqlStatment = "INSERT INTO usuario....."
$sql = mysql_query ($sqlStatment);

 

Assim você pode simplesmente 'exibir e parar' para debugar/depurar de forma mais assertiva;
Ex: de como 'parar' e exibir apenas a instrução SQL:


$sqlStatment = "INSERT INTO usuario....."
die($sqlStatment); // Vai exibir apenas o SQL
$sql = mysql_query ($sqlStatment);

Assim você tem acesso ao SQL, e executa ele manualmente no seu Banco de dados.
Enxergando algum errinho de sql/estrutura mais facilmente.

(Nada impede de rodar o SQL-Statement dentro do seu client de Mysql (MySqlAdmin.php / WorkBench, etc) e ver a resposta.

Att.


 

Muito obrigado ! com sua a ajuda aqui de vocês consegui! mas outras dúvidas e problemas surgem no decorrer...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Robson Barros da Rocha
      Olá! Estou com sérias dúvidas sobre as notificações push. Já instalado, ela segue este tutorial explicativo: https://www.phpzag.com/push-notification-system-with-php-mysql/ Esse método para mim é mais simples, mas, e já fiz as adaptações para comportar meu banco de dados, mas, o problema é que ele não me envia as notificações push quando estou fora do navegador ou via celuar por exemplo. Eu comentei no artigo mencionado, mas, o autor não me respondeu já tem uma semana.
      Alguém tem algum artigo que indique como posso realizar essas notificações push até mesmo quando o navegador estiver fechado e via aparelho celular?
    • By z101
      Sou iniciante, nunca usei PHP na vida e preciso concluir uma tabela de distribuição de frequencia e o polígono de um array, sendo isso apenas o começo do que preciso fazer, mas isso não vem ao caso agora. Depois de muito pesquisar, acabei com o seguinte código:
      <?php
              $category = 7;
              $data = array(
                  16, 17, 17, 18, 18, 18, 19, 20, 20, 20, 20, 20, 
                  21, 21, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 
                  23, 25, 25, 25, 25, 25, 25, 26, 26, 27, 27, 27, 
                  27, 28, 28, 28, 29, 29, 29, 30, 30, 30, 30, 30, 
                  30, 30, 31, 32, 33, 33, 33, 34, 34, 35, 36, 39
              );
              $min = min($data);
              $max = max($data);
              $limit = ceil(($max - $min) / $category);
              sort($data);
              for ($i = 0; $i < $category; $i++) {
                  $count = 0;
                  foreach ($data as $key => $number) {
                      if ($number <=  (($min + ($limit - 1)) + ($i * $limit))) {
                          $count++;
                          unset($data[$key]);
                      }
                  }
                  echo ($min + ($i * $limit)) . '-' . (($min + ($limit - 1)) + ($i * $limit)) . ' => ' . $count.'<br>';
              }
       
      Ele compila, tudo bem, mas a saída tá errada: 
      16-19 => 7<br>20-23 => 18<br>24-27 => 12<br>28-31 => 14<br>32-35 => 7<br>36-39 => 2<br>40-43 => 0<br> Ele me retorna esses valores, mas devia ser: 
      16 - 19,3 -> 7
      19,3 - 22,6 ->  9
      22,6 - 25,9 -> 15
      25,9 - 29,2 -> 12
      29,2 - 32,5 -> 9
      32,5 - 35,8 -> 6
      35,8 - 39,1 -> 2
       
      O sete veio  daqui : k = 1 + 3,3log 60(60 pq sao 60  números) =  6,9,    esse numero tem que ser inteiro, daí o sete.
      Eu pensei que quando eu atribuisse 7 ao $category, ele ia fazer a divisão do menor valor - o maior valor por 7. No caso 16-39/7 = 3,3. Isso deveria gerar os valores certos, mas não aconteceu.
      Não sei como  arrumar, alguém pode  me ajudar?
       
       
    • By citypoa1
      boa tarde
       
      estou atualizando um script para usar em php 7, atualizei quase todas as funçoes mysql_ para mysqli, menos a mysqli_result que nao tem mais no php 7, pelo menos nao com a mesma funçao
      o codigo
       
       
      $boxes = 1; $tot24 = "0"; $out24 = "0"; $click24 = "0"; $intot = "0"; $outtot = "0"; $clicktot = "0"; $credittot = "0"; while($row = mysqli_fetch_object($result3)) { $result4 = mysqli_query($db1, "SELECT u0,u1,u2,u3,u4,u5,u6,u7,u8,u9,u10,u11,u12,u13,u14,u15,u16,u17,u18,u19,u20,u21,u22,u23 FROM stats WHERE id = $row->id"); $in = mysqli_fetch_array($result4, MYSQLI_NUM); $result5 = mysqli_query($db1, "SELECT o0,o1,o2,o3,o4,o5,o6,o7,o8,o9,o10,o11,o12,o13,o14,o15,o16,o17,o18,o19,o20,o21,o22,o23 FROM stats WHERE id = $row->id"); $out = mysqli_fetch_array($result5, MYSQLI_NUM); $result6 = mysqli_query($db1, "SELECT c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16,c17,c18,c19,c20,c21,c22,c23 FROM stats WHERE id = $row->id"); $click = mysqli_fetch_array($result6, MYSQLI_NUM); $today = 0; $todayout = 0; $todayclick = 0; for($i=0;$i<=$thishour;$i++) { $today = $today + $in[$i]; } for($i=0;$i<=$thishour;$i++) { $todayout = $todayout + $out[$i]; } for($i=0;$i<=$thishour;$i++) { $todayclick = $todayclick + $click[$i]; } $totalins = $row->ins + $today; $totalout = $row->outs + $todayout; $totalclick = $row->clicks + $todayclick; if($row->ins24 == 0) $prod24 = "0%"; else $prod24 = round($row->click24 / $row->ins24 * 100) ."%"; if($totalins == 0) $prod = "0%"; else $prod = round($totalclick / $totalins * 100) ."%"; if($row->active == 0) { $bgimg = "../images/system/line2.jpg"; $enable = "<span onclick=\"enable('partner',$row->id);\" id=\"enable$row->id\"><img src=\"../images/system/enable.jpg\" id=\"enimg$row->id\"></span>"; } else { $bgimg = "../images/system/line.jpg"; $enable = "<span onclick=\"disable('partner',$row->id);\" id=\"enable$row->id\"><img src=\"../images/system/disable.jpg\" id=\"enimg$row->id\"></span>"; } if($row->chosen == 0) $chosenone = "No"; else $chosenone = "Yes"; if($row->noframe == 0) $nofrm = "Yes"; else $nofrm = "No"; $credits = round($totalins - $totalout * ($ratio / 100)); if($showdaily == 1) { $showin2 = $today; $showout2 = $todayout; if($today == 0) $showprod2 = "0%"; else $showprod2 = round($todayclick / $today * 100) ."%"; } else { $showin2 = $row->ins24; $showout2 = $row->out24; $showprod2 = $prod24; } if(strlen($row->domain) > 15) $domain = substr($row->domain, 0, 15)."..."; else $domain = $row->domain; $allplugs = mysqli_result(mysqli_query($db1, "SELECT COUNT(*) FROM content WHERE domain='$row->domain'"),0); $activeplugs = mysqli_result(mysqli_query($db1, "SELECT COUNT(*) FROM content WHERE domain='$row->domain' AND active=1"),0); o erro esta nas duas ultimas linhas, porque nao existe a funçao msqli_result, pesquisei todos os topicos aqui do forum e de outros forum sobre o meu problema, consegui resolver quase todos menos esse do mysqli_result
      ja tentei de todas as formas indicadas, a mais proxima foi 
      $allplugs = mysqli_query($db1, "SELECT COUNT(*) FROM content WHERE domain='$row->domain'"); $rows = $allplugs->fetch_assoc(); if(count($rows) > 0){ } $activeplugs = mysqli_query($db1, "SELECT COUNT(*) FROM content WHERE domain='$row->domain'"); $rows = $activeplugs->fetch_assoc(); if(count($rows) > 0){ } mas da o erro 
      Recoverable fatal error: Object of class mysqli_result could not be converted to string in /home2
      linha do erro:
      <div style=\"width:900px;float:left;\"><div class=\"edittitle\">Plugs(active):</div><div id=\"edittext\">$allplugs($activeplugs)</div></div>");
      echo "        <li id=\"li$row->id\">
       
      o problema ainda é a forma de usar a funçao mysqli_result, acho que fiz da forma errada
       
      alguem saberia onde esta o erro? ou indicar algum artigo relacionado...
    • By EvertonFD
      Bom dia estou fazendo u  ranking onde deve ser selecionado alguns critérios de desempate exemplo:
      Caso os pontos sejam iguais deve ser decidido pelos gols, só pra ressaltar estou aprendendo php então se tiver uma maneira melhor de fazer isso estou disposto a aprender, segue o codigo que estou usando:
       <?php
              $result_times = "  SELECT * FROM  times    WHERE grupos='4'  
                                                      
                                                      ORDER BY pontos    DESC";
              $resultado_times = mysqli_query( $conn, $result_times );
              while ( $row_times = mysqli_fetch_assoc( $resultado_times ) ) {
                  ?>
          
          <div class="row p-1 bg-light p-1 mt-1 ">
              <div class="col-md-3 ">
                  <img src="assets/images/times/<?php echo $row_times['id']; ?>/<?php echo $row_times['logo_time']; ?>" width="60">
                  <span>
                      <?php echo $row_times['nome']; ?>
                  </span>
              </div>
              <div class="col-md-1 col-4 align-self-center  border">
                  V- <?php echo $row_times['vitoria']; ?>
              </div>
              <div class="col-md-1 col-4 align-self-center border">E-<?php echo $row_times['empate']; ?></div>
              <div class="col-md-2 col-4 align-self-center border">D-<?php echo $row_times['derrota']; ?></div>
              <div class="col-md-2 col-4 align-self-center border">GF-<?php echo $row_times['gf']; ?></div>
              <div class="col-md-2 col-4 align-self-center border">GC-<?php echo $row_times['gc']; ?></div>
              <div class="col-md-1 col-4 align-self-center border">P-<?php echo $row_times['pontos']; ?></div>
          </div>
                  <!---->
                  <?php
              }
              ?>
            
          
    • By Matheus_Moura
      Boa tarde.
      Estou fazendo uma aplicação PHP em um PC Linux com Lubuntu como SO, para conexão com um banco de dados ORACLE 11g. Porém quando utilizo a função oci_connect ou qualquer outra função para oracle é retornado uma mensagem informando que estão indefenidas.
      Estou utilizando o XAMPP como servidor e fiz a configuração no caminho opt/lampp/etc/php.ini retirando o ; tanto no php_oci8.dll como também na php_oracle.dll, porém não obtive sucesso. Coloquei dentro da pasta opt também o instantclient já descompactado e utilizei o PECL para tentar ativar as OCI, porém mesmo assim ainda não consegui sucesso. Alguém teria alguma outra sugestão ?
       
      Att,
      Matheus Moura
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.