在 PHP 中为用户存储 error/info 消息的位置?
Where to store error/info messages for the user in PHP?
我想知道,在 PHP 中为用户存储消息的最佳方式是什么。对于消息,我的意思是
Authentication successful
或
Please enter a valid e-mail address
目前我正在开发一个将它们存储在 $_SESSION
变量中的项目,但我认为这不是一个好的解决方案。
简短说明我现在是怎么做的(class Message
是我创建的)
$_SESSION["msg"][] = new Message("...");
和
foreach ( $_SESSION ["msg"] as $msg ) :
echo $msg->getText();
endforeach;
unset ( $_SESSION ["msg"] );
这只是完整代码的简化版本,但您应该明白了。
编辑:忘了说,我正在使用 MVC 框架并希望从输出中分离逻辑。
只能推测您的 Message
Class 的 nature/contents。然而,在这里;试图模拟一个名为 Message 的 class 模型;您的视图脚本中的用法也显示在 Class 下方。确保 $_SESSION
在两个脚本上都处于活动状态....也许,这可能会为如何处理您的独特案例提供一些新的思路:
<?php
//FIRST CHECK IF SESSION EXIST BEFORE STARTING IT:
if (session_status() == PHP_SESSION_NONE || session_id() == '') {
session_start();
}
class Message {
protected $msg;
public function __construct() {
if(!isset($_SESSION['msg'])){
$_SESSION['msg'] = array();
}
}
public function setText($message){
if(!in_array($message, $_SESSION['msg'])){
$_SESSION['msg'][] = $message;
}
}
public function getText(){
return "Some Logic for getting Message";
}
}
?>
<?php
// INSIDE OF YOUR VIEW SCRIPT; AT THE VERY TOP, ENABLE SESSION AS WELL:
//FIRST CHECK IF SESSION EXIST BEFORE STARTING IT:
if (session_status() == PHP_SESSION_NONE || session_id() == '') {
session_start();
}
// THEN LOOP THROUGH THE SESSION DATA FOR MESSAGES TO BE DISPLAYED
$msg = new Message();
if(isset($_SESSION['msg'])) {
foreach ($_SESSION ["msg"] as $msg) :
echo $msg->getText();
endforeach;
unset ($_SESSION ["msg"]);
}
我想知道,在 PHP 中为用户存储消息的最佳方式是什么。对于消息,我的意思是
Authentication successful
或
Please enter a valid e-mail address
目前我正在开发一个将它们存储在 $_SESSION
变量中的项目,但我认为这不是一个好的解决方案。
简短说明我现在是怎么做的(class Message
是我创建的)
$_SESSION["msg"][] = new Message("...");
和
foreach ( $_SESSION ["msg"] as $msg ) :
echo $msg->getText();
endforeach;
unset ( $_SESSION ["msg"] );
这只是完整代码的简化版本,但您应该明白了。
编辑:忘了说,我正在使用 MVC 框架并希望从输出中分离逻辑。
只能推测您的 Message
Class 的 nature/contents。然而,在这里;试图模拟一个名为 Message 的 class 模型;您的视图脚本中的用法也显示在 Class 下方。确保 $_SESSION
在两个脚本上都处于活动状态....也许,这可能会为如何处理您的独特案例提供一些新的思路:
<?php
//FIRST CHECK IF SESSION EXIST BEFORE STARTING IT:
if (session_status() == PHP_SESSION_NONE || session_id() == '') {
session_start();
}
class Message {
protected $msg;
public function __construct() {
if(!isset($_SESSION['msg'])){
$_SESSION['msg'] = array();
}
}
public function setText($message){
if(!in_array($message, $_SESSION['msg'])){
$_SESSION['msg'][] = $message;
}
}
public function getText(){
return "Some Logic for getting Message";
}
}
?>
<?php
// INSIDE OF YOUR VIEW SCRIPT; AT THE VERY TOP, ENABLE SESSION AS WELL:
//FIRST CHECK IF SESSION EXIST BEFORE STARTING IT:
if (session_status() == PHP_SESSION_NONE || session_id() == '') {
session_start();
}
// THEN LOOP THROUGH THE SESSION DATA FOR MESSAGES TO BE DISPLAYED
$msg = new Message();
if(isset($_SESSION['msg'])) {
foreach ($_SESSION ["msg"] as $msg) :
echo $msg->getText();
endforeach;
unset ($_SESSION ["msg"]);
}