情シス - 雑多メモ

基本は情シス、たまに開発を担当

Windows10 リカバリイメージ「システムイメージが見つかりません」

Windows10のシステムイメージを使ってドライブを復元する際にハマってしまったので備忘


過去に取得したシステムイメージ(DVD5枚分)を用いてPCをリカバリを試みる。

参考:
オペレーティング システムまたはサーバー全体を回復する



1枚目のDVDを挿入して復元を試みるが、
「システム イメージ バックアップの選択」画面で「システムイメージが見つかりません」のメッセージ
f:id:komen-tyu:20171012180219p:plain



結論
システムイメージの「最後のDVD」(今回のイメージでいうと5枚目のDVDメディア)を挿入して再試行すればよかっただけというオチです

Windows10 OneDriveを削除

Windows10に標準でインストールされているOneDrive、「プログラムと機能」でアンインストールしても完全には削除されない。エクスプローラの左ペインに表示されてしまう。

何かとアレなので削除/無効化したい。



コマンドプロンプト管理者モードで起動する。


1. OneDriveのサービス停止

※「プログラムと機能」でアンインストール済みの場合は実行不要

> taskkill /f /im OneDrive.exe
2. OneDriveのアンインストール

※「プログラムと機能」でアンインストール済みの場合は実行不要
※64bit環境の場合

> %SystemRoot%\SysWOW64\OneDriveSetup.exe /uninstall
3. OneDrive関連のフォルダ削除
> rd “%UserProfile%\OneDrive” /Q /S
> rd “%LocalAppData%\Microsoft\OneDrive” /Q /S
> rd “%ProgramData%\Microsoft OneDrive” /Q /S
4. レジストリ削除
> REG Delete “HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}” /f
> REG Delete “HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}” /f


アンインストールまではしなくても無効化したい場合は以下。
support.office.com

Bootstrap3 フォーム入力チェック機能

HTML5初心者。
フォーム入力チェック機能の「このフィールドを入力してください。」のメッセージをカスタマイズしたくて、bootstrap.jsやjquery.jsとにらめっこしたが見つからず、どうやって実装しているのかハマったので備忘。


下記はBootstrap公式のログインフォームテンプレート

f:id:komen-tyu:20170803153637p:plain


環境はChrome バージョン59.0.xx
ブラウザの種類・バージョンによって動作が異なるので注意。(*)


まずは基本から確認。

その1.テキストフィールドを必須項目にする:required

例えば、入力必須にしたいテキストフィールド

<input type="text" name="email">

ここに「required」(必須)の属性を追加し、

<input type="text" name="email" required>

とする。

required="required" といった属性指定の形式も可。


その2.メールアドレス書式:email

Bootstrap3では、type属性にemailを指定することが可能。
入力値をメールアドレス形式(@マークの有無)かどうか判断してくれる。

<input type="email" name="email" required>

補足:required属性は、inputの各type属性、textarea、select で実装が可能



(*)と、ここまで色々とググっていると、「ブラウザによってメッセージや動作が異なる」ということを知り、「"required"を付与することでブラウザ依存の語句(動作)を呼び出している」ということに気付いた、というオチです。。


JQuery Validation Engine という入力チェック機能もあるんですね。

Bootstrap3 事前準備

まずは事前準備。下記のサイトからBootstrapをダウンロードする。


Bootstrap · The world's most popular mobile-first and responsive front-end framework.

 CDN版も用意されているが、今回はソース版をダウンロードして使用する。


解凍し適切に展開する。

    <!-- BootstrapのCSS読み込み -->
    <link href="css/bootstrap.min.css" rel="stylesheet">
    <!-- jQuery読み込み -->
    <script src="js/jquery.js"></script>
    <!-- BootstrapのJS読み込み -->
    <script src="js/bootstrap.min.js"></script>

Bootstrap3ではJQueryが必要。
BootstrapのJSファイルよりも先にJQueryのJSファイルを読み込むようにすること。

広告を非表示にする

Codeigniter3 ログ出力設定

Codeigniter3系のログ出力設定の備忘です。

設定ファイル

application/config/config.php
204行目付近(初期値)

$config['log_threshold'] = 0;

$config['log_path'] = '';

$config['log_file_extension'] = '';

$config['log_file_permissions'] = 0644;

$config['log_date_format'] = 'Y-m-d H:i:s';
$config['log_threshold']

ログレベルを指定。初期値は 0 ロギングしない。

0 = Disables logging, Error logging TURNED OFF
1 = Error Messages (including PHP errors)
2 = Debug Messages
3 = Informational Messages
4 = All Messages
$config['log_path']

ログ出力PATHを指定。(例)application/log
出力先ディレクトリはApacheが write できる権限が必要。

$config['log_file_extension']

ログファイル名の拡張子(.log)指定。
指定しない場合はデフォルトの「.php」となる。違和感がある場合は「.log」に変更すればよい。

$config['log_file_permissions']

ログファイルのパーミッション値を指定。セキュリティ要件に合わせて適時変更。

$config['log_date_format']

ログ記録時の日時フォーマット
初期値の'Y-m-d H:i:s'を指定した場合、「2017-07-14 16:29:55」


ログの出力方法

PHPコード内で log_message($level, $message); を呼び出す。
levelは以下のいづれかを指定

error :エラーレベル
debug :デバッグレベル
info  :Infoレベル

デバッグ等でログ出力させたい場合の例

log_message('info', 'hogehogehoge_001');

ログ出力例
INFO - 2017-07-14 16:29:55 --> hogehogehoge_001


余談

php.iniでDefault_Timezoneが指定されていないとdate(date_default_timezone_set)呼び出しに失敗するので忘れずに。

Severity: Warning --> date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone.