Ir para conteúdo

Arquivado

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

diego-md

[Resolvido] buscar id via $_GET

Recommended Posts

Bom dia, troquei idéias com meu professor e o mesmo disse que para buscar o id de um usuário, devo usar $_GET...

Bom, para terem conhecimento, tenho uma página em php que mostra no canto direito superior o seguinte:

Usuário logado: diego-md@bol.com.br | Sair

 

Clicando no email, direciona para o perfil da pessoa, e é nessa página que estou com problemas, o que devo alterar na minha página que programei abaixo??

 

 

<?php

 

include ("conectar.php");

 

session_start();

 

$email = $_SESSION['email'];

 

// echo $email;

if ($email = "")

{

header("Location: login.php");

}

 

else

 

$sql = "Select nome, datanasc, sexo, email, msn, skype, orkut, telefone, celular, senha FROM usuario WHERE email = '.$email.'";

 

$select = mysql_query($sql) or die ('Erro ao executar a consulta aos logins');

 

$linhas = mysql_num_rows($select);

 

if ($linhas == 0)

echo "Nenhum Usuario Cadastrado!";

else

{

 

while($row = mysql_fetch_array($select))

 

echo "<table border='1' width='400' align='center'>

<tr>

<td>Nome: </td><td>".$row["nome"]."</td>

</tr>

<tr>

<td>Senha: </td><td>".$row["senha"]."</td>

</tr>

<tr>

<td>Email: </td><td>".$row["email"]."</td>

</tr>

<tr>

<td>Sexo: </td><td>".$row["sexo"]."</td>

</tr>

</table>";

}

 

?>

 

Alguém pode me dar uma luz???

Compartilhar este post


Link para o post
Compartilhar em outros sites

tu não tá pegando por _GET amigo olha se é por GET seria algo assim

 

 

<a href="www.seusite.com.br?email="<?php echo $email; ?>"><?php echo $email; ?></a>

 

 

 

ai pra resgatar

 

 

$email = $_GET['email'];

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim meu amigo, era isso que necessitava, trocar de $_POST para $_GET, mas isso seria inserido aonde??

na página do perfil ou no link do email??

Compartilhar este post


Link para o post
Compartilhar em outros sites

na página que vai contar o link:

 

exemplo:

 

<?php
echo"<a href=\"busca_cadastro.php?mail=teste@teste.com.br\" >teste</a>";
?>

 

e na página busca_cadastro.php fica mais ou menos assim...

<?php

include ("conectar.php");

session_start();

$email = $_SESSION['email'];
$email_v = $_GET['mail'];


// echo $email;
if ($email = "")
{
header("Location: login.php");
}

else {

$sql = "Select nome, datanasc, sexo, email, msn, skype, orkut, telefone, celular, senha FROM usuario WHERE email_v = '.$email.'";

$select = mysql_query($sql) or die ('Erro ao executar a consulta aos logins');

$linhas = mysql_num_rows($select);

if ($linhas == 0)
echo "Nenhum Usuario Cadastrado!";
else
{

while($row = mysql_fetch_array($select))

echo "<table border='1' width='400' align='center'>
<tr>
<td>Nome: </td><td>".$row["nome"]."</td>
</tr>
<tr>
<td>Senha: </td><td>".$row["senha"]."</td>
</tr>
<tr>
<td>Email: </td><td>".$row["email"]."</td>
</tr>
<tr>
<td>Sexo: </td><td>".$row["sexo"]."</td>
</tr>
</table>";
}

?>

fica mais ou menos assim.

sugiro que você faça a validação em um arquivo externo, da mesma forma que você fez a conexão com o banco de dados, mais isso é o de menos :)

qualquer coisa grita

att Anderson Baldner - Mondoo [O que você pensa?]

 

 

editando pra dar outra sugestão

eu não sei qual o objetivo do seu scrpt, mais você não acharia melhor fazer a consulta por ID. você pode criar uma coluna na sua tabela chamada ID, auto increment, e assim fica mais simples e menos "fonte de spams".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já ouvi falar que é muito melhor fazer com ID, seria muito diferente, pois coloquei isso agora

<?php

echo "<b>Usuário logado:</b> <a href='consulta_usuario.php?mail='$email''>$email</a> | <b><a href='logoff.php'>Sair</a></b>"

?>

 

e

<?php

 

include ("conectar.php");

 

session_start();

 

// $email = $_SESSION['email'];

$email = $_GET['email'];

 

//echo $email;

if ($email = "")

{

header("Location: login.php");

}

 

else

 

$sql = "Select nome, datanasc, sexo, email, msn, skype, orkut, telefone, celular, senha FROM usuario WHERE email = '.$email.'";

...

 

e não funcionou, até comentei o código e pedi pra mostrar o email que estava chegando, e chega o email normal, mas na hora de fazer a consulta diz que não existe nenhum usuário...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro.

Use as TAG's CODE do forum para colocar códigos.

 

Sobre o código é o seguinte.

Pode ser simples problema de concatenação.

 

Troque isto.

 

echo "<b>Usuário logado:</b> <a href='consulta_usuario.php?mail='$email''>$email</a> | <b><a href='logoff.php'>Sair</a></b>"

Por isto.

 

echo '<b>Usuário logado:</b> <a href="consulta_usuario.php?mail='.$email.'">$email</a> | <b><a href="logoff.php">Sair</a></b>';

E isto.

 

$sql = "Select nome, datanasc, sexo, email, msn, skype, orkut, telefone, celular, senha FROM usuario WHERE email = '.$email.'";

Por isto.

 

$sql = "Select nome, datanasc, sexo, email, msn, skype, orkut, telefone, celular, senha FROM `usuario` WHERE email = ".$email."";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora ocorreram alguns bugs...

echo '<b>Usuário logado:</b> <a href="consulta_usuario.php?mail='.$email.'">$email</a> | <b><a href="logoff.php">Sair</a></b>';

no link, ao invés de aparecer o email que se logou aparece $email, e mesmo eu alterando algumas aspas duplas para simples e vice-versa, não funciona....

 

e na consulta está assim:

$sql = "Select nome, datanasc, sexo, email, msn, skype, orkut, telefone, celular, senha FROM `usuario` WHERE email = ".$email."";

 

aparece o erro

"Erro ao executar a consulta aos logins"

Compartilhar este post


Link para o post
Compartilhar em outros sites

email:

echo '<b>Usuário logado:</b> <a href="consulta_usuario.php?mail='.$email.'">'.$email.'</a> | <b><a href="logoff.php">Sair</a></b>';

sql:

$sql = "Select `nome`, `datanasc`, `sexo`, `email`, `msn`, `skype`, `orkut`, `telefone`, `celular`, `senha` FROM `usuario` WHERE email LIKE ".$email;

o que eu vi de erro foi isto, falta de aspas simples no codigo pro email, e falta de `` no nome das tabelas, além de uma aspa dupla a mais no final da sql.

Compartilhar este post


Link para o post
Compartilhar em outros sites

echo '<b>Usuário logado:</b> <a href="consulta_usuario.php?mail='.$email.'">'.$email.'</a> | <b><a href="logoff.php">Sair</a></b>';

PS: Tinha esquecido de concatenar a outra variavel ali hehe. Errinho basico rs.

PS²: O código SQL ta ok.

 

email:

echo '<b>Usuário logado:</b> <a href="consulta_usuario.php?mail='.$email.'">'.$email.'</a> | <b><a href="logoff.php">Sair</a></b>';

sql:

$sql = "Select `nome`, `datanasc`, `sexo`, `email`, `msn`, `skype`, `orkut`, `telefone`, `celular`, `senha` FROM `usuario` WHERE email LIKE ".$email;

o que eu vi de erro foi isto, falta de aspas simples no codigo pro email, e falta de `` no nome das tabelas, além de uma aspa dupla a mais no final da sql.

Agora que ta errado do SQL.

Note que você abriu a aspa dupla e fechou aonde?

Aquela aspa dupla que voce achou ter a mais, é da string da consulta.

 

O correto seria do jeito que eu enviei. Só faltou concatenar aquela variavel la como eu disse.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, oque está acontecendo é o seguinte:

se você está usando a variavel $email para resgatar a sessão(session), você deve usar uma variavel diferente para receber o valor que você pegar pelo GET.

tente isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está apresentando erro na consulta...

o mesmo erro de sempre...

 

cara, oq tenho que alterar para chamar pelo id do usuario???

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, a primeira coisa a ser feita, é você criar um campo chamado ID na sua tabela MYSQL, como chave primária e auto_increment, para assim ele gerar números sequenciais que serão os IDs dos seus cadastros.

tendo feito isso, você não vai mais escrever o link dessa forma:

 

<? 
echo"<a href=\"exemplo.php?email=$email\" >e-mail</a>"; 
?>
mais sim dessa forma

 

<? 
echo"<a href=\"exemplo.php?id=$id\" >e-mail</a>"; 
?>

 

(lembrando, que a variavel $id, vai vir de uma consulta ao seu banco de dados)

 

<?php

include ("conectar.php");

session_start();

$email = $_SESSION['email'];
$id = $_GET['id'];

