Jump to content


Photo

Ajuda - Sistema De Login


  • Faça o login para participar
2 replies to this topic

#1 Marcio Alencar

Marcio Alencar

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Masculino
  • Localidade:Ceará

Posted 16/10/2008, 14:33

Olá. Ha algum tempo frequento o fórum em busca de informações e hoje estou precisando de uma ajudinha.

Tenho um sistema de Login que foi desenvolvido um tempão atrás pelo Eduardo Stuart (2006) e já trabalho com este sistema a algum tempo e to fazendo algumas modificações, mas encontrei alguns problemas que não consegui solucionar.

O sistema é baseado em 2 tabelas - "usuários" e "perfil.

Tabela usuários:
- id
- login
- email
- data
- hora

Tabela perfil
- login
- nome
- cidade
- estado
- cep
- foto

No admin, ele puxa os usuários cadastrados da tabela "usuários". Até aí tudo normal. O que to querendo é pegar a foto (da tabela "perfil") do usuário e colocar ao lado das informações. Abaixo coloco o código da página:

usuarios.php - pega os dados da tabela "usuarios".
<?
/*
Sistema de cadastro
Autor: Eduardo Stuart
E-mail:stuart.eduardo@gmail.com
http://www.stu.1br.net
Manter os direitos no final de todas as páginas
24/09/2006 
ATUALIZACAO: 26/10/2006
*/
 include"protAdmin.php";
?> <br> 
<table width="352" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr> </tr>
  <tr> </tr>
  <tr> 
	<td><font size="1" face="Tahoma"> 
	  <?
require_once"../includes/pg_config.php";
if(!$pagina)
{
	$pagina=1;
}
$pRegistro=($pagina*$pPagina)-$pPagina;
$selecionaD=mysql_query("SELECT * FROM $tabela ORDER BY id LIMIT $pRegistro,$pPagina");
$sql=mysql_query("SELECT * FROM $tabela");
$total=mysql_num_rows($sql); 
if(mysql_num_rows($sql)>"0")
{
while($dados=mysql_fetch_array($selecionaD))
{
$idR=$dados['id'];
$loginR=$dados['login'];
$emailR=$dados['email'];
$cep=$dados['cep'];
$data=$dados['data'];
$data=$dados['hora'];
?>
	  </font></td>
  </tr>
  <tr> 
	<td> <table width="100" border="0" cellspacing="0" bgcolor="#CCCCCC">
		<tr>
		  <td><table width="100" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
			  <tr>
				<td>
				  <table width="352" border="0" cellspacing="0" cellpadding="2">
					<tr> 
					  <td colspan="2" bgcolor="#F8F8F8"><font size="1" face="Tahoma">ID: 
						[ <font color="#666699"><strong> 
						<?=$dados['id'];?>
						</strong> </font> ]</font><font size="1" face="Tahoma"> </font></td>
					  <td width="3" bgcolor="#f8f8f8"> </td>
					</tr>
					<tr> 
					  <td width="55"><font size="1" face="Tahoma"> </font></td>
					  <td><font size="1" face="Tahoma">Login: <strong><font color="#6633CC"> 
						<?=$dados['login'];?>
						</font></strong> </font></td>
					  <td width="3" rowspan="5"><div align="center"><font size="1" face="Tahoma"><strong><font color="#FF6600"><a href="<? if($foto=="null") { echo "../imagens/no_foto.jpg"; } else{ echo "../fotos/".$foto; } ?>" target="_blank"><img src="<? if($foto=="null") { echo "../imagens/no_foto.jpg"; } else{ echo "../fotos/".$foto; } ?>" width="80" height="80" border="0"></a></font></strong></font></div></td>
					</tr>
					<tr bgcolor="#F8F8F8"> 
					  <td width="55"><font size="1" face="Tahoma"> </font></td>
					  <td><font size="1" face="Tahoma">Email: <a href="mailto:<?=$dados['email'];?>"> 
						<?=$dados['email'];?>
						</a> </font></td>
					</tr>
					<tr bgcolor="#F8F8F8"> 
					  <td width="55" rowspan="2"><font size="1" face="Tahoma"> </font></td>
					  <td><font size="1" face="Tahoma">Data Cadastro: 
						<?=$dados['data'];?>
						</font></td>
					</tr>
					<tr bgcolor="#F8F8F8">
					  <td><font size="1" face="Tahoma">Hora Cadastro: 
						<?=$dados['hora'];?>
						</font></td>
					</tr>
					<tr> 
					  <td colspan="2"><a href="?area=usuarios&acao=apagar&id=<?=$idR?>&pagina=<?=$pagina?>"><font color="#FF0000" size="2" face="Tahoma">Apagar 
						usuario?</font></a></td>
					</tr>
				  </table>
				</td>
			  </tr>
			</table></td>
		</tr>
	  </table>
	  <br>
	   </td>
  </tr>
  <tr>
	<td><div align="center"><font size="1" face="Tahoma"> 
		<? 
	 }
$selecionaD=mysql_query("SELECT COUNT(*) FROM $tabela");
list($usuariosTotal)=mysql_fetch_array($selecionaD);
$total_paginas	=	$usuariosTotal/$pPagina;
$anteP=$pagina-1;
$proxP=$pagina+1;
if($pagina>1)
{
$anteP_link="<a href=\"$PHP_SELF?area=usuarios&pagina=$anteP\">Anterior</a>";
}else{
$anteP_link="Anterior";
}
if($total_paginas>$pagina)
{
$proxP_link="<a href=\"$PHP_SELF?area=usuarios&pagina=$proxP\">Proxima</a>";
}else{
$proxP_link="Proxima";
}
$total_paginas=ceil($total_paginas);
$naveg="";
for($x=1;$x<=$total_paginas;$x++)
{
if($x==$pagina)
{
$naveg.="[$x]";
}else{
$naveg.="<a href=\"$PHP_SELF?area=usuarios&pagina=$x\">[$x]</a>";
}}
echo "$anteP_link | $naveg | $proxP_link"; 
}else{ echo"<font face=\"Tahoma\" size=\"1\">Nenhum usuário registrado.</font>"; }
?>
		</font></div></td>
  </tr>
