コードイグナイター バリデーション

フォームのバリデーションとは?

フォームを作る場合、必ずバリデーションやサニタイズをする必要があります。つまり、入力された値の検証が必要です。

では、フォームバリデーションについて考えてみましょう。

 

フォームを作る時に、考えておくこと

フォームを作る時に、考えておくことは、以下の事です。

 

1.フォームが表示される

2.入力して送信ができる

3.無効なものをチェックする。 エラーを表示する

4.確認ページに行き、送信完了。

 

大まかには、こんなイメージです。

 

受信側で必要な処理

1.必須項目のチェック

2.データの型を確認。

3.サニタイズする

4.データベスに挿入するためのクエリ発行

 

サニタイズ

サニタイズとは?

日本語では、「無害化」するという意味。サニタイズは、ユーザーの入力値を検証する仕組みです。

 

入力値が要件として正しい値か?をチェックします。

 

【参照】

https://qiita.com/rana_kualu/items/11cd41de5f0364ba2ee8

 

バリデーション

バリデーションで「値」をチェックする

想定していない値をチェックするための入力値検証。スクリプト攻撃を防ぎ、クエリを破壊されないようにします。

エラーメッセージ出すようにする。 

 

以下のように使う事もできます。

<?php

class Form extends CI_Controller {

public function index() {
$this->load->helper(array('form', 'url'));

$this->load->library('form_validation');

if ($this->form_validation->run() == FALSE)
{
$this->load->view('myform');
}
else {
$this->load->view('formsuccess');
}
}
}

 

【参照】

https://codeigniter.jp/user_guide/3/libraries/form_validation.html

 

エスケープ

htmlspecialchars()

特殊文字を変換して、スクリプト攻撃されないようにする時に利用します。「<」「>」などの文字を特殊変換します。

これで、Javescriptによる攻撃(クロスサイトスクリプティング)を回避する事ができます。

 

htmlspecialcharsを利用することで、ユーザーによって、入力された特殊文字を「文字列」に変換してくれます。

 

シングルクォーテーション ・・・ 「 '」を「&#039;」

ダブルクォーテーション ・・・ 「 " 」を「&quot;」

アンド ・・・ 「 &」を 「&amp;」に変換

小なり ・・・ 「 <」 を 「 &lt ;」

大なり ・・・ 「 >」を 「 &gt; 」

 

【参照】

https://www.php.net/manual/ja/function.htmlspecialchars.php

スクリプトの事例 ⇊

https://www.leon-tec.co.jp/blog/yoshida/8214/

 

 

ちょっと知っていた方がいい、注意点

htmlspecialchars()した後の値をCSVなどに出力されたら文字化けします

 

ようこそ、<?=htmlspecialchars($_REQUEST['name'], ENT_QUOTES, 'UTF-8'); ?>さん。

 

と出力部分に入れておくと、エラーがおきずらくなります。

 

しかし、フレームワークはHTMLエスケープ機能を持っているので、htmlspecialchars()ではなくフレームワークに沿った出力方法を行いましょう。

 

【参照】

https://qiita.com/rana_kualu/items/11cd41de5f0364ba2ee8

 

何が必要か?

コードイグナイターでフォームを作るには?

以下が必要になります。

 

・フォームを持つ ビュー ファイル。

・送信成功時に表示される「成功」メッセージを含む ビューファイル。

・送信されたデータを受信および処理する コントローラ メソッド。

 

が必要になります。

これらを作っていきましょう!!

 

コードの説明

codeigniterでは自動的にpostデータをバリデーションします。

 

$this->load->library('form_validation');
$config = [

[ 'field' => 'name',
'label' => '名前',
'rules' => ['trim', 'required', ],
],
];

 

$this->form_validation->set_rules($config);

 

if ($this->form_validation->run() === TRUE) {
// OKの場合の処理
} else {
// NGの場合の処理

}

 

参照URL >>

 

フォームヘルパーのファイルは、フォームをを処理するのに 役立つ関数

ヘルパーを使って、まずはロードして、使えるようにします。

 

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

 

フォームを生成するタグ

 

<?php echo form_open('form'); ?>


<form method="post" accept-charset="utf-8" action="http://locallhost/index.php/form/">

を参照するフォームタグを生成してくれます。

 

【参照】

https://codeigniter.jp/user_guide/3/helpers/form_helper.html

 

Viewでエラーを表示する

全てのエラーを 「表示」 する場合に利用

<?php echo validation_errors(); ?>

 

 

個別でエラーを表示する場合

<?php echo form_error('name'); ?>

 

このように書きます。

 

コントローラでエラーを取得する場合

全てのエラーを取得する

$errors = $this->form_validation->error_array();

 

 

