Ir para conteúdo

Arquivado

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

ralfinho

[Resolvido] Cadastro de empresas

Recommended Posts

Então. Significa que a $ID não existe, por isto que dá problema. Veja em que ponto do teu código você tem o valor do id do usuário logado. Esta é a variável que tem que colocar ali.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha fiz o seguinte

 

adicionei a linha abaixo, no local que faz as consultas do banco "dados_usuarios"

$ID = $linha["ID"];

 

e fiz a seguinte consulta como você mesmo me ensinou

$sql = "SELECT * FROM empresa WHERE quemCadastrou='$ID' ORDER BY id DESC";
echo '<br/>A segunda consulta é '.$sql;

 

e apareceu a seguinte mensagem

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

 

veja o códigos na página inteira

<?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"];
$ID = $linha["ID"];
?>
<!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";
echo '<br/>A segunda consulta é '.$sql;
$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
}
?>

 

tem mais alguma coisa que eu possa fazer para que funcione?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas não funcionou??? Agora está tudo certo. Faça o seguinte. Veja se na hora de inserir ele colocou o campo quemCadastrou com o valor de 5 mesmo... Porque agora a consulta está perfeita. A lógica também está correta. A única coisa que eu consigo pensar é que não inseriu o id correto na empresa.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

está sim inserindo corretamente "eu axo"

<?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','$ID')"; 
mysql_query($query) or die (mysql_error());
mysql_close();//fecha conexão

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

 

e o ID está correto sim conforme a tabela

 

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 ;

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim mais este $id = $_POST['id']; vai ser o id da empresa para quando o usuario cadastrar a empresa pode vizualizar os dados dela.

 

tipo = ver_dados_empresa.php?id=AQUI FICARÁ O ID DA EMPRESA.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos lá... Sobre o erro no insert... Adicione o código para exibir os erros nesta página. Vai dizer que a $ID não está definida. Como eu te falei, tem que ver de onde está vindo a $ID.

 

tipo = ver_dados_empresa.php?id=AQUI FICARÁ O ID DA EMPRESA.

 

Para pegar este valor, você usa $_GET['id'] e não $_POST['id'].

http://br.php.net/manual/en/reserved.variables.post.php

http://br.php.net/manual/en/reserved.variables.get.php

 

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.

 

foi eu rsrsrs mal ai cara é que quando eu falei pra voce fazer isso eu nao percebi que o login ficava guradado na variavel "$Login" eu entendi que ele ficava no "$login_usuario"

 

o que ia acontecer aqui é o mesmo esquema que voce fez agora so que em vez do id ia usar o n login do usuario

 

flws

Compartilhar este post


Link para o post
Compartilhar em outros sites

então coloquei o codigo de erro lá.

 

<?php 
ini_set('display_errors', 1);
error_reporting(E_ALL); 
?>
<?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','$ID')"; 
mysql_query($query) or die (mysql_error());
mysql_close();//fecha conexão

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

 

Ai deu as seguintes mensagens

 

Notice: Undefined index: id in E:\domains\sincopa.org.br\wwwroot\usuarios\enviar_empresa.php on line 9

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

 

como faço pra consertar isso, o "id" é o da empresa, e o "ID" é do usuario.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que eu me lembro voce ta passando o id mais ou menos assim ne link?empresa=id_da_empresa

 

na hora de pegar os dados voce ta usando post

$id = $_POST['id'] o certo é usar o get $id = $_GET['id']

 

outra coisa, o id aqui esta em maiusculo

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

e aqui esta em minusculo, lembrando o que o amigo falou um pouco acima o PHP diferencia maiuscula de minuscula($id é diferente de $ID) outra coisa voce deve usar o GET se voce quiser pegar o id pela URL

$id = $_POST['id'];

flws

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que foi colocado acima já foi falado anteriormente. Preste atenção nas sugestões dadas. Eu perguntei várias vezes de onde vem a $ID, e até agora você não respondeu.

Para verificar que dados estão vindo, faça o seguinte. Coloque este código no início.

 

<?php 
ini_set('display_errors', 1);
error_reporting(E_ALL); 
echo '<pre>Os dados do POST são <br/>';
print_r($_POST);
echo '<br/>Os dados do GET são <br/>';
print_r($_GET);
echo '<br/>Os dados do SESSION são <br/>';
print_r($_SESSION);
?>

