基于会话的flash消息在PHP代码的其他部分中不起作用

时间:2016-02-02 14:29:51

标签: php session

在我的contact.php页面中,我在通过验证后向管理员和用户发送电子邮件。代码如下所示:

else

if部分相关的flash消息中的代码不起作用。如果我将此代码放在// Set flash message function set_flash_msg($name, $msg, $class) { global $name; if(empty($_SESSION[$name]) && empty($_SESSION[$name . '_class'])) { $_SESSION[$name] = $msg; $_SESSION[$name . '_class'] = $class; } } 部分中,那么它可以正常工作。函数set_flash_msg()负责创建基于会话的flash消息。其代码如下:

// Show flash message
get_flash_msg();

要显示此消息,请在上面的代码下面调用另一个函数:

if

会话设置没有问题,因为在{{1}}部分,它运行正常。我的后端也使用相同的逻辑和编码流程,我在添加新页面时设置了flash消息,并在页面列表page.php上显示flash消息。如果它在那里工作那么为什么它不能在我的前端contact.php页面上工作?有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在我的contact.php页面中,我特别抓住了表单值" name"为:

// Preparing form variables
$name = isset($_POST['txtname']) ? $db_obj->sanitize_input($_POST['txtname']) : '';

局部变量$ name与set_flash_msg()函数中的全局变量$ name冲突。在上面的代码中将$ name更改为$ uname解决了这个问题。