</table>

usuarios2.php - Pega informações da tabela "perfil"
<?
/*
Sistema de cadastro
Autor: Eduardo Stuart
E-mail:stuart.eduardo@gmail.com
http://www.stu.1br.net
Manter os direitos no final de todas as páginas
24/09/2006 
ATUALIZACAO: 26/10/2006
*/
 include"protAdmin.php";
?> <br> 
<table width="352" border="0" align="center" cellpadding="0" cellspacing="0" height="132">
  <tr> </tr>
  <tr> </tr>
  <tr> 
	<td><font size="1" face="Tahoma"> 
	  <?
require_once"../includes/pg_config.php";
if(!$pagina)
{
	$pagina=1;
}
$pRegistro=($pagina*$pPagina)-$pPagina;
$selecionaD=mysql_query("SELECT * FROM $tabelaPerfil ORDER BY login LIMIT $pRegistro,$pPagina");
$sql=mysql_query("SELECT * FROM $tabelaPerfil");
$total=mysql_num_rows($sql); 
if(mysql_num_rows($sql)>"0")
{
while($dados=mysql_fetch_array($selecionaD))
{
$idR=$dados['id'];
$loginR=$dados['login'];
$nome=$dados['nome'];
$cep=$dados['cep'];
$foto=$dados['foto'];
?>
	  </font></td>
  </tr>
  <tr> 
	<td> 
	  <table width="100" border="0" cellspacing="0" bgcolor="#CCCCCC" height="55">
		<tr>
		  <td>
			<table width="100" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" height="60">
			  <tr>
				<td>
				  <table width="352" border="0" cellspacing="0" cellpadding="2" height="48">
					<tr> 
					  <td colspan="3" bgcolor="#F8F8F8"><font size="1" face="Tahoma">ID: 
						[ <font color="#666699"><strong> </strong> </font> ]</font><font size="1" face="Tahoma"> </font></td>
					  <td width="3" bgcolor="#f8f8f8"> </td>
					</tr>
					<tr> 
					  <td width="55"><font size="1" face="Tahoma"> </font></td>
					  <td width="193"><font size="1" face="Tahoma">Login: <strong><font color="#6633CC"> 
						<?=$dados['login'];?>
						</font></strong> </font></td>
					  <td rowspan="4" width="85"> 
						<div align="center"><font size="1" face="Tahoma"><strong><font color="#FF6600"><a href="<? if($foto=="null") { echo "../imagens/no_foto.jpg"; } else{ echo "../fotos/".$foto; } ?>" target="_blank"><img src="<? if($foto=="null") { echo "../imagens/no_foto.jpg"; } else{ echo "../fotos/".$foto; } ?>" width="80" height="80" border="0"></a></font></strong></font></div>
					  </td>
					  <td width="3"> </td>
					</tr>
					<tr> 
					  <td bgcolor="#F8F8F8" width="55"><font size="1" face="Tahoma"> </font></td>
					  <td bgcolor="#F8F8F8" width="193"><font size="1" face="Tahoma">Nome: 
						<strong><font color="#669900"> 
						<?=$dados['nome'];?>
						</font></strong></font></td>
					  <td bgcolor="#F8F8F8" width="3"> </td>
					</tr>
					<tr> 
					  <td width="55"><font size="1" face="Tahoma"> </font></td>
					  <td width="193"><font size="1" face="Tahoma">Celular: <strong><font color="#FF6600"> 
						<?=$dados['cep'];?>
						</font></strong> </font></td>
					  <td width="3"> </td>
					</tr>
					<tr> 
					  <td width="55" bgcolor="#F8F8F8"><font size="1" face="Tahoma"> </font></td>
					  <td width="193" bgcolor="#F8F8F8"><font size="1" face="Tahoma"><strong><font color="#FF6600"> 
						</font></strong> </font></td>
					  <td width="3"> </td>
					</tr>
					<tr> 
					  <td colspan="3"><a href="?area=usuarios2&acao=apagar&id=<?=$idR?>&pagina=<?=$pagina?>"><font color="#FF0000" size="2" face="Tahoma">Apagar 
						usuario?</font></a></td>
					  <td width="3"> </td>
					</tr>
				  </table>
				</td>
			  </tr>
			</table></td>
		</tr>
	  </table>
	  <br>
	   </td>
  </tr>
  <tr>
	<td><div align="center"><font size="1" face="Tahoma"> 
		<? 
	 }
$selecionaD=mysql_query("SELECT COUNT(*) FROM $tabelaPerfil");
list($usuariosTotal)=mysql_fetch_array($selecionaD);
$total_paginas	=	$usuariosTotal/$pPagina;
$anteP=$pagina-1;
$proxP=$pagina+1;
if($pagina>1)
{
$anteP_link="<a href=\"$PHP_SELF?area=usuarios2&pagina=$anteP\">Anterior</a>";
}else{
$anteP_link="Anterior";
}
if($total_paginas>$pagina)
{
$proxP_link="<a href=\"$PHP_SELF?area=usuarios2&pagina=$proxP\">Proxima</a>";
}else{
$proxP_link="Proxima";
}
$total_paginas=ceil($total_paginas);
$naveg="";
for($x=1;$x<=$total_paginas;$x++)
{
if($x==$pagina)
{
$naveg.="[$x]";
}else{
$naveg.="<a href=\"$PHP_SELF?area=usuarios2&pagina=$x\">[$x]</a>";
}}
echo "$anteP_link | $naveg | $proxP_link"; 
}else{ echo"<font face=\"Tahoma\" size=\"1\">Nenhum usuário registrado.</font>"; }
?>
		</font></div></td>
  </tr>