Vai imprimir todos os valores de POST, GET e SESSION. O id da empresa tem que vir de algum deles. Veja de onde ele vem e corrija o código.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

então apareceu esse erro, eu utilizei nomes ficticios como "aaaaaa"

Os dados do POST são Array
(
   [nomedaempresa] => Sindicato
   [cnpj] => aaa
   [endereco] => aaaa
   [numero] => aaa
   [bairro] => aaa
   [cidade] => aaa
   [estado] => AC
   [cep] => aaaaa
   [submit] => Cadastrar
)
Os dados do GET são Array
(
)
Os dados do SESSION são 
Notice:  Undefined variable: _SESSION in E:\domains\sincopa.org.br\wwwroot\usuarios\enviar_empresa.php on line 9


Notice:  Undefined index:  id in E:\domains\sincopa.org.br\wwwroot\usuarios\enviar_empresa.php on line 15

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

 

 

e olha eu ja troquei o POST por GET, mais não tava exibindo os dados da empresa depois que o usuario cadastra..

 

eu faço tipo assim

<?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','$ID')"; 
mysql_query($query) or die (mysql_error());
mysql_close();//fecha conexão

?>
<?php echo "Nome da Empresa: $empresa<br>Endereço: $endereco"; ?>

 

sim e você quer saber de onde vem o ID?, então "id" é da empresa, e o que "ID" é para pegar o id do usuário.. creio que seja isso que você queira saber, ja to desesperado aki.

Compartilhar este post


Link para o post
Compartilhar em outros sites
<form method=POST action="enviar_empresa.php"><table width="100%" border="0" cellspacing="1" cellpadding="2">
         <tr>
           <td width="24%" class="texto01"><strong>Nome da Empresa:</strong></td>
           <td width="76%"><input name=nomedaempresa type=text id="nomedaempresa" size=30> 
             <strong>  <span class="texto01">CNPJ: <strong>
             <input name=cnpj type=text id="cnpj" size=16 >
             </strong></span></strong></td>
         </tr>
         <tr>
           <td class="texto01"><strong>Endereço:</strong></td>
           <td><input name=endereco type=text id="endereco" size=40> 
             <span class="texto01"><strong>Nº: 
             <input name=numero type=text id="numero" size=8 >
             </strong></span></td>
         </tr>
         <tr>
           <td class="texto01"><strong>Bairro:</strong></td>
           <td><input name=bairro type=text id="bairro" size=15> 
             <strong><span class="texto01">Cidade: <strong>
             <input name=cidade type=text id="cidade" size=17 > 
             UF: <span class="texto01">
             <select name="estado" class="textobox" id="estado">
               <option value="">UF</option>
               <option value="AC">AC</option>
               <option value="AL">AL</option>
               <option value="AM">AM</option>
               <option value="AP">AP</option>
               <option value="BA">BA</option>
               <option value="CE">CE</option>
               <option value="DF">DF</option>
               <option value="ES">ES</option>
               <option value="GO">GO</option>
               <option value="MA">MA</option>
               <option value="MG">MG</option>
               <option value="MS">MS</option>
               <option value="MT">MT</option>
               <option value="PA">PA</option>
               <option value="PB">PB</option>
               <option value="PE">PE</option>
               <option value="PI">PI</option>
               <option value="PR">PR</option>
               <option value="RJ">RJ</option>
               <option value="RN">RN</option>
               <option value="RO">RO</option>
               <option value="RR">RR</option>
               <option value="RS">RS</option>
               <option value="SC">SC</option>
               <option value="SE">SE</option>
               <option value="SP">SP</option>
               <option value="TO">TO</option>
             </select>
             </span></strong></span></strong></td>
         </tr>
         <tr>
           <td class="texto01"><strong>CEP:</strong></td>
           <td><strong><span class="texto01"><strong>
                   <input name=cep type=text id="cep" size=15 >
                   </strong></span></strong><span class="texto01"><a href="http://www.correios.com.br/servicos/cep/cep_loc_log.cfm" target="_blank"><font color="#006699">Consultar
                   CEP nos Correios.</font></a></span></td>
         </tr>
         <tr>
           <td> </td>
           <td><input name="submit" type=submit value="Cadastrar"></td>
         </tr>
         <tr>
           <td> </td>
           <td> </td>
         </tr>
         <tr>
           <td> </td>
           <td class="texto01"><a href="entrar.php"><font color="#006699">Voltar</font></a></td>
         </tr>
       </table>
       </form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem coisa errada na lógica..

 

