dポイントプレゼントキャンペーン実施中!

明けましておめでとうございます。
本年もよろしくお願いいたします。

PHPの記述で
現在、フォルダ名が セッションID を表示していまして
セッションID = 1 の場合
https://hoge.com/1/index.php?sid=1 としてアクセスしているのですが

https://hoge.com/1/index.php へ
?sid=1 の記載がなくアクセスした場合に
sid=1を引き継いで(追記して)index.phpに sid=1 を
渡す記述の仕方はどのようにすればよいのでしょうか?
(尚、フォルダ番号とセッションIDは同じものとします。)

イメージとしては
https://hoge.com/1/index.phpにアクセスした場合
https://hoge.com/1/index.php?sid=1 にリダイレクトする感じです。

尚、以下フォルダ内に 同じindex.php が存在しています。
https://hoge.com/1/index.php
https://hoge.com/2/index.php
https://hoge.com/3/index.php

因みに現在のindex.phpでは以下記述が先頭にあります。

$sid = (isset($_GET["sid"])) ? $_GET["sid"] : $_POST["sid"];
//認証チェック
if(!Ninsyo_chk($sid)){header("Location: err.html");}

御多忙のところ恐縮ですが
PHPの記述法についてご教示いただければ幸いです。

A 回答 (1件)

同じプログラムで各URLを処理したいと言うことですかね。



$_ENV["REQUEST_URI"] を見て、explodeで"/"で分割して 1 を抽出すればいいかと思います。
    • good
    • 0
この回答へのお礼

早々のご教示、ありがとうございました。

<?php
$url = $_SERVER['REQUEST_URI'];
if(strstr($url,'?sid=')==false):
$str = $_SERVER['SCRIPT_NAME'];
$sibnumber = explode("/", $str);
echo 'http://'.$_SERVER['SERVER_NAME'].$sibnumber[1].'/index.php?sid='.$sibnumber[1];
header('Location: https://www.hoge.jp/1/index.html?sid=1');
exit;
?>
<?php endif;
....

このように対応してみました。

お礼日時:2021/01/01 21:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!