Ir para conteúdo

POWERED BY:

Arquivado

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

Brinkadeira

[Resolvido] Minha Função não lê a Variável

Recommended Posts

Oi,

 

Eu tenho um login.php que valida o usuário e a senha.

 

<?

session_name("MeuLogin");

session_start();

 

if($_GET['acao'] == "logar") {

$conn = mysql_connect("host","usuario","senha");

$banco = mysql_select_db("banco_de_dados");

 

$nome = $_POST['nome'];

$q_user = mysql_query("SELECT * FROM login WHERE nome='$nome'");

 

if(mysql_num_rows($q_user) == 1) {

 

$query = mysql_query("SELECT * FROM login WHERE nome='$nome'");

$dados = mysql_fetch_array($query);

 

if($_POST['senha'] == $dados['senha']) {

 

session_register("nome");

header("Location: viparea.php"); //direciona para a página do usuário

exit;

} else {

echo "<script>window.location.href='logerror.html'</script>"; //direciona para página de erros

exit;

}

} else {

echo "<script>window.location.href='logerror.html'</script>"; //direciona para página de erros

exit;

}

}

 

if(session_is_registered("nome") == false) {

header("Location: viplog.php");

}

 

?>

Bem até aí tudo bem, mas...

 

Quando eu acesso a "Página do Usuário" (que entrou com o login e a senha corretas), eu gostaria que fossem apresentadas algumas outras informações que estão gravadas no registro dele no banco de dados, como: urldowebsite, email, telefone, etc... (estas informações estão na mesma tabela onde armazeno o login e a senha dele).

 

Tentei criar uma função para isso chamada "pegadados()":

 

require "login.php";

session_start();

function pegadados() {

$conn = mysql_connect("host","usuario","senha");

$banco = mysql_select_db("meu_banco_de_dados");

 

$nome = $_POST['nome'];

$q_user = mysql_query("SELECT * FROM login WHERE nome='$nome'");

 

if(mysql_num_rows($q_user) == 1) {

 

$query = mysql_query("SELECT * FROM login WHERE nome='$nome'");

$dados = mysql_fetch_array($query);

$empresa = $dados["empresa"];

$website = $dados["website"];

$email = $dados["email"];

$telefone = $dados["telefone"];

Echo "Empresa: " ?><font size='3' color='red'><b><? echo " $empresa"; ?></b></font></br>

<? Echo "WebSite: " ?><font size='2' color='brown'><b><? echo " $website"; ?></b></font></br>

<? Echo "Email: " ?><font size='2' color='brown'><b><? echo " $email"; ?></b></font></br>

<? Echo "Telefone: " ?><font size='2' color='brown'><b><? echo " $telefone"; ?></b></font></br>

<? } else {

echo "Registro não Encontrado !!!";

}

}

 

?>

....

<head>

....

Mas, a função não le a variável "$nome", e consequentemente não localiza o registro no banco_de_dados. (porque ?) :rolleyes:

 

Mas, quando uso a função no form elá me traz o valor desejado (o login do usuário). <_<

 

Haveria uma outra maneira de ler os registros desejados no banco de dados e armazená-los em variáveis para que eu pudesse utilizar no form?

 

Toda a ajuda será muito bem vinda.. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nunca usou funções?

Elas permitem passar parâmetro.

Veja:

http://www.php.net/manual/pt_BR/language.functions.php

 

Aí é só chamar a função passando o valor da variável, ue pode ser recebido por POST, criado na hora, tirado de cookie ou session...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja o link que passei.

Já Li tudinho... E não resolveu.. :(

 

Quando eu escrevo o conteúdo da variavel, assim...

 

function pegadados() {

$conn = mysql_connect("host","usuario","senha");

$banco = mysql_select_db("meu_banco_de_dados");

 

$nome = "Antonio"; Funciona http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

$q_user = mysql_query("SELECT * FROM login WHERE nome='$nome'");

Mas assim não funciona :(

 

function pegadados() {

$conn = mysql_connect("host","usuario","senha");

$banco = mysql_select_db("meu_banco_de_dados");

 

$nome = $_POST['nome']; Funciona :(

 

$q_user = mysql_query("SELECT * FROM login WHERE nome='$nome'");

Enquanto que no form, quando eu uso a variável, assim...

 

<h2 class="text1">Oi, <span><? echo " $nome "; ?></span> </h2>

O valor da variavel é exibido sem problemas ("Oi, Antonio")

 

Isso não funciona:

 

function pegadados($nome) {

Nem isso...

 

function pegadados($nome = $_POST['nome']) {

:(

Compartilhar este post


Link para o post
Compartilhar em outros sites

$nome = $_POST['nome'];

 

Para pegar dessa forma você tem que ter submetido através do método POST. Essa informação vem de um formulário ou você está passando via URL?

Compartilhar este post


Link para o post
Compartilhar em outros sites

$nome = $_POST['nome'];

 

Para pegar dessa forma você tem que ter submetido através do método POST. Essa informação vem de um formulário ou você está passando via URL?

Oi Hargon,

 

Eu submeti atraves de um do método post e ela vem de um formulário (que apresenta ao usuário a tela para que ele possa fazer o login). ;)

 

Oi Beraldo,

 

Não apresentou nenhum erro, mas Não funcionou (Registro não encontrado) :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

O conteúdo passado e comparado estão escrito da mesma forma?

 

Usando = na consulta, tem que ser escrito da mesma forma. Ex: Antonio = Antonio (certo). Antonio = antonio (errado)

Compartilhar este post


Link para o post
Compartilhar em outros sites

dê um echo na variável para ter certeza de que o valor está chegando corretamente

Quando eu dei um echo na variável $nome, ela me retornou o conteúdo correto, mas o mesmo não acontece com o parâmetro $_post['nome'].

 

Então, seguindo sua dica, utilizei a variável $nome como argumento na variável e criei uma outra variavel para pesquisa na função ($nome2).

 

E agora tudo funciona direitinho... http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

Muuuuuiiiito Obrigado Beraldo. Sua atenção e assistência foram realmente decisivas para que eu pudesse dar andamento ao projeto. ;)

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.