Php 在会话中存储错误消息并显示在另一页上
目前我手头有一个场景。我有两个页面Php 在会话中存储错误消息并显示在另一页上,php,html,session,Php,Html,Session,目前我手头有一个场景。我有两个页面index.php和code.php。 用户首先进入index.php页面,然后被重定向到code.php页面并返回index.php页面 若code.php页面出现错误,我需要在index.php页面重定向回索引页面时显示该错误 我像这样将错误消息存储在会话中,然后将页面bsck重定向到index.php页面 $_SESSION["errormsg"]='please try again'; header("Location: index.php"); 但是
index.php和code.php。
用户首先进入index.php页面,然后被重定向到code.php页面并返回index.php页面
若code.php页面出现错误,我需要在index.php页面重定向回索引页面时显示该错误
我像这样将错误消息存储在会话中,然后将页面bsck重定向到index.php页面
$_SESSION["errormsg"]='please try again';
header("Location: index.php");
但是,如果我在index.php页面中回显此会话消息,则每次加载页面时都会显示该消息,但是当index页面位于code.php页面之后时,我只希望显示一次。有人能告诉我怎么做吗?使用一个简单的条件来检查是否设置了特定的会话
if(isset($_SESSION["errormsg"])) {
$error = $_SESSION["errormsg"];
session_unset($_SESSION["errormsg"]);
} else {
$error = "";
}
echo $error;
使用简单条件检查是否设置了特定会话
if(isset($_SESSION["errormsg"])) {
$error = $_SESSION["errormsg"];
session_unset($_SESSION["errormsg"]);
} else {
$error = "";
}
echo $error;
您可以在页面开始时使用
session\u start()
你也可以使用这个条件
<?php
session_start();
if (isset($_SESSION['variablename']))
{
//your code
}
?>
您可以在页面开始时使用session\u start()
,因为您在分配会话变量值时没有实际启动会话
你也可以使用这个条件
<?php
session_start();
if (isset($_SESSION['variablename']))
{
//your code
}
?>
我认为,通过会话显示错误消息的最佳方式是使用单独的消息文件,如message.php
步骤1:
您只需在code.php中使用错误消息设置会话
$\会话[“errormsg”]=“请重试”
步骤2:
- 现在创建名为“message.php”的新文件
- 将会话错误消息存储到新变量中
$error=$\会话[“errormsg”]
步骤3:
然后,取消设置会话或销毁会话
// remove all session variables
session_unset();
// destroy the session
session_destroy();
步骤4:
- 现在,在格式化的div标记中回显这个错误变量,这样您的错误看起来很好,也很吸引人
$error
我认为,通过会话显示错误消息的最佳方式是使用单独的消息文件,如message.php
步骤1:
您只需在code.php中使用错误消息设置会话
$\会话[“errormsg”]=“请重试”
步骤2:
- 现在创建名为“message.php”的新文件
- 将会话错误消息存储到新变量中
$error=$\会话[“errormsg”]
步骤3:
然后,取消设置会话或销毁会话
// remove all session variables
session_unset();
// destroy the session
session_destroy();
步骤4:
- 现在,在格式化的div标记中回显这个错误变量,这样您的错误看起来很好,也很吸引人
$error
作用
/**
* Function to create and display error and success messages
* @access public
* @param string session name
* @param string message
* @param string display class
* @return string message
*/
function flash( $name = '', $message = '', $class = 'success fadeout-message' )
{
//We can only do something if the name isn't empty
if( !empty( $name ) )
{
//No message, create it
if( !empty( $message ) && empty( $_SESSION[$name] ) )
{
if( !empty( $_SESSION[$name] ) )
{
unset( $_SESSION[$name] );
}
if( !empty( $_SESSION[$name.'_class'] ) )
{
unset( $_SESSION[$name.'_class'] );
}
$_SESSION[$name] = $message;
$_SESSION[$name.'_class'] = $class;
}
//Message exists, display it
elseif( !empty( $_SESSION[$name] ) && empty( $message ) )
{
$class = !empty( $_SESSION[$name.'_class'] ) ? $_SESSION[$name.'_class'] : 'success';
echo '<div class="'.$class.'" id="msg-flash">'.$_SESSION[$name].'</div>';
unset($_SESSION[$name]);
unset($_SESSION[$name.'_class']);
}
}
}
//Set the first flash message with default class
flash( 'example_message', 'This content will show up on example2.php' );
//Set the second flash with an error class
flash( 'example_class', 'This content will show up on example2.php with the error class', 'error' );
/**
*用于创建和显示错误和成功消息的函数
*@access-public
*@param字符串会话名称
*@param字符串消息
*@param字符串显示类
*@返回字符串消息
*/
函数flash($name='',$message='',$class='successfadeout message')
{
//只有当名字不是空的时候,我们才能做点什么
如果(!空($name))
{
//没有消息,创建它
if(!empty($message)&;&empty($\会话[$name]))
{
如果(!empty($\u会话[$name]))
{
取消设置($\会话[$name]);
}
if(!empty($\u会话[$name.''类']))
{
取消设置($会话[$name.''类']);
}
$\会话[$name]=$message;
$\u会话[$name.''u类]=$class;
}
//消息存在,请显示它
elseif(!empty($\会话[$name])&;&empty($message))
{
$class=!空($会话[$name.''类'])?$会话[$name.''类']:'success';
回显'.$'会话[$name].';
取消设置($\会话[$name]);
取消设置($会话[$name.''类']);
}
}
}
//使用默认类设置第一条flash消息
flash('example_message','此内容将显示在example2.php上');
//使用错误类别设置第二个闪存
flash('example_class','This content将在example2.php上显示错误类''error');
展示
这个
信息
作用
/**
* Function to create and display error and success messages
* @access public
* @param string session name
* @param string message
* @param string display class
* @return string message
*/
function flash( $name = '', $message = '', $class = 'success fadeout-message' )
{
//We can only do something if the name isn't empty
if( !empty( $name ) )
{
//No message, create it
if( !empty( $message ) && empty( $_SESSION[$name] ) )
{
if( !empty( $_SESSION[$name] ) )
{
unset( $_SESSION[$name] );
}
if( !empty( $_SESSION[$name.'_class'] ) )
{
unset( $_SESSION[$name.'_class'] );
}
$_SESSION[$name] = $message;
$_SESSION[$name.'_class'] = $class;
}
//Message exists, display it
elseif( !empty( $_SESSION[$name] ) && empty( $message ) )
{
$class = !empty( $_SESSION[$name.'_class'] ) ? $_SESSION[$name.'_class'] : 'success';
echo '<div class="'.$class.'" id="msg-flash">'.$_SESSION[$name].'</div>';
unset($_SESSION[$name]);
unset($_SESSION[$name.'_class']);
}
}
}
//Set the first flash message with default class
flash( 'example_message', 'This content will show up on example2.php' );
//Set the second flash with an error class
flash( 'example_class', 'This content will show up on example2.php with the error class', 'error' );
/**
*用于创建和显示错误和成功消息的函数
*@access-public
*@param字符串会话名称
*@param字符串消息
*@param字符串显示类
*@返回字符串消息
*/
函数flash($name='',$message='',$class='successfadeout message')
{
//只有当名字不是空的时候,我们才能做点什么
如果(!空($name))
{
//没有消息,创建它
if(!empty($message)&;&empty($\会话[$name]))
{
如果(!empty($\u会话[$name]))
{
取消设置($\会话[$name]);
}
if(!empty($\u会话[$name.''类']))
{
取消设置($会话[$name.''类']);
}
$\会话[$name]=$message;
$\u会话[$name.''u类]=$class;
}
//消息存在,请显示它
elseif(!empty($\会话[$name])&;&empty($message))
{
$class=!空($会话[$name.''类'])?$会话[$name.''类']:'success';
回显'.$'会话[$name].';
取消设置($\会话[$name]);
取消设置($会话[$name.''类']);
}
}
}
//使用默认类设置第一条flash消息
flash('example_message','此内容将显示在example2.php上');
//使用错误类别设置第二个闪存
flash('example_class','This content将在example2.php上显示错误类''error');
展示
这个
信息
这个问题在3年前已经得到了回答,但我想我可以在同一个主题中添加一些内容。我希望这是有帮助的
如果每次打开页面时都显示index.php页面中的会话消息,则表示该会话变量