如果用户未登录,则显示一条消息


Show a message if user is not logged in

我的主页有一个指向配置文件页面(profile.php)的链接。只有登录的用户才能看到配置文件页面。如果用户在登录前单击配置文件链接,他/她将被重定向到登录页面(login.php),并在登录表单的顶部显示一条消息($mssg)。---这就是我想要的

我观察到的问题是:标头函数似乎无法获得$mssg和页面位置。

profile.php:

<?php
session_start();
if(empty($_SESSION['valid'])){
$_SESSION['intruder']="stranger";
header('Location: login.php?$mssg=" You are not logged in. Please log in to see the profile. "');
}
?> 

login.php

<?php
session_start();
if (empty($_SESSION['intruder'])) //print nothing
else {
  echo $mssg;
}
// log in form code, email, password etc.
?>

我得到的错误:

分析错误:语法错误,第4行上C:''examplep''htdocs''sss''login.php中出现意外的'else'(T_else)

为什么它不起作用?你认为我的代码错了吗?如果是,那么我该如何修复它或得到我想要的东西?

您有一些错误:

$mssg = urlencode('Your message here');
header('Location: login.php?mssg=' . $mssg);

然后:

echo $_GET['mssg'];

if:之后添加一个空块

if (empty($_SESSION['intruder'])) //print nothing
{ ; }
else {
  echo $mssg;
}

或者就这么做:

if (!empty($_SESSION['intruder'])){
  echo $mssg;
}