-
Q1どのブラウザでも動きますか?+
Chrome, Safari, Edge, Firefoxは動作確認済みです。
ただし、これらのブラウザでも設定次第では動作しないことがあります。
-
Q2スマホでもスクリプトは動きますか?+
全てのOSや設定で試したわけではありませんが、以下の端末では動作することを確認しています。
Android: Chrome, Edge, Firefox
iOS: Chrome, Safari, Edge, Firefox
Windows: Chrome, Edge, Firefox
macOS: Chrome, Safari
-
Q3PHPページ以外のファイルにも鍵をかけられますか?+
Kohaku.phpはPHPページにのみ鍵をかけることができます。HTMLファイルや画像ファイルなど、他の形式のファイルには直接鍵をかけることはできません。
Kohaku.phpを利用しているPHPページ内でのみ、パスワード保護の処理が働き、ページの内容が直接アクセスされないようにする仕組みです。
-
Q4ディレクトリ区切りのレンタルサーバではどうして使用できないのですか?+
Kohaku.phpの認証は、サーバ側とブラウザ側が連携して動く「セッション」という仕組みを使用しています。
セッションは「~~.com」や「~.~.jp」といった部分までの文字で識別され、この部分が全く同じだとセッション上は同じサイト内という扱いになります。(サブドメインは別サイト扱いです)
つまり、ディレクトリ区切りのサイトの場合はセッション内容が共有されてしまうため、別管理のサイトなのに、同じページ名ゆえにパスワード入力なしで閲覧ができる等のリスクがあります。
なので、ディレクトリ区切りで割り当てされるレンタルサーバでは使用できません。
-
Q5複数のフォルダに分けて同一のページファイル名にする場合、1つのkohaku.phpで運用できますか?+
同じファイル名の場合、パスワード、ヒント、認証状態が共通になりますが運用は可能です。
まず、鍵かけページからkohaku.phpを呼び出すパス require 'kohaku.php'; を、それぞれのページファイルから呼び出せるようなものに変更します。
ファイル名が同じなので、kohaku.php内の$pagesの設定は1つのみです。
例えば、複数のフォルダでnovels.phpというファイルを作って全部に鍵をかける場合、$pagesの中にあるnovelの設定を増やす必要はありません。
-
Q6画面が真っ白になる/エラー文が画面に表示されるのですがどうしたらよいですか?+
動かない場合、エラー文が表示されていたらエラー文の箇所で不具合が発生しているので内容に応じた対応が必要です。
エラー文も表示されない場合は、PHPが動作する環境かどうかを確認する必要があります。
オフラインで確認したい場合はPHPがインストールされた環境が必要です。
既に運用しているレンタルサーバ等にアップロードしても動かない場合、レンタルサーバがPHP対応なのか、バージョンが7.1以上かどうかを確認してください。契約したレンタルサーバの案内やマニュアルに記載があると思います。
環境に問題が無い場合は、編集ミスがないかを確認する必要があります。
配布ファイルと見比べてみて、カンマ「,」やクォーテーション「'」等のプログラミングの必要部分が増えたり消えたりしていないかをチェックしてください。
-
Q7JavaScriptが無効になっていても動きますか?+
JavaScriptでパスワードフォームを作成しているので、無効になっていると動きません。
-
Q8jQueryや他のスクリプト・ライブラリを併用しても動きますか?+
はい、基本的には動きます。
Kohaku.phpでは、認証がまだのページに対しては独自のパスワード入力ページが表示され、元のコンテンツはブラウザに送信されません。
認証に成功すると、Kohaku.phpのHTMLは表示されず、元のページのJavaScriptや他のスクリプトがそのまま動作しますので、干渉することはありません。
-
Q9ページの鍵かけをやめてHTMLページに戻すには?+
元のHTMLファイルに戻すには、鍵かけページに追加していた <?php から ?> までの行のPHPコードを削除します。
その後、ファイルの拡張子を.php から .html に直せばページのファイルは元に戻ります。
Kohaku.phpを他のページで継続して使用する場合は、$pages内の使わなくなったページの情報の削除推奨です。
Kohaku.php自体の使用をやめるには、鍵かけページをすべて上記の手順で.htmlに戻し、サーバからkohaku.phpを削除してください。
(必要に応じてリンクの .php も .html に直してください)
-
Q10パスワードのヒントを理解していない人にアクセスされる可能性はありますか?+
結論から言うとその可能性はあります。
企業レベルの認証では一般的な、IPアドレスでのチェックやパスワード暗号化、多段階認証、ログ保存等を使用していないため、とても簡易な保護となっています。
使用中のレンタルサーバ管理者、ある程度技術を持った人、総当たり攻撃などを仕掛けるプログラム、共同作業者等のPHPコードを直接見れる人、FTPツールでサーバに直接入り込む人にはパスワードが特定されます。
厳重な認証が必要な場合は別の認証プログラムをご検討ください。
-
Q11動作確認中に「セッションの有効期限が切れている可能性があります。再度お試しください。」というエラーメッセージが表示されるのですが、どうすればいいですか?+
このエラーメッセージは、認証に必要な情報が一定時間経過により無効になった場合に表示されます。ページを再読み込みしてもう一度試してください。
それでも解決しない場合、Cookieの設定がブラウザで無効になっている可能性がありますので、ブラウザの設定を確認してください。
また、kohaku.php内の↓のコードを誤って消してしまった場合も同じメッセージが表示されます。
<input type="hidden" name="csrf_token" value="${csrfToken}">
この記述が見当たらない場合は、配布ファイルと同じようにパスワード入力フォーム内に用意してください。
-
Q12「このページにはパスワード設定がありません。設定を確認してください。」というエラーが出る場合、どうすればいいですか?+
このエラーメッセージは、ページに必要なパスワード設定が見つからない場合に表示されます。kohaku.phpの$pagesに、ページファイル名とパスワードの設定が正しく記述されているか確認してください。
-
Q13「このページを表示するにはCookieを有効にしてください。」と表示される場合の対処法は?+
このメッセージが表示された場合、ブラウザのCookieが無効になっている可能性があります。ブラウザ設定からCookieを有効にしてください。セキュリティの設定でCookieの保存が制限されている場合もありますので、その場合は制限を解除するか、別のブラウザでお試しください。
-
Q14「直接アクセスは禁止されています」というエラーが表示された場合の対処法は?+
このエラーは、kohaku.phpを直接URLで開こうとしたときか、鍵をかけるページでkohaku.phpを呼び出す際のコードが不足している際に表示されるメッセージです。
もし鍵をかけるページにアクセスした際に表示される場合は、鍵をかけるphpファイルの先頭で以下のコードが正しく書かれているか確認してください。(順番も大切です)
<?php
define('USE_KOHAKU', true);
require 'kohaku.php';
?>