![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
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文で分岐させそれぞれの飛び先をべた書き指定すれば済む話
なのですがソースを簡略化させたく独自関数などで自動化できない
ものかと思っております。
詳しい方がおりましたら是非アドバイスなど宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
文字列操作的な質問ということでいいのでしょうか?
<?php
$sis_id = session_name() . '=' . session_id();
$url = 'oge.php?id=5';
echo addParams($url, $sis_id);
redirect($url, $sis_id);
function addParams($url, $params = null)
{
if (!$params) {
return $url;
}
if (strpos($url, '?') === false) {
return $url . '?' . $params;
}
return $url . '&' . $params;
}
function redirect($url, $params = null)
{
$url = addParams($url, $params);
header('Location: ' . $url);
}
No.1
- 回答日時:
場合分けさえ考えればそんなに難しい話ではないのでは?
たとえばURLに「?」がはいっていれば&でつなぎ、そうでなければ
「?」でつなぐとか、やりようはあるでしょう
<?
$url="hoge.php?id=5";
$sis_id="hoge";
$url.=(preg_match("/\?/",$url)?"&":"?").$sis_id;
header('Location: ' . $url);
?>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP PHPを使って、別サイトの一部を取得して表示したいのです。。 1 2023/01/18 21:45
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- JavaScript Javascript初心者|jQueryの.val()で値を取得し複数の要素を連結させる方法知りたい 2 2022/06/02 12:06
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
- ポイントサービス・マイル Pontaポイントの移行・統合 3 2023/03/06 21:49
- PHP グローバルスコープはありますか? 1 2022/08/08 19:28
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
URLのパラメータをGETのままで...
-
他言語プログラムにて生成され...
-
PerlモジュールのCGI::Session...
-
PHP cookieの値が更新されない...
-
$_SESSION = array() と sessio...
-
セッション ID とセッション名...
-
■(ログイン)セッションの有効期...
-
Sessionの上限について
-
セッション中の1つの変数をuns...
-
【PHP】SESSION変数の競合を...
-
DTOとEntityの差は何ですか。
-
「取得先」という表現について
-
shシェルスクリプト 空白行の...
-
Dosブロンプトでtabを出力したい
-
switch()文で値の大小比較
-
wordの差し込み印刷で文字...
-
ps3で久しぶりにCDの音楽情報取...
-
ローカルのコンピュータ名を取...
-
excel access連携 このテーブル...
-
【C#】DataGridViewの最大列数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
URLのパラメータをGETのままで...
-
PHPのセッション有効期限について
-
セッション変数にパスワードを...
-
複数のサーバで運営する場合の...
-
ログインしたら他からログイン...
-
ブラウザを閉じた後もセッショ...
-
セッションを維持したまま、サ...
-
session_start()で生成されるセ...
-
PHP SESSION変数を複数使用でき...
-
HTTPヘッダー内での順番などに...
-
session_regenerate_id
-
「ログイン機能を持たせる」説...
-
Sessionの上限について
-
ログイン画面をはさんだ後、自...
-
$_SESSIONと、POSTやGETの違い
-
セッション変数の命名規則
-
初歩的な質問 セッション管理に...
-
複数ページでセッションを使わ...
-
セッション ID とセッション名...
-
二重ログイン管理について
おすすめ情報