• 締切済み

header関数の使い方について

現在、下記WebプログラムがPHP等にて開発可能か検討しております。 前提1:既存の認証画面と認可アプリは、カスタマイズを行えない。(共にソースは非公開) 前提2:認証画面からHTTPヘッダに付加してアプリを呼び出し、アプリ側にて値を取得しています。      また、HTTPヘッダの設定内容は判明しております。 前提条件の環境で、HTTPヘッダ情報を強制的に変更する必要が発生してしまい、PHPのheader関数を使用できないか調べております。 認証画面から新プログラム(PHP等)を経由してアプリを呼び出しするように変更した場合、header関数は有効な使い方となりますでしょうか? またアプリのURLを呼び出し時に、考慮しないといけない点とかもあるのでしょうか? 該当する参考のページが見つかりませんでしたので、質問させていただきました。 よろしくお願いします。

みんなの回答

回答No.1

確認になりますが 認証画面は HTTP Request hader に添加するでよろしいですか? 変更したいのは HTTP Request header でよろしいですか? その場合は、PHP の header 関数は、 HTTP Response header を生出力するための関数ですので不適当です。 下のようにフィルタを加えた構成でいいと思います。 認証画面(認証モジュール) → フィルタ → アプリ たぶん、↓のHTTPモジュールをつかえばできると思います。 http://www.php.net/manual/ja/book.http.php

114c
質問者

お礼

