我对执行以下操作的正确方法有些困惑。这是一个类,一个函数还是一个对象?(不确定)所以这里(请善待)我正在同时学习 codeigniter/php。
$is_live = $this->session->userdata('email');
$is_live = ucwords($is_live);
if (!$is_live == null)
echo 'Hello, '.$is_live.
' <b>(Not you? '.'<a href="' .base_url().
'main/logout">Log Out</a>) </b>';
我编写了这段代码,它检查是否设置了会话以及是否为 true 回显详细信息。我目前有这个代码view/main
但是我想在所有页面上显示这个代码。
这样做的正确方法是什么?
- 我是否创建一个
view/header
在每个页面上自动加载的并将其插入code
那里? - 我是否
class/public function
在helper
文件中创建一个并在需要的地方加载它? - 我是否
class/public function
在library
文件中创建一个并在需要的地方加载它? - 我是否
public function
在控制器中创建一个?
-EXTRA- 我的假设是选项1
,但我很好奇如果我想在特定页面的另一个位置显示此信息怎么办?我不想复制/粘贴代码块,因为那太草率了。
我将如何设置它以便我可以在需要的地方调用它?例如$this->load->helper('check_for_sess');
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class isLive
{
public function is_live() {
$is_live = $this->session->userdata('email');
$is_live = ucwords($is_live);
if (!$is_live == null)
echo 'Hello, '.$is_live.
' <b>(Not you? '.'<a href="' .base_url().'main/logout">Log Out</a>) </b>';
}
}
在view
我试过这个:
<?php
$isLive = new isLive;
$isLive->is_live();
?>
然而,这不起作用并导致'函数 userdata() on a non-object error'
有人可以解释实现我想要的解决方案和正确语法的正确方法。提前致谢!
-UPDATE-- 试图创建一个库 - 仍然出现错误。
#Created a library
class CheckSess
{
function IsLive()
{
$is_live = $this->session->userdata('email');
$is_live = ucwords($is_live);
if (!$is_live == null)
{
$check_msg = 'Hello, '.$is_live.
' <b>(Not you? '.'<a href="' .base_url().'main/logout">Log Out</a>) </b>';
}
return $check_msg;
}
}
#In the View
<?php echo $this->CheckSess->IsLive(); ?>
#in the controller
$this->load->library('CheckSess');
- 更新 -
class CheckSess {
function IsLive()
{
$CI =& get_instance();
$is_live = $CI->session->userdata('email');
$is_live = ucwords($is_live);
if (!$is_live == null)
{
return 'Hello, '.$is_live.
' <b>(Not you? '.'<a href="' .base_url().'main/logout">Log Out</a>) </b>';
}
}
}
设置这个^是libraries
文件夹
view
节目_<?php echo $this->CheckSess->IsLive(); ?>
和controller
节目$this->load->library('CheckSess');
请指教。再次感谢!
错误 - -
( ! ) SCREAM: ( ! ) 忽略错误抑制 致命错误: 在 C:\wampserver\www\test-app\application\views\homepage.php 第 56 行调用非对象上的成员函数 IsLive()调用堆栈
时间记忆功能位置
1 0.0005 151432 {main}( ) ..\index.php:0 2 0.0014 187792 require_once('C:\wampserver\www\test-app\system\core\CodeIgniter.php') ..\index.php:202 3 0.0277 1537000 call_user_func_array ( ) ..\CodeIgniter.php:359 4 0.0277 1537048 Main->index( ) ..\CodeIgniter.php:359 5 0.0283 1540200 CI_Loader->view( ) ..\main.php:8 6 0.0283 1540640 CI_Loader->_ci_load( ) ..\Loader.php:419 7 0.0287 1566584 包括('C:\wampserver\www\test-app\application\views\homepage.php') ..\Loader.php:833