2016-11-17 2 views
2

Есть ли способ создать путь header('Location:');, который начинается с корневого каталога.PHP-заголовок (расположение :) перенаправление с корневым каталогом

Примеры Как:

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

или

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

серт моя папка корневой каталог

ив пытался коды как

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

и

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

единственное работает для меня использует ../

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

, но это трудно для меня, потому что у меня есть много папок и подпапок. и у меня так много скриптов, которые нужно перенаправить.

Спасибо.

так это структура папок образца

enter image description here

так content.php будет кнопка, которая перенаправляет на session.php и я уже сделал это и теперь, когда session.php сценарий будет иметь header('Location:');, который должен переадресовать на dashboard.php. теперь это моя проблема. я не теперь, как создать путь

серт ----> панель -----> dashboard.php

+0

Показать структуру папок из корневого каталога. @Vincent – PassionInfinite

+0

@PassionInfinite ok ... я создам структуру папок. –

+0

Какое имя основного файла - точка входа в ваше приложение? Что-то вроде 'index.php' или подобное. И где он живет? Предполагая, что он живет внутри 'CERT', для перенаправления на' dashboard.php' из этого местоположения с помощью относительных путей, вы можете сделать: 'header (" Location: ./dashboard/dashboard.php ")' То же самое для 'session. php' или 'content.php'. Но не те файлы, которые не должны быть помощниками. Файлы, а не файлы, которые будут публиковаться (отображаются)? – Poiz

ответ

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

место должно содержать URL, а не путь к файлу сервера

+1

Спасибо. он работает. для меня 'header (" Location: http: // ". $ _ SERVER ['HTTP_HOST']. '/ cert/forms/sessions/session-inc-info.php? id-inc ='. $ id);' –

0

вы можете теоретически создать PHP-файл в корневом каталоге вашего приложения и назовите его как угодно: скажем redirect.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. 

Тогда на каждой странице, где вы хотите выполнить перенаправление, вы можете просто сделать что-то вроде этого:

<?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` 

Примечание:
Thi s на самом деле не является переадресацией (поскольку в основном это просто загрузка [в том числе] файлов из данного местоположения/пути, однако, поскольку кажется, что вы пытаетесь загрузить какой-либо файл, например: /cert/forms/sessions/session-inc-info.php, предполагается, что это может быть вариант.Чтобы сделать реальный переадресацию: просто используйте функцию header(), непосредственно передающую ей точный URL-адрес, в который нужно перенаправить.

Приветствия и Good-Luck ...

+0

Спасибо за ответ.. –

Смежные вопросы