CodeIgniterの勉強メモ (3) 入力データの取得

フォーム

フォームの送信メソッドによって違います。
$this->input->post(‘変数名’);
$this->input->get(‘変数名’);

HTMLページ

<form method="post" action="welcome">
    <input type="text" name="test1" />
    <input type="submit"  />
</form>

CodeIgniterコントローラ

echo $this->input->post('test1');
//HTMLフォームの変数名test1の値

アドレス (URI)

アドレス~~/welcome/index/a/b/cからa,b,cを取る。

方法1:$this->uri->segment(n)

上記のようなアドレスの中から、
$this->uri->segment(アドレスのセグメント順)で値を取得できます。

$this->uri->segment(1);    // welcome
$this->uri->segment(2);    // index
$this->uri->segment(3);    // a
$this->uri->segment(4);    // b
$this->uri->segment(5);    // c

方法2:メソッドの引数

コントローラのアクションの引数として代入させたい場合、メソッドの引数に定義します。
注意:アドレスに引数の不足の場合、Warningが出ます。

class Welcome extends CI_Controller {
    public function index($var1, $var2, $var3)
    {
        echo $var1;    // a
        echo $var2;    // b
        echo $var3;    // c
    }
}

アップロードファイル読み込み

ステップ1:uploadヘルパーの初期化

アップロードを処理するには、ヘルパーをロードし、初期化する必要があります。
ヘルパーを初期化するとき、必要なパラメータを指定しなければなりません。

$upload_config = array();
$upload_config['upload_path'] = './';           // アップロードする場所
$upload_config['file_name'] = "メモ.txt";       // 名前を指定
$upload_config['allowed_types'] = 'txt';        // 許可する拡張子
$upload_config['max_size'] = '1000000';         // アップロードできるファイルの最大サイズ (KB)
$upload_config['overwrite'] = TRUE;             // 上書き保存を許可、許可しない場合は自動で別名保存される

$this->load->library('upload');                 // uploadライブラリをロード
$this->upload->initialize($upload_config);      // 指定したパラメータでuploadヘルパーを代入

//あるいはuploadライブラリをロードと同時にパラメートを代入
//$this->load->library('upload', $upload_config);

例で下記フォームのtestfileをアップロード、formにenctype=”multipart/form-data”が必要

<form method="post" action="welcome/upload" enctype="multipart/form-data">
    <input type="file" name="testfile" />
    <input type="submit" />
</form>

ステップ2:アップロードファイルの処理

  • $this->upload->do_upload(‘ファイルのフォーム変数名’):ファイルの変数名を指定し、アップロードを実行する。
    • 戻り値は、アップロード結果のtrue/false。
  • $this->upload->display_errors():アップロード失敗のエラーメッセージ
  • $this->upload->data():アップロード成功のファイル内容
    • 文字列で内容を取得するには、PHPのメソッドfile_get_contentsを使用

if ($this->upload->do_upload('testfile')){
    // アップロード成功時
    $data = $this->upload->data();
    $contents = file_get_contents($data['full_path']);
    echo '<pre>'.$contents.'</pre>';
} else {
    // アップロード失敗時
    echo $this->upload->display_errors('<span>', '</span>');
}

ユーザの情報

アクセスして来たユーザのIPアドレス・OS・ブラウザなどを取得する

echo $this->input->user_agent();
// 下記のような文字列が出力される、OSとブラウザなどが分かる
// Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36
echo $this->input->ip_address();
// IPアドレスをxxx.xxx.xxx.xxxの形式で出力

設定パラメータ

$this->config->item(‘設定変数名’)
CodeIgniterのapplication/config/config.phpの設定アイテムを取得

echo $this->config->item('language');
// デフォルトでは、englishを出力

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>