• wordpress2.7.1で登録ユーザーのみ閲覧可能なサイトを制作しています。
    http://wordpress4cms.net/546/ さんで紹介されていた方法を参考にさせていただき、
    wp-blog-header.phpに

    if (!is_user_logged_in()){
    auth_redirect();
    }

    を追加し閲覧制限をかけています。
    携帯電話からの閲覧も可能にさせる為に、「Ktai Style 1.70」を利用させて頂いているのですが、ページ遷移がうまくいきません。
    正常にログインは出来るのですが、リンクをクリックしたり、検索をしたり、何かアクションをおこす度にログイン画面に戻ってしまい再ログインを要求されてしまいます。
    再ログインした後は、希望のページにアクセスされます。
    再ログインを要求されること以外はすべて正常に動作しているのですが、auth_redirectの使い方が間違えているのでしょうか?

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • Ktai Style 作者です。

    携帯電話からの閲覧も可能にさせる為に、「Ktai Style 1.70」を利用させて頂いているのですが、ページ遷移がうまくいきません。

    現在の Ktai Style は、ログインしての閲覧には対応していません。つまり、ログインユーザーのみ閲覧させる制限をかけることはできません。

    クッキーに対応した端末 (ドコモ以外) であれば、クッキー認証によるログインは一応できますが、予想しない動作が考えられます。

    auth_redirectの使い方が間違えているのでしょうか?

    強いて言うとそうなります。

    トピック投稿者 bonichi

    (@bonichi)

    ありがとうございます。

    現在の Ktai Style は、ログインしての閲覧には対応していません。つまり、ログインユーザーのみ閲覧させる制限をかけることはできません。

    どうにかして携帯電話でもPCと同じように閲覧制限をかけたいのですが、何か方法はありませんでしょうか?
    出来ればプラグインで簡単に実現したいです。

    どうにかして携帯電話でもPCと同じように閲覧制限をかけたいのですが、何か方法はありませんでしょうか?

    これには、携帯電話そのものの制約を検討しなければなりません。すでに書いた通り、ドコモ携帯ではクッキーが使えないため、WordPress 標準のログイン機構が使えません。Ktai Style の持つログイン機構も、単なる閲覧時には使えません。

    したがって、ドコモ携帯でも使える認証システムとしては Basic 認証というものに限られてきます。これは、.htaccess などの設定で、ID とパスワードを記載したファイルを指定して、その ID, パスワードで認証するというものです。

    Ktai StyleとWordpress Passwordの互換性」で、具体的な手法を説明していますので、ぜひ参照してください。

    トピック投稿者 bonichi

    (@bonichi)

    lilyfan様 ありがとうございます。

    Basic認証を利用して閲覧制限に挑戦してみたいと思います。
    「Ktai StyleとWordpress Passwordの互換性」参考にさせていただきました。

    そして、またつまずきました。。。

    複数のID, パスワードを設定できた方がいいので
    最下部にあった、

    <?php
    global $wpja_site_pass;
    $wpja_site_pass = array(
      'user_1' => 'pass_1',
      'user_2' => 'pass_2',
    );
    
    function wpja_force_basic_auth() {
      if (! defined('WP_USE_THEMES')) {
        return;
      }
      global $wpja_site_pass;
      if (isset($_SERVER['PHP_AUTH_USER']) && array_key_exists($_SERVER['PHP_AUTH_USER'], $wpja_site_pass) && strcmp($wpja_site_pass[$_SERVER['PHP_AUTH_USER']], $_SERVER['PHP_AUTH_PW']) === 0) {
        return;
    } else {
        header('WWW-Authenticate: Basic realm="Please Enter Site Password"');
        header('HTTP/1.0 401 Unauthorized');
        if (! isset($_SERVER['PHP_AUTH_USER'])) {
            echo "Authorization Required";
        } else {
            echo "Bad Password";
        }
        exit;
      }
    }
    add_action('init', 'wpja_force_basic_auth');
    ?>

    をmy-hacks.phpとして保存し、インストールディレクトリにアップロードし、管理画面「その他の設定」から「レガシーな my-hacks.php ファイルを使用」にチェックを入れて試してみました。

    ユーザー名とパスワードが要求されるメッセージが出て来て、ユーザー名に「user_1」、パスワードに「pass_1」を入力しても、何度も同じようにユーザー名・パスワードの入力が要求されてしまい、進むことが出来ませんでした。

    wp-blog-header.phpに追記していた

    if (!is_user_logged_in()){
    auth_redirect();
    }

    などもすべて削除したのですが状況は変わらず。

    ベージック認証でもやりたかったことが実現出来そうなので、なんとかクリアしたいところです。
    素人相手で申し訳ございませんが、ご教授頂けませんでしょうか。

    ユーザー名とパスワードが要求されるメッセージが出て来て、ユーザー名に「user_1」、パスワードに「pass_1」を入力しても、何度も同じようにユーザー名・パスワードの入力が要求されてしまい、進むことが出来ませんでした

    おそらく実際には user_1 や pass_1 とは違う文字列なのだと思いますが、その文字列に問題がありそうです。もういちどよーく見直してみてください。

    特に、パスワードに記号を使っている場合は、うまく書かないと正しく通りません。シングルクォートの中なので、バックスラッシュ (円記号) やシングルクォートそのもの以外ならば、どんな記号が来ても通常は問題ないはずですが……。パスワード文字列をダブルクォートで囲ってしまったならば、ドル記号 ($) とかを入れるとおかしいことになります。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「「ktai style」で閲覧制限」には新たに返信することはできません。