返事が遅くなり、申し訳ございません。 状況が変わりまして今回は別の方法となりましたが、ご回答を頂きました内容は 大変参考にさせて頂きました。 ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • header() 関数が必要になる場面は?

    http://php.net/manual/ja/function.header.php にheader() 関数の使い方が説明されていますが、 生の HTTP ヘッダを送信するというのは、オートで送信されているのを カスタマイズしてサーバーの動きを操作するということですよね。 この関数を利用するのは、どういった場合に必要になるのでしょうか。

    • ベストアンサー
    • PHP
  • header関数について

    私の認識としてはheader関数とはhtml内にある<head>内の代替わりだと思っていたのですが、それではheader関数の意義がないと思い、質問させていただきました。 php内でhtmlを書く場合、header関数を使わずに、<head>内で <meta http-equiv=\"Content-Type\" content=\"text/html\; charset=euc-jp\">\n"; のように書けばいいと思うのですが、なぜ header("Content-Type: text/html; charset=EUC-JP"); のように書く必要があるのでしょう?何かメリットでもあるのでしょうか? それとも私のheader関数に対する認識がずれていますか? php初心者というより、プログラム事態をあまり書いたことがないため、理解が乏しいです。header関数とhtml内での<head>間に書く違いを教えてください。よろしくお願いします。

    • ベストアンサー
    • PHP
  • header関数について

    header関数について独自関数を絡ませたいのですがいい方法が 思いつかず悩んでおります。 パソコン用、携帯用サイトがあり携帯サイトのみheaderで飛ばした URLの最後にセッションを付加したいと思っております。 // 分岐により携帯であればセッションを変数作成しています。 $sis_id = '?' . session_name() . '=' . session_id(); // パソコンであれば$sis_idはnullなのでこの状態でもなにも付加されません。 header('Location: hoge.php' . $sis_id); ここまでは問題ないのですが以下のようにURLに他のパラメーターを 持っている場合どうすればいいでしょうか? header('Location: hoge.php?id=5' . $sis_id); これだと$sis_idの頭は?ではなく&が必要になりますよね。 仮に$sis_idの?を外して以下のように書き換えるという手も考えた のですがパソコンの場合hoge.php?id=5&のようなURLになってしまいます。 header('Location: hoge.php?id=5&' . $sis_id); if文で分岐させそれぞれの飛び先をべた書き指定すれば済む話 なのですがソースを簡略化させたく独自関数などで自動化できない ものかと思っております。 詳しい方がおりましたら是非アドバイスなど宜しくお願い致します。

    • ベストアンサー
    • PHP
  • WordPress 自作header2.php

    ヘッダーをカスタマイズして、別名header2.phpで保存しました。 home.php内にあるget_header();をどうやったらheader2.phpを使うようにしたら良いでしょうか? get_header(2);とどこかで見たような気がしましたので、やってみましたけど、カスタマイズしてないheader.phpが読み込まれています。 header2.phpではなく、他にいい方法がありましたら、教えて下さい。 宜しくお願いします。

    • 締切済み
    • PHP
  • header()関数について

    先日i-mode向けのサイトをphpとSmartyを使い作成したとき、疑問に思った事があったので質問させていただきます。 900系以上の端末とそれ以下の端末で別々のテンプレートを使い画面を出し分けていました。 900系の端末ならばXHTMLでi-CSSが使えるとの事でしたのでDoCoMoのサイトを見ながら作っていたのですが、最初うまくCSSが機能しませんでした。 結果から言うと、テンプレートに書いていたmetaタグの内容ををphp側でheader()を使い、吐き出すことによって動作させることができました。 http://php.s3.to/man/function.header.html 上記を見ると「生のHTTPヘッダ文字列を送信 するために使用します」と書かれていますが、テンプレートの<head>~</head>に直接書いてダメな理由が分かりません。 もしも単純にXHTMLのみでphpを使用しない場合、どうすればいいのか等、疑問があります。 ■header()と<head>~</head>に直接書く場合の相違点 ■phpを使わない場合はi-CSSって使えるのか? 以上ご存知の方がいらっしゃいましたらご教授願います。

    • ベストアンサー
    • PHP
  • PHP header関数が使えない

    OS:Linux PHP、Postgres のシステム環境です。 現在PHPのheader()関数が動いてくれません。 (リダイレクトできない。) <HTML> <HEAD><TITLE>aaaa</TITLE></HEAD> <BODY> <?php header('Location: http://aaa.com/'); ?> </BODY> </HTML> こんな風にHTMLタグなにか出力した後にheader関数を呼び出すとエラーになり、headerのコールはすべての出力の前に行うこととサイトで調べてみまして分かったのですが。 あるシステムではHTMLタグの中に入れてもheader関数は問題なく動いています。 php.iniの設定なのでしょうか、それともプログラムの記述方法で回避できるのでしょうか? このおかげで膨大な修正が必要になりました。 回避策はございますでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • headerのマニュアルを見ると

    <?php // 日付が過去 header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // 常に修正されている header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // HTTP/1.1 header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); // HTTP/1.0 header("Pragma: no-cache"); ?> という記述がありますが http1.0とhttp1.0の両方の記述をしなければならないのでしょうか? またPHPページの記述にはすべてこのヘッダをつけるべきなのでしょうか?

    • ベストアンサー
    • PHP
  • mail関数のheader情報

    PHPのmail関数のheader情報には、メールの件名、送り先メールアドレス、差出人メールアドレス等々が指定できますが、上記以外に独自の(独自に作成した基準の)情報を加えてもメールの送受信に問題は起こらないのでしょうか? 例えば、ヘッダー情報に「AB123」など独自の記号を加えて、受信者のメールソフト内で、その記号により自動的にメールを振り分けたいのですが? もちろんこれには、受信者がメールのヘッダーに独自の記号が不可さていることを予め知っていて、かつ、メール振り分け機能のついたメールソフトを使用していることが前提です。 また、上記が可能な場合、そのやり方などが詳しく記載されているサイトなどお知りでしたら、お教え下さい。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • HEADERについて

    無知でお恥ずかしいのですが、PHPで出力する際 header("Content-Type: text/html;charset=EUC-JP"); などと最初にヘッダーを出力すると思うのですが、例えばtest.phpが以下のようになっていた場合でもPHPでヘッダーを出力する必要があるのでしょうか? test.php ※1<?php header("Content-Type: text/html;charset=EUC-JP"); ?> <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="TEXT/HTML; CHARSET=EUC-JP"> <TITLE></TITLE></HEAD> <BODY> TEST <?php echo $test; ?> </BODY> </HTML> 参考書などを見てみると「全ての出力の前に記述する必要がある」と書いてあるだけで、書かずとも正常に表示されますし、仮に文字化けしても <META HTTP-EQUIV="Content-Type" CONTENT="TEXT/HTML; CHARSET=EUC-JP"> と追加すれば文字化けも解決するので、疑問は感じつつも思い出したときにPHPにもヘッダを記述するようにしていたのですが、少しづつPHPを勉強しやれる事が増えてくる内に、記述してあるものと記述して無いものが混在してきて気持ち悪く感じてきました。 皆さんはどのようにされていますか? ※他サイトで配布されているPHPスクリプトなども見てみたのですが、毎回記述している方、一切記述していない方それぞれでした。 あと、全く違う質問ですが、MYSQL接続中にエラー処理でexit;する場合、exit;する前にMYSQL接続を切断する必要ってあるのでしょうか?

    • ベストアンサー
    • PHP
  • PHPのheaderの「一度に複数のヘッダを送信」とは?

    VBAやフォートランは我流で経験してますが、PHP初心者です。 ご教示願います。 「PHP マニュアル」のサイトでheader関数の説明で、 http://jp.php.net/manual/ja/function.header.php 次のような説明を見つけました。 「4.4.2 および 5.1.2 この関数は一度に複数のヘッダを送信できないようになりました。 これは、ヘッダインジェクション攻撃への対策です。」 とありますが、 「一度に複数のヘッダを送信」とはどういうことでしょうか? 同じページの例に、 <?php $last_modified_time = filemtime($file); $etag = md5_file($file); header("Last-Modified: ".gmdate("D, d M Y H:i:s", $last_modified_time)." GMT"); header("Etag: $etag"); if・・・中略・・・} ?> とありますが、 この2つの「header」は「一度に複数のヘッダを送信」にはあたらないのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP