■質問 PHP内で、現在の認証エリアのURLを取得する方法を教えてください。 ■詳細 https://knowledge.spirers.jp/article/development/detail/4743 「LINE会員アプリ サイト設計・構築」 のリダイレクトを参考にして、画面遷移先を条件で切り替えようと考えました。下のソースは機能しました。 ここで、現在の認証エリアのURLのフォルダ名(下の「user2」)を自動取得できると、ソースをコピーした場合でもメンテナンスが不要になり、助かります。取得方法があれば、教えてください。 ■ソース //redirect $url=(empty($_SERVER['HTTPS'])?'http://':'https://').$_SERVER['HTTP_HOST']; $rec=DB_ID.".".$answer_id; if(●条件1●){ $SPIRAL->setTHValue('redirectURL',$url.'/user2/ansA?record='.$rec); }else if(●条件2●){ $SPIRAL->setTHValue('redirectURL',$url.'/user2/ansB?record='.$rec); }else{ $SPIRAL->setTHValue('redirectURL',$url.'/user2/ansC?record='.$rec); }
コメント
質問ありがとうございます。 > PHP内で、現在の認証エリアのURLを取得する方法を教えてください。 SPIRALでは、URLを取得する関数は提供していないため、 PHPの「$_SERVER['REQUEST_URI']」にて、URLを取得いただく形になります。 「認証エリアの識別子(今回の例では user2)」を取得するサンプルです。 ご確認をお願いします。
<?php
// ①:$_SERVER['REQUEST_URI']でURLを取得
// ②:「/認証エリア名/ページ名」格納されているので、explode("/",”取得したURL")でURLをスラッシュで配列として分割
$directory = explode("/", $_SERVER['REQUEST_URI']);
// ③:戻ってきた配列の[1]番目の配列値を取得する。
// ④:③で取得した値にパラメータがついている場合、explode("?", "③で取得した値") で「認証エリア名」と「パラメータ」を分割する。
$areaURL = explode("/", $directory[1]);
先にご案内した「認証エリアの識別子」を取得するサンプルに誤りがございましたので、下記の通りに訂正いたします。 誤 「$areaURL=explode("/", $directory[1]);」 正 「$areaURL=explode("?", $directory[1]);」 「?」で「認証エリア名」と「パラメータ」を分割する必要があるため、 explode()の第一引数には"?"をご入力ください。 ソースコードの不備、申し訳ございません。 何卒ご確認のほど、よろしくお願い申し上げます。
<?php
// ①:$_SERVER['REQUEST_URI']でURLを取得
// ②: 「/認証エリア名/ページ名」格納されているので、explode("/",”取得したURL")でURLをスラッシュで配列として分割
$directory=explode("/", $_SERVER['REQUEST_URI']);
// ③:戻ってきた配列の[1]番目の配列値を取得する。
// ④:③で取得した値にパラメータがついている場合、explode("?", "③で取得した値") で「認証エリア名」と「パラメータ」を分割する。
$areaURL_arr=explode("?", $directory[1]);
$areaURL=$areaURL_arr[0];
ベストアンサー
ナレッジ
向上チーム
質問ありがとうございます。 > PHP内で、現在の認証エリアのURLを取得する方法を教えてください。 SPIRALでは、URLを取得する関数は提供していないため、 PHPの「$_SERVER['REQUEST_URI']」にて、URLを取得いただく形になります。 「認証エリアの識別子(今回の例では user2)」を取得するサンプルです。 ご確認をお願いします。
<?php // ①:$_SERVER['REQUEST_URI']でURLを取得 // ②:「/認証エリア名/ページ名」格納されているので、explode("/",”取得したURL")でURLをスラッシュで配列として分割 $directory = explode("/", $_SERVER['REQUEST_URI']); // ③:戻ってきた配列の[1]番目の配列値を取得する。 // ④:③で取得した値にパラメータがついている場合、explode("?", "③で取得した値") で「認証エリア名」と「パラメータ」を分割する。 $areaURL = explode("/", $directory[1]);
2025年9月1日(月)