Ir para conteúdo

Arquivado

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

ralfinho

[Resolvido] Cadastro de empresas

Recommended Posts

Não apareceu nenhuma mensagem, ficou do mesmo jeito, e deixei do jeito que estava antes.

 

bom será que o erro pode estar aonde envia as empresas?

<?php //Renan Afonso
require("../sistemas/conectdb.php");

//conecta no banco
$id = $_POST['id'];
$nomedaempresa = $_POST['nomedaempresa'];
$cnpj = $_POST['cnpj'];
$endereco = $_POST['endereco'];
$numero = $_POST['numero'];
$bairro = $_POST['bairro'];
$cidade = $_POST['cidade'];
$estado = $_POST['estado'];
$cep = $_POST['cep'];

$query = "INSERT INTO empresa (nomedaempresa, cnpj, endereco, numero, bairro, cidade, estado, cep, quemCadastrou) VALUES ('$nomedaempresa','$cnpj','$endereco','$numero','$bairro','$cidade','$estado','$cep','$login_usuario')"; 
mysql_query($query) or die (mysql_error());
mysql_close();//fecha conexão

?>
<?php echo "GERA AQUI OS DADOS DA EMPRESA"; ?>

 

AQUI ESTÁ A PÁGINA QUE MOSTRA AS EMPRESAS DO USUÁRIO

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL); 
?>
<?php
include "validar_session.php";
include "config_sistema.php";

// faz consulta no banco
$consulta = mysql_query("select * from dados_usuarios where Login = '$login_usuario'");
while($linha = mysql_fetch_array($consulta)){
$Login = $linha["Login"];
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Sindicato dos Comerciários - Painel de Usuário</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="style.css" rel="stylesheet" type="text/css">
</head>

<body background="imagens/fundo.png">
<table width="750" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
 <tr>
   <td colspan="5"><img src="imagens/topo_log.gif" width="750" height="70"></td>
 </tr>
 <tr>
   <td colspan="5"><table width="100%" border="0" cellspacing="0" cellpadding="0">
     <tr>
       <td width="0%"> </td>
       <td width="26%"> </td>
       <td width="19%"> </td>
       <td width="1%"> </td>
       <td width="35%" class="texto01"><strong>Olá seja bem vindo(a) <? echo $Login ?></strong></td>
       <td width="9%" class="texto01"><strong><a href="entrar.php">Principal</a></strong></td>
       <td width="1%" class="texto01"> </td>
       <td width="5%" class="texto01"><strong> <a href="logout.php">Logout</a></strong></td>
       <td width="4%"> </td>
     </tr>
   </table></td>
 </tr>
 <tr>
   <td width="8" rowspan="4"> </td>
   <td width="148"><a href="http-~~-//www.sincopa.org.br" target="_blank"><img src="imagens/logo_sindicato.png" width="148" height="215" border="0"></a></td>
   <td width="12" rowspan="4"> </td>
   <td width="570" rowspan="4"><table width="500" border="0" align="center" cellpadding="2" cellspacing="1">
     <tr>
       <td width="445" height="10" bgcolor="#0099CC"><div align="center" class="texto01"><strong>Escolha
             a Empresa</strong></div></td>
     </tr>
     <tr>
       <td><table width="100%" border="0" cellspacing="1" cellpadding="2">
         <tr>
           <td>
<?
require ("../sistemas/conectdb.php");
$sql = "SELECT * FROM empresa WHERE quemCadastrou='$login_usuario' ORDER BY id";
$limite = mysql_query("$sql");
while  ($sql = mysql_fetch_array ($limite) ) {
$id = $sql['id'];
$nomedaempresa = $sql['nomedaempresa'];
?>
             <span class="texto01"><?php echo $sql['nomedaempresa'] ?></span><br>
             <? } ?></td>
         </tr>
         <tr>
           <td width="76%"> </td>
         </tr>
         <tr>
           <td class="texto01"><a href="entrar.php"><font color="#006699">Voltar</font></a></td>
         </tr>
       </table>
       </td>
     </tr>
   </table></td>
   <td width="12" rowspan="4"> </td>
 </tr>
 <tr>
   <td height="5"> </td>
 </tr>
 <tr>
   <td><a href="http-~~-//www.cut.org.br/" target="_blank"><img src="imagens/cut.gif" width="148" height="62" border="0"></a></td>
 </tr>
 <tr>
   <td height="5"> </td>
 </tr>
 <tr>
   <td colspan="5"><img src="imagens/rodape_log.gif" width="750" height="70"></td>
 </tr>
</table>
</body>
</html>
    <?php
}
?>

 