個別でエラーを取得する

$errors = $this->form_validation->error('name');

 

 

エラーを日本語にする場合

application/config/config.phpでlanguageをjapaneseに変更する。

$config['language'] = 'japanese';

 

【参照】

http://www.ci-guide.info/practical/library/form_validation/

 

 

次に、ルールを保存します

application/config/ フォルダに form_validation.php という名前のファイルを作成します

 

 

参照

【参照】

サニタイズ/入力値検証/エスケープの考え方

フォームバリデーション(検証)

フォームのバリデーション(フォーム見本)

コードイグナイターのエラー構文を知りたい

http://www.ci-guide.info/practical/library/form_validation/

 

 

大変申し訳ありませんが、当社ではサービスの質を落とさないために、月の契約は5件までとさせていただいております。 契約をお待ちいただく可能性もございますので、ご了承のほどよろしくお願いいたします

 

 

 

コードイグナイターの勉強方法

 

■ フレームワーク ■

フレームワークは何を使ったらいいのか?

ララベルとは?

コードイグナイターとは?

オートロードとは

無名関数とは?

MVCとは何か?

 

■ オブジェクト指向■

クラス・インスタンス・プロパティ

オブジェクト指向とは?

 

 

 

 

この記事を読んだ人は、こんな記事も読んでいます

 

SEO対策の基本 外部要因とは?

SEO対策の基本的である、外部要因とは何か?

SEO対策をするなら絶対に知っておきたい、基本知識です。

 

売れるサイトを作るのに知って起きたい知識

サーチエンジンマーケティングという言葉をご存知でしょうか?

ホームページで商品やサービスを売る時に知っておきたいマーケティング

についてご紹介いたします。

seo対策をするメリットとは

SEO対策をする5つのメリットとは?

なぜ上位表示させることが大事なのか?なぜSEO対策をする必要があるのか

についてご紹介させていただきます。

 

内部要因とは

SEO対策の内部要因とは?

上位表示させるためには、内部要因について知っておくことも大事です。

キーワードを上位表示させるために必要なのは、ソースコードを最適化することです

内部要因の対策について知りたい方はこちらへ

 

キーワード対策をするまえに

キーワード対策をする前に

そのキーワード対策。ちょっと待ってください。

そのまま対策をすると、必ずお金を損してしまいます。個人事業主や中小企業は

そんな大きなキーワードで対策をしてはいけません。

広告費用が高くなる理由とは

広告費用が高くなる本当の理由とは?

売れないサイトに集めていませんか?広告費用がかかるわりには

お問い合わせが少ない・・・と感じる方は多いはずです。

購入率の悪いサイトに集客をしている可能性があります。

 

 

 

 

【SEO対策・webコンサルティングのプラスワーク対応エリアについて】

プラスワークでは、東京、神奈川、千葉、埼玉を中心に全国でwebコンサルティング、SEO対策、ホームページの更新、ホームページのリニューアル運営代行をしております。売上アップをお考えならお気軽にご相談ください。

 

【SEO対策・webコンサルティングのプラスワーク 対応地域】

北海道 [ 北海道 ]

東北  [ 青森 | 岩手 | 山形 | 福島 | 秋田 | 宮城 ]

関東  [ 東京 | 埼玉 | 千葉 | 茨城 | 栃木 | 群馬 | 神奈川 ]

甲信越 [ 山梨 | 長野 | 新潟 ]

北陸  [ 石川 | 福井 | 富山 ]

東海  [ 愛知 | 静岡 | 岐阜 | 三重 ]

近畿  [ 大阪 | 兵庫 | 京都 | 滋賀 | 奈良 | 和歌山 ]

中国  [ 島根 | 山口 |鳥取 | 広島 | 岡山 ]

四国  [ 徳島 | 香川 | 愛媛 | 高知 ]

九州  [ 福岡 | 佐賀 | 長崎 | 熊本 | 大分 | 宮崎 | 鹿児島 ]

プラスワークでは全国でSEO対策、ホームページ更新、制作をしております。中小企業専門SEO対策・ホームページ更新制作会社、口コミのよいSEO対策会社をお探しならプラスワークにお任せくださいませ。

 

 

【コンテンツ】

トップへ

更新レスキュー

料金について

制作実績

お客様の声

よくある質問

会社概要

お問い合わせ

【更新レスキュー】

ライトコース

ゴールドコース

プラチナコース

 

【その他】

ニュース

メルマガ登録

特別資料プレゼント

相互リンク募集中

【課題から探す】

ホームページの課題

SEO対策とは

SEO対策がダメな理由

上位表示されない理由

相互リンクとは

順位が落ちてしまう原因

 

 

フェイスブック  ツイッター