Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
wellingtontds

[Resolvido] Como puxar o nome no Db para o topo seja Bem vindo (fulano)

Recommended Posts

Boa Noite Galera,

Estou enfrentando um problema creio que seja bobo porém como estou no inicio esta um pouco complicado.Estou Tentando puxar o nome do usuario que loga no site para o topo igual temos aqui no forum tipo Seja bem vindo "wellington" so que não esta funcionando, Irei postar o código se alguém puder ajudar agradeço.Quem não puder agradeço da mesma forma.


<?
session_start();

include "config.php";

$login_usuario = $_SESSION["login_usuario"];

$sql = mysql_query("SELECT * FROM adm WHERE login = '$login_usuario'");
while($linha = mysql_fetch_array($sql))
$nome = $linha['nome'];

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>BrokenWeb-o que Tem em nosso bairro.</title>
</head>
<?php

include "css.php";

?>

<body>
<div id="fundo_topo">

<div id="topo">

<div id="titulo_topo">Broken Web</div><!-- titulo--->

<div id="busca">Olá <? echo $nome ?> </div><!-- Busca--->

</div> <!-- topo--->
</div><!-- fundo_topo--->

</body>
</html>

Coloquei uma imagem em anexo que contém o erro onde ao lado do Olá deveria apresentar o nome,a imagem esta perfeita porém não consigo puxar o nome do fulano no banco de dados.

Outra duvida é que o se iniciar com as tags <?php ?> ele da erro na pagina se eu tirar <? ?> ele apresenta a pagina perfeita.

Obs:Esse erro das tags so é apresentando nesta pagina.

Uso a versão 5.3 do php.

Espero ter sido claro e objetivo e desde já agradeço a ajuda de todos.

http://prntscr.com/18sz8v

Editado por wellingtontds

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você precisa usar as variáveis de sessão para resgatar o nome do usuário.

retire do seu arquivo a parte do php ali em cima.. no seu formulario de logar no action coloque: action="validaUser.php";

no arquivo validaUser.php:


<?php
session_start();

$login = $_POST["login"];
$senha = $_POST["senha"];
$login_escape = addslashes($login);
$senha_escape = addslashes($senha);


if (empty($login) or empty($senha)) {
echo "<script>
alert('Preencha todos os campos');
history.go(-1);
</script>";
exit;
}

//arquivo de conexao com o banco de dados
include 'conexao.php';

$sql = "SELECT idAdmin, nome ,login, senha, ultimoacesso FROM admin WHERE login ='$login_escape' AND senha = '$senha_escape' ";
$dados = mysql_query($sql);
$num = mysql_num_rows($dados);

if ($num == 0){
echo "<script>
alert('Usuario ou senha Incorreta');
history.go(-1);
</script>";
exit;
} else {

while($admin = mysql_fetch_object($dados)){
$coduser = $admin->idAdmin;
$nome = $admin->nome;
$ultimoacesso = $admin->ultimoacesso;


$_SESSION["codusuario"] = $coduser;
$_SESSION["nome"] = $nome;
$_SESSION["login"] = $login;
$_SESSION['ultimoacesso'] = $ultimoacesso;

//manda o usuario para a pagina desejada
header ("Location: view/painel.php");
}
}
// mysql_free_result($dados);
mysql_close($conecta);
?>

então na página restrita no caso a painel.php, no inicio do arquivo terá isto:


<?php
session_start();
setcookie("ck_authorized", "true", 0, "/");
date_default_timezone_set("Brazil/East");

if(!isset($_SESSION["login"]))
header("location: ../index.html");
else
$login = $_SESSION["login"];
$ultimo = $_SESSION['ultimoacesso'];
$idAdmin = $_SESSION["codusuario"];
$nome = $_SESSION["nome"];

require '../../conexao/conexao.php';
require '../../includes/functions.php';

$data = date('Y-m-d H:i:s');
$sqldata = "UPDATE admin SET ultimoacesso= '$data' WHERE idAdmin='$idAdmin'";
$dados = mysql_query($sqldata);