$id = $_POST['id'];
Esta linha... como você vai ter o id da empresa se ela não foi cadastrada ainda? Então esta linha não precisa.

 

$ID
Esta variável tem o id de quem está cadastrando a empresa, correto? Como você sabe quem é esta pessoa? Tem que fazer o login para cadastrar? Poste a parte em que você testa se o login e a senha estão corretos. Além disto, poste aqui a parte em que você testa se o cara está logado.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, a pessoa só pode cadastrar a empresa se estiver cadastrado..

 

logar.php

<?php
// inclui o arquiv o de configuração do sistema
include "config_sistema.php";
// revebe dados do formulario
$login = htmlspecialchars($_POST['login']);
$senha = $_POST['senha'];

// verifica se o usuario existe
$consulta = mysql_query("select * from dados_usuarios where Login='$login'");
$campos = mysql_num_rows($consulta);
if($campos != 0) {
// se o usuario existi verifica a senha dele
if($senha != mysql_result($consulta,0,"Senha")) {
	echo "<font color=red><b>
		  Senha incorreta!
		  </font></b>";
	exit;
} else {
	// estiver tudo certo vamos ver se ele é o administrador
	if($login == $login_admin) {
		// se for o login do administrador vamos verificar a senha dele
		// se é igual a do administrado
		if($senha == $senha_admin) {
			// se for o administrador vomos criar a sessão
			session_start();
			$_SESSION['login_usuario'] = $login;
			$_SESSION['senha_usuario'] = $senha;

			// redireciona o link para uma outra pagina
			header("Location: Admin/listar_usuarios.php");

		}
	} else {
		// se o login não for do administrado vamos criar a sessão dele
		session_start();
		$_SESSION['login_usuario'] = $login;
		$_SESSION['senha_usuario'] = $senha;

		// redireciona o link para uma outra pagina
		header("Location: entrar.php");
	}
}
} else {
echo "<font color=red><b>
	  O usuario não existe!
	  </font></b>";
exit;
}
?>

 

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

Então... Muda isto.

 

$_SESSION['login_usuario'] = $login;
$_SESSION['senha_usuario'] = $senha;

Adiciona o id do usuário, que você pegou na consulta. Tipo assim...

$_SESSION['id_usuario'] = mysql_result($consulta,0,"id");

Onde id é o nome da coluna autoincrement da tabela usuário.

Aí você troca $ID por $_SESSION['id_usuario'] e dá um include do arquivo validar_session.php no arquivo que faz o insert no banco de dados.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha como sou novato não entendi muito bem, muda em qual na pagina? na de logar?, ou na de verificar se o usuario esta logado?

 

tbm não entendi essa parte "Aí você troca $ID por $_SESSION['id_usuario']"

 

então ficaria assim?

$_SESSION['id_usuario'] = mysql_result($consulta,0,"id");
$_SESSION['senha_usuario'] = $senha;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, pra facilitar (porque teria muita coisa pra arrumar) e fazer funcionar, você troca isto.

 

$_SESSION['login_usuario'] = $login;
$_SESSION['senha_usuario'] = $senha;

Por isto

$_SESSION['login_usuario'] = $login;
$_SESSION['senha_usuario'] = $senha;
$_SESSION['id_usuario'] = mysql_result($consulta,0,"id");

Em todas as partes do código da página de logar. Só atente-se ao nome do campo...

mysql_result($consulta,0,"id");

Aqui eu DEDUZI que o nome do campo é id. Se for outro nome, modifique ali.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

O id no codigo abaixo tá em minusculo, eu tenho que deixar igual ao que está no Insert? pq o do Insert é Maisculo..

$_SESSION['id_usuario'] = mysql_result($consulta,0,"id");

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.