不显示用户名

时间:2015-11-08 12:42:18

标签: php

我正在尝试显示用户名(cocname),但没有任何反应。你明白为什么吗?没有错误,但也缺少用户名,并且没有显示“Hello”。谢谢。

<?php
session_start();
include_once 'config.php';
$prepend = "<span class='cocname'>";
$append = "</span>";
if (!isset($_SESSION['email'])) {
header("Location: signin.php");
}
$query = "SELECT cocname FROM users WHERE email=".$_SESSION['email'];
$result = $connect->query($query);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc())
    {
        echo $prepend."Hello ".$row['cocname'].$append;
    }

}
?>

2 个答案:

答案 0 :(得分:1)

你需要在这里使用sessions。对于您需要登录工作的所有页面。添加此声明。

session_start();

现在,添加session_start();作为登录页面的第一行。更新您的登录页面如下。

if ($result->num_rows > 0) 
{
//user logged in
$_SESSION['logged'] =1;
$_SESSION['email']=$user;
//now since this would only return 1 result, you don't need to use a white loop.
 $user_details = $result->fetch_assoc();
}

了解详情: - http://www.w3schools.com/php/php_sessions.asp

答案 1 :(得分:0)

试试这个 请在signing.php

中写下这个
$query = "SELECT email, password FROM users WHERE email ='$user' and 
password='$pass'" ;  
$result = $connect->query($query);

if ($result->num_rows == 0) {
   header('Location: signin.php?failed=1');
}
if ($result->num_rows > 0) {
    //Email and password matched
    $_SESSION['logged_in'] = true;
    $_SESSION['User'] = $result->fetch_assoc();
}

在main.php中检查用户是否以

登录
if($_SESSION['logged_in']){
   echo "Successfully logged in";
}else{
   echo "Login first to view this page";
}

不要忘记在页面顶部开始会话。并使用$ _SESSION [“User”]在主页面上显示用户信息。

更新 您应该在“signin.php”本身上提交表单。如果用户成功登录,则保存类似$_SESSION["is_login"] = true;的会话和包含用户信息的另一个会话,并重定向到main.php。在main.php中检查是否设置了“is_login”会话并且为true。如果真实用户已登录并显示来自信息会话的用户信息。如果未设置“is_login”会话,则会将用户重定向到“signin.php”以再次登录。

更新2

我找到的唯一解决方案是 取代

$query = "SELECT cocname FROM users WHERE email=".$_SESSION['email'];

$email = $_SESSION['email'];
$query = "SELECT cocname FROM users WHERE email='$email'";

更新3
更换
    $query = "SELECT cocname FROM users WHERE email=".$_SESSION['email'];
随着
    $query = "SELECT cocname FROM users WHERE email='{$_SESSION['email']}'";