PHP $ _SERVER

$username; $welcomeMessage; if( isset( $_SESSION['username'] ) ){ $username = $_SESSION['username']; $welcomeMessage = "Hello $username! | "; $welcomeMessage .= '<a href="'.$_SERVER['DOCUMENT_ROOT'].'/nmc/Admin/LogoutProcessor.php">Logout</a>'; } else { $welcomeMessage = "Welcome | "; $welcomeMessage .= '<a href="'.$_SERVER['DOCUMENT_ROOT'].'/nmc/Admin/LoginPage.php">Login</a>'; } 

Приведенный выше код возвращает «файл: /// C: /xampp/htdocs/nmc/Admin/LoginPage.php»

Я использую xampp для разработки веб-сайта, в основном использует собственную обработку сервера, поэтому я не могу использовать указанную выше ссылку. У меня есть несколько веб-страниц в разных каталогах, которые должны ссылаться на LoginPage.php, и мне нужна стандартная ссылка. Вышеприведенный код находится в классе, где его могут вызывать другие страницы в разных каталогах.

Может ли кто-нибудь сказать мне, как решить эту проблему?

Благодаря!

Related of "PHP $ _SERVER"

$ _SERVER ['DOCUMENT_ROOT'] возвращает

Корневой каталог документа, под которым выполняется текущий скрипт, как определено в конфигурационном файле сервера.

Вы можете использовать $_SERVER['HTTP_HOST'] или абсолютные пути, такие как <a href="/nmc/Admin/LoginPage.php">Login</a>

В таких сценариях всегда лучше создавать файл config.php и сохранять его в корневом каталоге. В файле конфигурации вы определяете несколько параметров.

Вызовите этот конфигурационный файл на каждой странице. Ваш конфигурационный файл может быть похож на приведенный ниже.

 define('APP_NAME',"beta"); define('HTTP_SERVER', 'http://localhost/'); define('SITE_NAME', 'http://localhost/'); define('DOCUMENT_ROOT',$_SERVER['DOCUMENT_ROOT'].APP_NAME); 

Вы также можете определить свой каталог для изображений, css и т. Д., Которые, по вашему мнению, будут использоваться в нескольких местах.

Поэтому вместо

 $welcomeMessage .= '<a href="'.$_SERVER['DOCUMENT_ROOT'].'/nmc/Admin/LogoutProcessor.php">Logout</a>'; 

ты можешь написать,

 $welcomeMessage .= '<a href="'.HTTP_SERVER.'/nmc/Admin/LogoutProcessor.php">Logout</a>'; 
  $_SERVER['DOCUMENT_ROOT'] 

возвращает путь физической файловой системы. Это не URL-адрес HTTP.

Попробуйте удалить его, чтобы использовать абсолютный URL-адрес:

  <a href="/nmc/Admin/LoginPage.php">Login</a> 

или попробуйте вместо этого использовать $ _SERVER ['HTTP_HOST'].

BTW, прочитайте документацию $ _SERVER .

Если вы используете Wamp Server или аналогичный, « / » – это корень документа в папке «www» , поэтому вам нужно написать "/yoursitesfoldername/nmc/Admin/LogoutProcessor.php" .

Я унаследовал сайт, который использовал это везде, поэтому, когда я пошел тестировать его с помощью xampp, я в конечном итоге создал виртуальный хост для загрузки сайта.

Подробнее см. В этой статье: http://www.dreamincode.net/forums/topic/307265-change-serverdocument-root-path-for-xammp-light/

Вот мой httpd-vhosts.conf файл:

 <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot "C:/xampp/htdocs/examplesite/nested/path/to/content" ServerName example.localhost ErrorLog "logs/example.localhost-error.log" CustomLog "logs/example.localhost-access.log" common </VirtualHost>