我有一个网站,在这个网站的标题中我有两个链接,一个登录,另一个登记。我想要的是,当用户登录时,这两个链接消失了,所以我可以让其中一个说“Hello”,然后是控制面板的链接。喜欢“你好。问题是它没有搜索用户的名字。它只是没有显示名称。用户使用电子邮件和密码登录,功能usuarioEstaLogado()
是一个确认用户已登录。这是代码:
function nomeUsuario($conexao){
$usuarios = array();
$query = "select nome from usuarios where email = '{$mail}'";
$resultado = mysqli_query($conexao, $query);
while($usuario = mysqli_fetch_assoc($resultado)){
array_push($usuarios, $usuario);
}
return $usuarios;
}
<?php
session_start();
function usuarioEstaLogado() {
return isset($_SESSION["usuario_logado"]);
}
<div class="container container-twelve">
<header>
<div class="twelve columns top remove-bottom">
<div class="three columns offset-by-nine">
<?php
if(usuarioEstaLogado()){
$usr = nomeUsuario($conexao);
echo" <p>Ola " . $usr['nome'];
"<a href='admin'> Painel de Controle</a></p>";
}
?>
<p><a href="cadastro.php">Cadastre-se</a> |
<a href="login.php">Login <span class="icon-user"></span></a></p>
</div>
答案 0 :(得分:0)
在您的顶级功能
中 $query = "select nome from usuarios where email = '{$mail}'";
$mail
未定义,您尚未将其从全局中提取,也未将其传递给nomeUsario
函数,因此查询可能不会返回任何内容。
您的nome功能应该接受电子邮件。另外,您可能想要db中的第一个匹配,而不是所有匹配,例如:
function nomeUsuario($conexao, $mail) {
$query = "select nome from usuarios where email = '{$mail}'";
$resultado = mysqli_query($conexao, $query);
if ($usuario = mysqli_fetch_assoc($resultado)) {
return $usuario;
} else {
return false;
}
}
当你打电话时,你需要一个电子邮件地址,我猜*是在$_SESSION
?
$usr = nomeUsuario($conexao,$_SESSION['usuario_email']); //or whatever the name may be :-)
echo" <p>Ola " . $usr['nome'];