</table>

O que to precisando é como fazer em usuarios.php pra pegar também informações da tabela "perfil", pois queria em usuarios.php aparecer também a foto de cada usuario cadastrado.

Agradeço a atenção e espero que alguem possa vir a me ajudar. Já tentei muito aqui, mas não obtive sucesso. Ah, também gostaria de ajuda para mostrar na pagina do site os usuários cadastrados - Nome e Foto. Obrigado.

Sds,
Marcio Alencar
Posted Image Freelance WebDesigner & WapMaster

#2 Maykel Esser

Maykel Esser

    Super Veterano

  • Usuários
  • 1536 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 16/10/2008, 15:05

Você pode fazer consultas de 2 tabelas ao mesmo tempo, desde que ambas tenham um campo comum!

Você terá que criar um campo id também na tabela perfil, esse ID do perfil terá que ser o mesmo do ID da tabela usuarios

SELECT * FROM perfil, usuarios WHERE perfil.id = usuarios.id ORDER BY login LIMIT $pRegistro,$pPagina"

Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens! add.png


#3 Marcio Alencar

Marcio Alencar

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Masculino
  • Localidade:Ceará

Posted 18/10/2008, 11:38

Obrigado pela resposta rápida. Tentei aqui mas não deu certo. Retornou o seguinte erro:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/crvgcruz/public_html/painel/admin/usuarios.php on line 27

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/crvgcruz/public_html/painel/admin/usuarios.php on line 28
Nenhum usuário registrado.


