2016-11-17 12 views
2

ルートディレクトリから始まるheader('Location:');パスを作成する方法はありますか?PHPヘッダー(場所:)ルートディレクトリでリダイレクト

formaction="/cert/forms/sessions/session-inc-info.php" 

または

include($_SERVER['DOCUMENT_ROOT'].'/cert/forms/sessions/session-inc-info.php'); 

証明書が

IVEは

header('Location:'.$_SERVER['DOCUMENT_ROOT'].'/cert/forms/sessions/session-inc-info.php); 

のようなコードをしようとして私のルートディレクトリのフォルダです:同様

例私は../

header('Location:../../../session-inc-info.php'); 

を使用しているため

header('Location:/cert/forms/sessions/session-inc-info.php'); 

唯一のものは動作しますが、私は、フォルダとサブフォルダをたくさん持っているので、それは私のために難しいです。 と私は多くのスクリプトをリダイレクトする必要があります。

ありがとうございました。

ので、これはsession.phpスクリプトが必要header('Location:');を持つことになりますときにcontent.phpsession.phpにリダイレクトボタンを持っていますし、私は今では既に行われているサンプルフォルダ構造

enter image description here

ですダッシュボードにリダイレクトします。今はそれが私の問題です。私は今

証明書のようなパスを作成する方法---->ダッシュボード-----> dashboard.php

+0

表示するフォルダ構造。 @Vincent – PassionInfinite

+0

@ PassionInfinite ok ...私はサンプルのフォルダ構造を作成します。 –

+0

メインファイルの名前は何ですか - あなたのアプリケーションへのエントリポイントは何ですか? 'index.php'などのようなものです。それはどこに住んでいますか?相対パスを使用してその場所から 'dashboard.php'にリダイレクトするには' CERT'の中にあると仮定します: 'header(" Location:./dashboard/dashboard.php ")'セッションにも同じことがあります。 php'または 'content.php'です。しかし、それらのファイルではありませんヘルパーファイルではないと思われるファイルではなく、公開された(表示される)ファイルに暴露されるファイルですか? – Poiz

答えて

2
header("Location: http://".$_SERVER['HTTP_HOST'].$formaction; 

場所はURLではなく、サーバのファイルパス

+1

ありがとうございます。それは働く。セッションのインフォメーション・インフォメーション・ファイル(id-inc = '。$ id);「 –

0
が含まれている必要がありません

理論的にはアプリケーションのルートにPHPファイルを作成し、好きな名前を付けてください:redirect.phpと言ってください。

<?php 
    // CREATE AN ARRAY THAT WITH NUMERIC KEY 
    // THAT WILL CORRESPOND TO THE FILE YOU WISH TO REDIRECT TO (ACTUALLY LOAD) 
    // SINCE THIS IS A PSEUDO REDIRECT: 
    $fileMap   = array(
     0 => "./file-1.php", 
     1 => "./file-2.php", 
     2 => "./file-3.php", 
     3 => "./file-4.php", 
     4 => "./file-5.php", 
     5 => "./file-6.php", 
     6 => "/cert/forms/sessions/session-inc-info.php", 
     7 => "./../../session-inc-info.php", //<== YOU MAY KEEP ADDING TO LIST 
    ); 

    // CHECK THAT THERE IS A GET PARAM WITH NAME: to 
    if(isset($_GET['to'])){ 
     $fileKey  = $_GET['to'];   //<== GET THE `to` PARAM FROM $_GET 
     $loadableFile = $fileMap[$fileKey]; //<== TRANSLATE `to` KEY TO A LOADABLE FILE 

     // IF THE FILE [$loadableFile] EXISTS, LOAD IT 
     // OTHERWISE REDIRECT TO MAIN-APPLICATION PAGE (HOMEPAGE) 
     if(file_exists($loadableFile)){ 
      require_once $loadableFile; 
     }else{ 
      header("location: index.php");  //<== ASSUMES index.php IS THE MAIN FILE. 
      exit; 
     } 
    } 

    // IF ALL FAILS, STILL REDIRECT TO THE MAIN-APPLICATION PAGE 
    header("location: index.php");    //<== ASSUMES index.php IS THE MAIN FILE. 

次にあなたがリダイレクトを実行したい各ページに、あなたは、単にこのような何かを行うことができます:

次に、この redirect.phpの内側に、あなたはこのようになりますいくつかのコードを入れることができます
<?php 
    // ASSUMING YOU WANT TO RE-DIRECT TO: `./../../session-inc-info.php` 
    // AS YOU CAN SEE FROM THE `$fileMap` ARRAY, `./../../session-inc-info.php` 
    // HAS THE KEY OF "7" 
    // NOW ALL YOU CAN DO IS SIMPY APPEND "?to=7" TO `redirect.php` 
    // IN THE `header()` METHOD LIKE THIS: 
    header("location: redirect.php?to=7"); 
    exit; 
    /*EXPECTED TO LOAD THE FILE: `./../../session-inc-info.php` 

注:
ティsは実際にはリダイレクトではありません(基本的には、指定されたロケーション/パスからファイルをロードするだけですが、/cert/forms/sessions/session-inc-info.phpのようなファイルをロードしようとしているようですが、これはオプションかもしれません)。実際のリダイレクトを行うには、リダイレクト先のURL(正確なURL)を直接渡すheader()関数を使用します。ルートディレクトリから

乾杯とグッドラック...

+0

」回答ありがとうございます.. –

関連する問題