1
は私のウェブサイトのフォルダ構造です:ページを自分自身にリダイレクトするにはどうすればよいですか?ここ
myweb/
index.php
files/
autoloader.php
login.php
そして、ここでは私のスクリプトです:
// login.php
class login{
public function __construct() {
function signed(){
header('Location: ../');
exit;
}
}
public function index(){
echo isset($_SESSION['error_message']) ? $_SESSION['error_message'] : null;
if ($_SESSION['login'] == 1) {
signed();
}
$_SESSION['login'] = 1;
if ($_SESSION['login'] == 1) {
$_SESSION['error_message'] = 'something is wrong';
header('location: ../login?arg=value');
}
}
}
私はこのパスを読み込む場合:
:ここlocalhost/myweb/login
は2例です
$_SESSION['login']
が1
に等しいです:私のスクリプトは、このパスに私をリダイレクトします。localhost/myweb
$_SESSION['login']
は1
に等しくない:私のスクリプトは、このパスに私をリダイレクトします。localhost
最初のケースは結構です、私は期待どおりに動作します意味します。しかし、2番目のケースは間違っている、私はそれが期待どおりに動作しないことを意味します。後者の場合は、localhost/myweb/login?arg=value
ではなく、localhost
というパスにリダイレクトされます。さて、どうすれば修正できますか?
注:すべてのページがindex.phpを通過します。また、index()
機能はデフォルトであり、URLに言及する必要はありません。私が使用することができます:代わりの
header("Refresh:0");
:
は、私は解決策を持っている
header('location: ../login?arg=value');
をしかし、単に小さな問題があります:はパラメータを渡すには。では、どうすればheader("Refresh:0");
と?arg=value
を一緒に使うことができますか?
は何の 'QUERY_STRING'ありませんが、私は今、それを追加します。 $ _SERVER ['QUERY_STRING'] 'はこの場合常に空です。 –
'$ _SERVER ['PHP_SELF']。"? "。'を使用し、クエリ文字列は –
の後にあります。私はそれを試し、あなたがそれが働いているかどうかを知らせます。 –