Vou colocar aqui a função do arquivo original:
CODE


<?require_once"../includes/pg_config.php";if(!$pagina){    $pagina=1;}$pRegistro=($pagina*$pPagina)-$pPagina;$selecionaD=mysql_query("SELECT * FROM $tabela ORDER BY id LIMIT $pRegistro,$pPagina");$sql=mysql_query("SELECT * FROM $tabela");$total=mysql_num_rows($sql); if(mysql_num_rows($sql)>"0"){while($dados=mysql_fetch_array($selecionaD)){$idR=$dados['id'];$loginR=$dados['login'];$emailR=$dados['email'];$cep=$dados['cep'];$data=$dados['data'];$data=$dados['hora'];?>

e a que fiz as modificações:


e o banco de dados:
<?php/*Sistema de cadastro*/if($acao=="apagaInstalacao"){    if(file_exists("instala.php"))    {        @unlink("instala.php");        echo"&lt;script>java script:window.location=\"index.php\";alert('Apagado com sucesso!');</script>";    }}include"includes/pg_config.php";$instala = mysql_query("CREATE TABLE $tabela (  id int(255) NOT NULL auto_increment,  login varchar(200) NOT NULL default '',  senha varchar(200) NOT NULL default '',  email varchar(200) NOT NULL default '',  data varchar(10) NOT NULL default '',  hora varchar(10) NOT NULL default '',  PRIMARY KEY (id)) TYPE=MyISAM;") or die("Erro ao criar a tabela: $tabela <br>".mysql_error());$instala2=mysql_query("CREATE TABLE $tabelaPerfil (    login varchar(255) NOT NULL,    nome varchar(255) NOT NULL,    cidade varchar(255) NOT NULL,    estado varchar(5) NOT NULL,    cep varchar(30) NOT NULL,    foto varchar(255) NOT NULL default'null',    PRIMARY KEY( login ))TYPE=MyISAM;") or die("Erro ao criar tabela: $tabelaPerfil <br>".mysql_error());$insertTest=mysql_query("INSERT INTO $tabela (id,login,senha,email,data,hora) VALUES ('','teste','dGVzdGU=','stuart.eduardo@gmail.com','26/10/2006','14:04:23')");$insertTestPerfil=mysql_query("INSERT INTO $tabelaPerfil (`login`, `nome`, `cidade`, `estado`, `cep`, `foto`) VALUES ('teste', 'testando sistema', 'teste', 'XX', '123456789', 'teste_foto.jpeg')");if($instala){?>


Bem. Obrigado pela ajuda. Vou continuar tentando e estou tentando tambem outros meios que peguei pesquisando na net, mas até o momento não consegui fazer funcionar nada!

O que preciso mais de urgencia agora é saber qual a melhor função para pegar os dados de login e foto dos usuarios cadastrados e mostrar na pagina inicial do site.

- Listar Cadastrados;
- Usuários Aleatórios (1 resultado ou até 2 resultados aleatórios);

Campo em comum entre as 2 tabelas é login. o ID tem somente em 1 tabela que a do cadastro (tabela).

Como faço isso? Puxaria pelo campo login? Obrigado.

Edição feita por: Marcio Alencar, 18/10/2008, 11:48.

Posted Image Freelance WebDesigner & WapMaster




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq