以下を実行する適切な方法について、私は多少混乱しています。これはクラスですか、関数ですか、それともオブジェクトですか? (よくわかりません) というわけで (親切にお願いします) 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() 」が発生します。
誰かが私の希望するソリューションと正しい構文を達成するための適切な方法を説明してもらえますか? 前もって感謝します!
-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: エラー抑制は無視されました ( ! ) 致命的なエラー: 56 行目の C:\wampserver\www\test-app\application\views\homepage.php の非オブジェクトに対するメンバー関数 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 include( 'C:\wampserver\www\test-app\application\views\homepage.php' ) ..\Loader.php:833