ダイジェスト認証 - PHPプロ!Q&A掲示板

2820

  • 0P

ダイジェスト認証

質問日時 / 2010年7月23日 00:20    回答数 / 3件

Questioner:  agupx  このエントリーをはてなブックマークに追加 

キーワード / キーワードが設定されていません

下記URLを参考にダイジェスト認証を試しております。
http://techblog.ecstudio.jp/tech-tips/digestauth.html

xamppでは問題なく動作したのですがエックスサーバー(php5.1.6)にあげたところ下記のエラーが出ました。
Call to undefined function getallheaders()

調べたところ下記のソースで対応できるようだったので加えました。
  1. function getallheaders() {
  2.   global $HTTP_SERVER_VARS;
  3.   if(!empty($HTTP_SERVER_VARS) && is_array($HTTP_SERVER_VARS)) {
  4.     reset($HTTP_SERVER_VARS);
  5.     while($each_HTTP_SERVER_VARS = each($HTTP_SERVER_VARS)) {
  6.       $name = $each_HTTP_SERVER_VARS['key'];
  7.       $value = $each_HTTP_SERVER_VARS['value'];
  8.       if(substr($name, 0, 5) == 'HTTP') {
  9.         $headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
  10.       }
  11.     }
  12.   }
  13.   return $headers;
  14. }

するとエラーは表示されなくなり認証ウィンドウが出てきたのですが正しいIDとパスを入れても認証されない状態になってしまいました。

サーバーの設定なのか加えたソースに誤りがあるのか不明なのですがどのようにすれば解決できるでしょうか?

文字コードは全てutf-8でIDとパスは半角英字です。

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┗A01shimixエックスサーバー(php5.1.6)は『モジュール版ではない
 ┗A01-1agupxお返事ありがとうございます。 単純にエックスサーバ
  ┗A01-1-1shimix>単純にエックスサーバーでは、基本的にダイジェスト

回答一覧

並び替え:

A01
answerershimix [7月23日 01:25] (最終編集:7月23日 01:25)

エックスサーバー(php5.1.6)は『モジュール版ではない』のでは?それとも(ダイジェスト認証でなく)BASIC認証だとOKだったということでしょうか?

  http://www.php.net/manual/ja/reserved.variables.server.php

拡張子.php以外をphp動作させるのにAddHandlerを設定している説明とか、設定間違えて500エラーになったというような記事が検索でHitするので、CGI動作だと思うのですが・・

この意見に回答する

ツリーへ TOPへ

A01-1
replyeragupx [7月23日 10:03]

お返事ありがとうございます。
単純にエックスサーバーでは、基本的にダイジェスト認証は不可能という事でしょうか?
その場合、テキストファイルやdbにidとpassを保存しそれと参照する方向に切り替えたいと思います!

この意見に回答する

ツリーへ TOPへ

A01-1-1
replyershimix [7月23日 11:47]

>単純にエックスサーバーでは、基本的にダイジェスト認証は不可能という事でしょうか?

先に提示したマニュアルのURL($_SERVERの説明)の'PHP_AUTH_DIGEST'の項を読めばわかると思いますが「モジュール動作でなければ」phpスクリプトからApacheの認証データ(Authorizationヘッダ)の取得は出来ません。'AUTH_TYPE'も取得不可ですし、BASIC認証の場合でも'PHP_AUTH_USER'、'PHP_AUTH_PW'が取得出来ません。

エックスサーバのphpがどういう動作かはユーザーであれば既知だと思います。私にはわかりません(前のレスで書いたようにCGI動作だと「推測」はしてますが・・)。

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
動的なURLを静的に見せる方法
 このエントリーをはてなブックマークに追加 
A
普通に考えて、mod_rewrite でしょうね。 http://www.nishishi.com/blog/2006/01/mod_rewrite_url.html...

>>続きを読む

GETのままでは検索エンジンのロボットが拾ってくれなかったためにSEO対策として有効だと言われていますね。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)