我正在尝试显示用户名(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;
}
}
?>
答案 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();
}
答案 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']}'";