// echo $email;
if ($email = "")
{
header("Location: login.php");
}else {
$sql = "Select * FROM usuario WHERE ID = '$id' ";
$select = mysql_query($sql) or die ('Erro ao executar a consulta aos logins');
$linhas = mysql_num_rows($select);

if ($linhas == 0){
echo "Nenhum Usuario Cadastrado!";
}else{
while($row = mysql_fetch_array($select)){
echo "<table border='1' width='400' align='center'>
<tr>
<td>Nome: </td><td>".$row["nome"]."</td>
</tr>
<tr>
<td>Senha: </td><td>".$row["senha"]."</td>
</tr>
<tr>
<td>Email: </td><td>".$row["email"]."</td>
</tr>
<tr>
<td>Sexo: </td><td>".$row["sexo"]."</td>
</tr>
</table>";
}
}
?>

fiz umas mudanças no seu código,mais não tenho o vertrigo aqui para testa-lo.caso tenha algum erro ou dúvida é só dizer.

 

fique atento para a abertura e fechamento das chaves que marcam o início e o fim de alguns "processos" do PHP, como depois do WHILE e antes do ELSE.

tenta isso ae e depois me fala

Compartilhar este post


Link para o post
Compartilhar em outros sites

boa tarde...

achei o problema...

meu colega estava me dando uma mão e confiei nele...

porém ele achou um erro dele eninguém percebeu...

 

o problema está no if...

<?php
  
  include ("conectar.php");
  
  session_start();

  $email = $_GET['email'];

  // echo $email;

  if ($email = "")

  // echo $email;  

	header("Location: index.php");
  
  else
  
  {
  
  $sql = "Select * from usuario where email = '$email'";
  
  $select = mysql_query($sql) or die ('Erro ao executar a consulta aos logins');
  
  $linhas = mysql_num_rows($select);
  
  }

...

Eu dei um echo $email antes do if e um echo $email depois do if...

e pra minha surpresa, ele mostrava o email do antes do if e depois não...

então pecebemos que o if estava zerando o email...

vejam

 

if ($email = "")
Agora consertei...

 

<?php
  
  include ("conectar.php");
  
  session_start();

  $email = $_GET['email'];

  if ($email == "")
  
	header("Location: index.php");
  
  else
  
  {
  
  $sql = "Select * from usuario where email = '$email'";
  
  $select = mysql_query($sql) or die ('Erro ao executar a consulta aos logins');
  
  $linhas = mysql_num_rows($select);
  
  }
  
  if ($linhas == 0)
  
	echo "Nenhum Usuario Cadastrado!";
  
  else
  
  {
  
   while($row = mysql_fetch_array($select))
   
	 echo "<div align='center'><br><br><br><br>
			<table width='350' align='center'>
			  <tr>
				<td align='right'>Nome: </td><td>".$row["nome"]."</td><br>
			  </tr>
			  <tr>
			   <td align='right'>Data de Nascimento: </td><td >".$row["datanasc"]."</td>
			  </tr>
			  <tr>
				<td align='right'>Sexo: </td><td>".$row["sexo"]."</td>
			  </tr>
			  <tr>  
				<td align='right'>Email: </td><td>".$row["email"]."</td>
			  </tr>
			  <tr>
			   <td align='right'>MSN: </td><td>".$row["msn"]."</td>
			  </tr>
			  <tr>
			   <td align='right'>Skype: </td><td>".$row["skype"]."</td>
			  </tr>
			  <tr>
			   <td align='right'>Orkut: </td><td>".$row["orkut"]."</td>
			  </tr>
			  <tr>
				<td align='right'>Telefone: </td><td>".$row["telefone"]."</td>
			  </tr>
			  <tr>
				<td align='right'>Celular: </td><td>".$row["celular"]."</td>
			  </tr>
			</table>
		   </div>";
  }

?>

e está funcionando...

vlw o empenho de todoss..

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora que ta errado do SQL.

Note que você abriu a aspa dupla e fechou aonde?

Aquela aspa dupla que voce achou ter a mais, é da string da consulta.

 

O correto seria do jeito que eu enviei. Só faltou concatenar aquela variavel la como eu disse.

$sql = "Select `nome`, `datanasc`, `sexo`, `email`, `msn`, `skype`, `orkut`, `telefone`, `celular`, `senha` FROM `usuario` WHERE email LIKE '".$email."'";

 

alguma duvida sobre a sql?

a saida disso é ser uma sql assim}:

 

$sql = "Select `nome`, `datanasc`, `sexo`, `email`, `msn`, `skype`, `orkut`, `telefone`, `celular`, `senha` FROM `usuario` WHERE email LIKE "CARLOSANTOS@UTFPR.EDU.BR

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora que ta errado do SQL.

Note que você abriu a aspa dupla e fechou aonde?

Aquela aspa dupla que voce achou ter a mais, é da string da consulta.

 

O correto seria do jeito que eu enviei. Só faltou concatenar aquela variavel la como eu disse.

$sql = "Select `nome`, `datanasc`, `sexo`, `email`, `msn`, `skype`, `orkut`, `telefone`, `celular`, `senha` FROM `usuario` WHERE email LIKE ".$email;

 

alguma duvida sobre a sql?

a saida disso é ser uma sql assim:

 

$sql = [b]"[/b]Select `nome`, `datanasc`, `sexo`, `email`, `msn`, `skype`, `orkut`, `telefone`, `celular`, `senha` FROM `usuario` WHERE email LIKE [b]"[/b]CARLOSANTOS@UTFPR.EDU.BR

Certinho cara...

funcionou....

vlw msmo...

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.