PHP页面message函数报错:语法正确但错误仍无法消除
问题描述
我开发了一个PHP页面,确认语法没问题,但错误还是存在。不管直接调用message()函数,还是把这个函数导入程序里,都会出现如图的错误。
相关代码:
function message() { if (isset($_SESSION['message'])) { if ($_SESSION['message'] == "signup_err_password") { echo " <div class='alert alert-danger' role='alert'> please enter the password in correct form !!! </div>"; unset($_SESSION['message']); } elseif ($_SESSION['message'] == "loginErr") { echo " <div class='alert alert-danger' role='alert'> The email or the password is incorrect !!! </div>"; unset($_SESSION['message']); } elseif ($_SESSION['message'] == "usedEmail") { echo " <div class='alert alert-danger' role='alert'> This email is already used !!! </div>"; unset($_SESSION['message']); } elseif ($_SESSION['message'] == "wentWrong") { echo " <div class='alert alert-danger' role='alert'> Something went wrong !!! </div>"; unset($_SESSION['message']); } elseif ($_SESSION['message'] == "empty_err") { echo " <div class='alert alert-danger' role='alert'> please don't leave anything empty !!! </div>"; unset($_SESSION['message']); } elseif ($_SESSION['message'] == "signup_err_email") { echo " <div class='alert alert-danger' role='alert'> please enter the email in the correct form !!! </div>"; unset($_SESSION['message']); } } }

排查方案
- 先启动Session:PHP里使用
$_SESSION必须先调用session_start(),而且要放在任何输出之前——包括空格、HTML标签、echo内容都不行,否则会触发"headers already sent"类错误。把session_start();加到包含这个函数的文件最顶部,或者调用函数前的第一行PHP代码里。 - 避免函数重复定义:如果是导入函数时报错,大概率是同一个函数被多次声明了。把导入文件的
include/require换成include_once/require_once,防止重复加载。 - 检查Session可用性:确保服务器的Session配置正常,比如
session.save_path设置正确且有读写权限,避免Session无法初始化导致$_SESSION未定义。
示例正确用法:
<?php session_start(); // 必须放在最开头,不能有任何输出在它前面 function message() { // 你的函数代码不变 } message(); ?>
内容的提问来源于stack exchange,提问作者Riya Shrivastava
相关产品推荐
相关产品推荐