OS BANCOS DE DADOS DA TABELA "empresa" e a "dados_usuarios".

 

dados_usuarios

CREATE TABLE `dados_usuarios` (
 `ID` int(11) NOT NULL auto_increment,
 `Login` varchar(50) NOT NULL,
 `Senha` char(15) NOT NULL,
 `Nome` varchar(200) NOT NULL,
 `Escritorio` varchar(200) NOT NULL,
 PRIMARY KEY  (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

 

empresa

CREATE TABLE `empresa` (
 `id` int(11) NOT NULL auto_increment,
 `nomedaempresa` text NOT NULL,
 `cnpj` text NOT NULL,
 `endereco` text NOT NULL,
 `numero` text NOT NULL,
 `bairro` text NOT NULL,
 `cidade` text NOT NULL,
 `estado` text NOT NULL,
 `cep` text NOT NULL,
 `quemCadastrou` text NOT NULL,
 PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça o que disse neste post.

http://forum.imasters.com.br/index.php?/topic/364808-cadastro-de-empresas/page__view__findpost__p__1397873

 

Vai exibir 2 mensagens, além do conteúdo normal da página. Coloque estas mensagens aqui.

 

Além disto, troque esta parte do código

$query = "INSERT INTO empresa (nomedaempresa, cnpj, endereco, numero, bairro, cidade, estado, cep, quemCadastrou) VALUES ('$nomedaempresa','$cnpj','$endereco','$numero','$bairro','$cidade','$estado','$cep','$login_usuario')"; 
mysql_query($query) or die (mysql_error());
Por isto

$query = "INSERT INTO empresa (nomedaempresa, cnpj, endereco, numero, bairro, cidade, estado, cep, quemCadastrou) VALUES ('$nomedaempresa','$cnpj','$endereco','$numero','$bairro','$cidade','$estado','$cep','$login_usuario')"; 
echo 'A query de inserção é esta '.$query;
mysql_query($query) or die (mysql_error());

Na hora que você for inserir alguma empresa, vai aparecer uma mensagem. Copie ela e cole aqui também.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro vamos às criticas:

 

Creio que estejas listando as empresas pelo usuário que está logado. OK!?

 

entao pra que um while na linha 12?

 

$consulta = mysql_query("select * from dados_usuarios where Login = '$login_usuario'");
while($linha = mysql_fetch_array($consulta)){
$Login = $linha["Login"];
troque para:

$consulta = mysql_query("select * from dados_usuarios where Login = '$login_usuario'");
$linha = mysql_fetch_array($consulta);
$Login = $linha["Login"];
e retire o "}" do final do código.

 

verifique se chamar este arquivo é realmente inportante, já que estás conectado ao banco de dados (se a linha 11 está certa):

require ("../sistemas/conectdb.php");
pode ser que ele esteja sobrescrevendo alguma coisa como por exemplo o $login_usuario.

 

coloque um "or die (mysql_error())" depois das consultas [mysql_query("SELECT...")or die (mysql_error());]

remontei aki com estas mesmas informações e funcionou.

tente setar "manualmente" o $login_usuário para verificar se este não é o problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

validar_session.php

 

<?php
@session_start();

// inclui o arquivo de configuração do sistema
include "config_sistema.php";

// verifica se a variavel existir
if(isset($_SESSION['login_usuario']) and isset($_SESSION['senha_usuario'])) {
// se existie as sessões coloca os valores em uma varivel
$login_usuario = $_SESSION['login_usuario'];
$senha_usuario = $_SESSION['senha_usuario'];
} else {
$erro = urlencode("Você não esta logado!");
header("Location: login.php");
exit;
}

// verifica se as variaveis estão atribuidas
if(!(empty($login_usuario) or empty($senha_usuario))) {
// se estiverem atribuidos vamos ver se exist o login
$consulta = mysql_query("select * from dados_usuarios where Login = '$login_usuario'");
if(mysql_num_rows($consulta) == 1) {
	// se o usuario exostir vamos verificar a senha
	if($senha_usuario != mysql_result($consulta,0,"Senha")) {
		// se a senha está correta vamos apagar a
		// sessão que existia mas erra a errada
		unset($_SESSION['login_usuario']);
		unset($_SESSION['senha_usuario']);

		$erro = urlencode("Você não esta logado!");
		header("Location: login.php");
		exit;
	}
} else {
	unset($_SESSION['login_usuario']);
	unset($_SESSION['senha_usuario']);

	$erro = urlencode("Você não esta logado!");
	header("Location: login.php");
	exit;
}
} else {
// caso as sessões estarem vaizias
$erro = urlencode("Você não esta logado!");
header("Location: login.php");
exit;
}
mysql_close($conn);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

De onde vem a $login_usuario?

 

Carlos Eduardo

 

 

você esta se referindo ao login desse sistema?

<?php
include "validar_session.php";

include "config_sistema.php";

// faz consulta no banco
$consulta = mysql_query("select * from dados_usuarios where Login = '$login_usuario'");
while($linha = mysql_fetch_array($consulta)){
$Login = $linha["Login"];
?>

 

bom se for, eu utilizei para exibir o login do usuario na página.

Seja bem vindo <? echo $Login ?>.

 

O que voce ta fazendo é consultar o login com a variavel "$login_usuario"

e quardar o valor na variavel "$Login"

 

so que aqui no valida_session.php, a variavel "$login_usuario" ja tem o login ????

$consulta = mysql_query("select * from dados_usuarios where Login = '$login_usuario'");
        if(mysql_num_rows($consulta) == 1) {
                // se o usuario exostir vamos verificar a senha
                if($senha_usuario != mysql_result($consulta,0,"Senha")) {
                        // se a senha está correta vamos apagar a
                        // sessão que existia mas erra a errada
                        unset($_SESSION['login_usuario']);
                        unset($_SESSION['senha_usuario']);
                        
                        $erro = urlencode("Você não esta logado!");
                        header("Location: login.php");
                        exit;
                }

 

tira a parte abaixo que eu acho que vai funcionar

// faz consulta no banco
$consulta = mysql_query("select * from dados_usuarios where Login = '$login_usuario'");
while($linha = mysql_fetch_array($consulta)){
$Login = $linha["Login"];
?>

se nao der certo voce coloca ela no lugar de novo e troca a consulta

$sql = "SELECT * FROM empresa WHERE quemCadastrou='$login_usuario' ORDER BY id DESC";
Por

$sql = "SELECT * FROM empresa WHERE quemCadastrou='$Login' ORDER BY id DESC";
depois da um echo no login so pra verificar se o nome esta certo mesmo

 

flws

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tentei e mesmo assim não está exibindo as empresas

 

eu tirei aquela parte que você disse

// faz consulta no banco
$consulta = mysql_query("select * from dados_usuarios where Login = '$login_usuario'");
while($linha = mysql_fetch_array($consulta)){
$Login = $linha["Login"];
?>

 

mas de todo jeito eu iria precisar dela para exibir o nome do login do usuario.

 

substituir login_usuario por Login, mais não deu certo.

 

EU TIREI ESSA PARTE -> WHERE quemCadastrou='$Login' mais exibe todas as empresas, eu queria que so exibisse as empresas cadastradas por aquele usuario.

$sql = "SELECT * FROM empresa ORDER BY id";

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://forum.imasters.com.br/index.php?/topic/364808-cadastro-de-empresas/page__view__findpost__p__1397951

http://forum.imasters.com.br/index.php?/topic/364808-cadastro-de-empresas/page__view__findpost__p__1397951

 

Amigo, releia os 2 posts acima. Se você fizer as modificações que eu falei, tem que exibir 3 mensagens na tela.

AS MODIFICAÇÕES SUGERIDAS NÃO VÃO RESOLVER O PROBLEMA.

Com estas mensagens que tem que exibir, vou poder entender o que você está fazendo de errado e então sugerir a solução.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apareceu sim 2 mensagens

 

nessa apareceu o nome de login "renan" no caso o que eu estava logado.

A primeira consulta é select * from dados_usuarios where Login = 'renan' 

 

nesta tbm.

A segunda consulta é SELECT * FROM empresa WHERE Login='renan' ORDER BY id DESC
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in E:\domains\sincopa.org.br\wwwroot\usuarios\guias.php on line 58

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apareceu na pagina que cadastra as empresas tbm

 

A query de inserção é esta INSERT INTO empresa (nomedaempresa, cnpj, endereco, numero, bairro, cidade, estado, cep, quemCadastrou) VALUES ('Empresa','Cnpj dela','o endereço','numero','o bairro','a cidade','','o cep','')

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom. Agora vamos lá...

Veja como está a inserção.

A query de inserção é esta 
INSERT INTO empresa 
(nomedaempresa, cnpj, endereco, numero, bairro, cidade, estado, cep, quemCadastrou) VALUES 
('Empresa','Cnpj dela','o endereço','numero','o bairro','a cidade','','o cep','')
Problema_1 - faltou o estado. Não foi enviado nada mesmo no campo estado ou a variável estava vazia?

Problema_2 - Este é o que está causando toda a dificuldade. Veja, o código que gera esta query é este.

$query = "INSERT INTO empresa 
(nomedaempresa, cnpj, endereco, numero, bairro, cidade, estado, cep, quemCadastrou) VALUES 
('$nomedaempresa','$cnpj','$endereco','$numero','$bairro','$cidade','$estado','$cep','$login_usuario')";

Isto significa que a $login_usuario está vazia nesta página, porque o valor dela não aparece na execução. Ou seja, na hora de inserir no banco de dados, está inserindo todas as empresas sem ninguém no campo quemCadastrou.

 

Então, pergunto novamente. De onde vem a $login_usuario NA PÁGINA QUE FAZ A INSERÇÃO NO BANCO DE DADOS, ou seja, na página que tem o código acima?

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguem nesse forum que mandou eu colocar o $login_usuario, pq tipo assim eu não quero que diga quem cadastrou, e sim quando o usuario acessar a sua página exiba as suas empresas cadastradas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, mas para exibir as empresas que ele cadastrou, tem que gravar na tabela do banco de dados que é o ele que está cadastrando, para depois, na hora da consulta, poder pegar somente as que ele cadastrou. O ideal ali é colocar o id (que é o autoincrement) da tabela de usuários, do usuário que está logado.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

ENTÃO NO CASO EU TENHO SÓ QUE MODIFICAR A PÁGINA DE ENVIAR A EMPRESA?

 

NO LUGAR DE $login_usuario eu coloco "ID"

 

assim

$query = "INSERT INTO empresa (nomedaempresa, cnpj, endereco, numero, bairro, cidade, estado, cep, quemCadastrou) VALUES ('$nomedaempresa','$cnpj','$endereco','$numero','$bairro','$cidade','$estado','$cep','$ID')"; 
mysql_query($query) or die (mysql_error());

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isto está correto, mas além disto tem uma outra pequena mudança.

Na $ID você tem o id de quem está logado, correto? Só que daí, na hora das consultas, você vai ter que trocar também pela variável que contém o id do cara que está logado. Agora, as que tem lá, pegam o nome dele. Aí se estiver cadastrado o id e você tentar pegar por nome, não vai vir nada.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

então fiz o que você mandou, só que ta exibindo todas as empresas cadastradas, de todos os usuarios

 

vê se ta certo

$query = "INSERT INTO empresa (nomedaempresa, cnpj, endereco, numero, bairro, cidade, estado, cep, quemCadastrou) VALUES ('$nomedaempresa','$cnpj','$endereco','$numero','$bairro','$cidade','$estado','$cep','$ID')"; 
mysql_query($query) or die (mysql_error());
mysql_close();//fecha conexão

 

<?php
include "validar_session.php";
include "config_sistema.php";

// faz consulta no banco
$consulta = mysql_query("select * from dados_usuarios where Login = '$login_usuario'");
while($linha = mysql_fetch_array($consulta)){
$Login = $linha["Login"];
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Sindicato dos Comerciários - Painel de Usuário</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="style.css" rel="stylesheet" type="text/css">
</head>

<body background="imagens/fundo.png">
<table width="750" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
 <tr>
   <td colspan="5"><img src="imagens/topo_log.gif" width="750" height="70"></td>
 </tr>
 <tr>
   <td colspan="5"><table width="100%" border="0" cellspacing="0" cellpadding="0">
     <tr>
       <td width="0%"> </td>
       <td width="26%"> </td>
       <td width="19%"> </td>
       <td width="1%"> </td>
       <td width="35%" class="texto01"><strong>Olá seja bem vindo(a) <? echo $Login ?></strong></td>
       <td width="9%" class="texto01"><strong><a href="entrar.php">Principal</a></strong></td>
       <td width="1%" class="texto01"> </td>
       <td width="5%" class="texto01"><strong> <a href="logout.php">Logout</a></strong></td>
       <td width="4%"> </td>
     </tr>
   </table></td>
 </tr>
 <tr>
   <td width="8" rowspan="4"> </td>
   <td width="148"><a href="http://www.sincopa.org.br" target="_blank"><img src="imagens/logo_sindicato.png" width="148" height="215" border="0"></a></td>
   <td width="12" rowspan="4"> </td>
   <td width="570" rowspan="4"><table width="500" border="0" align="center" cellpadding="2" cellspacing="1">
     <tr>
       <td width="445" height="10" bgcolor="#0099CC"><div align="center" class="texto01"><strong>Escolha
             a Empresa</strong></div></td>
     </tr>
     <tr>
       <td><table width="100%" border="0" cellspacing="1" cellpadding="2">
         <tr>
           <td>
<?
require ("../sistemas/conectdb.php");
$sql = "SELECT * FROM empresa WHERE quemCadastrou='$ID' ORDER BY id DESC";
$limite = mysql_query("$sql");
while  ($sql = mysql_fetch_array ($limite) ) {
$id = $sql['id'];
$nomedaempresa = $sql['nomedaempresa'];
?>
             <span class="texto01"><?php echo $sql['nomedaempresa'] ?></span><br>
             <? } ?></td>
         </tr>
         <tr>
           <td width="76%"> </td>
         </tr>
         <tr>
           <td class="texto01"><a href="entrar.php"><font color="#006699">Voltar</font></a></td>
         </tr>
       </table>
       </td>
     </tr>
   </table></td>
   <td width="12" rowspan="4"> </td>
 </tr>
 <tr>
   <td height="5"> </td>
 </tr>
 <tr>
   <td><a href="http://www.cut.org.br/" target="_blank"><img src="imagens/cut.gif" width="148" height="62" border="0"></a></td>
 </tr>
 <tr>
   <td height="5"> </td>
 </tr>
 <tr>
   <td colspan="5"><img src="imagens/rodape_log.gif" width="750" height="70"></td>
 </tr>
</table>
</body>
</html>
    <?php
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, a lógica está correta. O que deve estar errado são os valores que as variáveis estão recebendo.

 

Imprima a $ID antes de colocar nas duas querys. Veja se existe algum valor nelas e se o valor é o mesmo. Ex.:

echo 'O valor da $ID antes da query de INSERT é '.$ID;
$query = "INSERT INTO empresa (nomedaempresa, cnpj

Faça a mesma coisa no outro momento que você utiliza a $ID.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

então eu fiz ai apareceu a seguinte mensagem.

 

A segunda consulta é SELECT * FROM empresa WHERE Login='' ORDER BY id DESC

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in E:\domains\sincopa.org.br\wwwroot\usuarios\guias.php on line 56

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja que o local onde deveria estar a $ID está vazio, ou seja, não está passando a $ID para o código. Confira de onde vem este valor e se o nome da variável é assim mesmo. Como o PHP é case-sensitive, $ID é diferente de $Id, que é diferente de $id.

 

Sugiro que para facilitar o debug, ative todas as mensagens de erro, colocando este código no início de todas as páginas (depois que estiver tudo rodando OK você pode tirar).

 

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

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apareceu a seguinte mensagem depois que coloquei o código

Notice: Undefined variable: ID in E:\domains\sincopa.org.br\wwwroot\usuarios\guias.php on line 56

A segunda consulta é SELECT * FROM empresa WHERE Login='' ORDER BY id DESC
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in E:\domains\sincopa.org.br\wwwroot\usuarios\guias.php on line 59

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.