1

私は何が間違っているのかわかりませんが、少しめちゃくちゃです

コントローラーを呼び出すaa hrefがあります

<a href="<?php echo base_url();?>mailing/index/?club=<?php echo $club_info[0]['club_title'];?>"><img src="<?php echo base_url();?>assets/front_assets/images/button_joinclub.png" width="180" height="44" border="0"></a>

今、機能はこれです

class mailing extends CI_Controller{
    private $pagesize = 20;
    function __construct() {
        parent::__construct();
        @session_start();
    }

    function index()
    {
         echo $_REQUEST['club'];
    }
}

しかし、それは私にエラーを与えます

A PHP Error was encountered

Severity: Notice

Message: Undefined index: club

Filename: controllers/mailing.php

Line Number:12




EDIT

さまざまなページからメーリング/インデックスを呼び出す必要があり、パラメーターを渡す必要がある場合と渡さない場合があります

私が使用する場合

function index($club)
{
//function body;
}

次に、常にいくつかのパラメーターを送信する必要があります

呼び出し元の href もこのようになることがあります

<a href="<?php echo base_url();?>mailing"><img src="<?php echo base_url();?>assets/front_assets/images/button_joinclub.png" width="180" height="44" border="0"></a>

そのため、関数定義でパラメーターの存在を発行したため、エラーが発生し、このリンクを介してパラメーターを渡していません

だから私は必要です

a href="<?php echo base_url();?>mailing/index/?club="<?php echo $club_info[0]['club_title'];?>"

isset($_REQUEST['club'] を使用して、存在するかどうかを確認できるようにします。

4

4 に答える 4

1

まず、echo base_url(); を実行する必要はありません。/mailing/index だけで十分です。パラメータを渡すには、McGarnagle が 3 番目のセグメントとして教えてくれたようにします。

<a href="/mailing/index/club_title"></a>

次に、インデックス関数のコントローラーで:

$club_title = $this->uri->segment(3);

値を保持する club_title という新しい変数を設定しました。それがパラメーターを渡す方法であり、他のページから渡したくない場合は、渡す必要はありません。その場合、変数がnullになることを意味するだけです。

何が起こったのかを理解できるように URI ヘルパーが機能する方法:

コントローラ - セグメント 1 メソッド - セグメント 2 パラメータ - セグメント 3

必要な数のパラメーターを追加してから、URI でアクセスを呼び出すことができます。config フォルダーの autoload.php にロードするか、次のように各コントローラーのコンストラクト関数にロードしてください。

$this->load->helper('url');

PS: codeigniter で $_REQUEST を使用することはありません。

于 2013-07-12T03:16:30.190 に答える
1

CodeIgniter は を除くすべての GLOBAL を無効にし$_GET、セキュリティ$_COOKIE$_POST確保します。

参照:

Register_globals

During system initialization all global variables are unset, except those found in the $_GET, $_POST, and $_COOKIE arrays. The unsetting routine is effectively the same as register_globals = off.

こちらのドキュメントを参照してください

于 2013-10-03T06:20:51.383 に答える
0

CodeIgniterは、セキュリティ上の理由から変数を削除します。$_REQUESTCodeigniter Manual hereで説明されている自動入力フィルタリングに関連していると思いますが、特に言及されていません。設定するか迷っています

$config['global_xss_filtering'] = TRUE;

config.php に影響するかどうか。

于 2016-06-30T07:24:03.967 に答える