$separaData = explode(" ", $ultimo);
$dataNova = $separaData[0];
$hora = $separaData[1];
//ini_set('default_charset','UTF-8');
//mysql_set_charset('utf8');
?>

e então a parte onde mostra os dados seria isto:


<header class="saudacao">
<h3>Bem vindo <?php echo $nome ;?>, Seu último acesso foi no dia <?php echo dataNacional($dataNova);?> às <?php echo $hora;?></h3>
<hr/>
</header>

este é só um exemplo de como fazer, altere a instrução sql, os campos... retire as variáveis de sessão desnecessárias... este exemplo usa o mesmo padrão daqui do fórum.. que mostra o nome e o horário de ultimo acesso.. recomendo que não copie e cole.. estude estes códigos entenda o que acontece... depois implemente no seu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php

session_start();

include"config.php";

if(isset($_SESSION["login_usuario"]) AND isset($_SESSION["senha_usuario"])){

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



$sql = mysql_query("SELECT * FROM adm WHERE login ='$login_usuario'");
$cont = mysql_num_rows($sql);
while($linha = mysql_fetch_array($sql)){
$senha_db = $linha['senha'];

}


if($cont == 0){

unset( $_SESSION["login_usuario"]);
unset( $_SESSION["senha_usuario"]);

echo "
<META HTTP-EQUIV=REFRESH CONTENT='0; URL=login.php'>
<script type=\"text/javascript\">
alert(\"O nome de usuario não corresponde.\");
</script>";

}

if($senha_db != $senha_usuario){

unset( $_SESSION["login_usuario"]);
unset( $_SESSION["senha_usuario"]);

echo "
<META HTTP-EQUIV=REFRESH CONTENT='0; URL=login.php'>
<script type=\"text/javascript\">
alert(\"A senha não corresponde.\");
</script>";
}

}else{

echo "
<META HTTP-EQUIV=REFRESH CONTENT='0; URL=login.php'>
<script type=\"text/javascript\">
alert(\"Você Precisa se logar.\");
</script>";
}
?>

Essa é a pagina que verifica, criei uma pagina teste.php para testar a variavel $nome citada do 1ºcodigo. segue:

<?php

session_start();

include "config.php";
$login_usuario = $_SESSION['login_usuario'];



$sql = mysql_query("SELECT * FROM adm WHERE login = '$login_usuario'");
while($linha = mysql_fetch_array($sql)){
$nome = $linha['senha'];



}
?>

<?php

echo $nome ;



?>

Esse código teste funciona perfeitamente porém perceba que no no 1º código eu inicio a tag php <? ?> , já no teste inicio com <?php ?> no teste esta perfeito mais na pagina se eu colocar a tag <?php ?> ocorre um erro testei ativando o short open tag mais mesmo assim ocorre erro.Mesmo vocês me dando uma resposta irei testar em minha hospedagem pois esses testes estou fazendo no Wamp e acredito que não a nada de errado no código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

faça outro teste.

desinstale o wamp e instale o easyphp Dev 13.1

comigo sempre funciona

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal encontrei um dos erros, um era o fechamento do while (}) , como podem ver na minha

hospedagem esta ok como podem ver :

http://wellingtonboundless.tecnologia.ws/fernando/adm/

login=teste

senha123

Porém no wamp server apresenta um erro:

http://prntscr.com/18zv3l

Notice: A session had already been started - ignoring session_start() in C:\wamp\www\fernando\adm\verifica.php on line 2

O Código continua o mesmo não foi alterado nada além do fechamento do while.

o que pode ocasionar este erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse erro geralmente é causado por uma linha em branco antes da tag do php.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado, descobri o erro na verdade e porque esse código que postei do topo eu iniciava a session porém o conteúdo eu tinha um include verifica.php que estartava a session também, com isso o wamp server não ignorava o segundo session, para resolver bastou colocar o @ no session_start() da pagina verifica ficando @session_start(); com isso o erro é ignorado.

Mais muito obrigado .:D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×