Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Pobieranie domeny do zmiennej
Forum PHP.pl > Forum > PHP
yasiek
Załóżmy, że do jednego serwera podpiętych jest kilka domen. Teraz w zależności od tego, która domena jest wybrana, ładują się odpowiednie dane z bazy. Tylko jak pobrać, z której domeny przeglądany jest portal? Np phpinfo daje tylko wiadomości o serwerze, podobnie tablica $_SERVER. Z góry dzięki za pomoc smile.gif
Riklaunim
$_SERVER['HTTP_HOST'] starczy smile.gif
LaughFik
A jeśli strona znajduje się w jakimś podkatalogu ?
Jak pobrać ten katalog ?
No i jeszcze jak sprawdzić czy znajduje się w podkatalogu bo jeśli nie to nie ma potrzeby pobierania nazwy tego podkatalogu.
igors
Przykład z manuala
  1. <?php
  2.  
  3. // this is config.php, and it is in <installation_path>
  4. // it is included by <installation_path>/page.php
  5. // it is included by <installation_path>/subfolder/page2.php
  6. // etc
  7.  
  8. $_REAL_SCRIPT_DIR = realpath(dirname($_SERVER['SCRIPT_FILENAME'])); // filesystem path of this page's directory (page.php)
  9. $_REAL_BASE_DIR = realpath(dirname(__FILE__)); // filesystem path of this file's directory (config.php)
  10. $_MY_PATH_PART = substr( $_REAL_SCRIPT_DIR, strlen($_REAL_BASE_DIR)); // just the subfolder part between <installation_path> and the page
  11.  
  12. $INSTALLATION_PATH = $_MY_PATH_PART
  13. substr( dirname($_SERVER['SCRIPT_NAME']), 0, -strlen($_MY_PATH_PART) )
  14. : dirname($_SERVER['SCRIPT_NAME'])
  15. ; // we subtract the subfolder part from the end of <installation_path>, leaving us with just <installation_path> :)
  16.  
  17. ?>


To, o co prosić, jest zawarte w zmiennej $INSTALLATION_PATH

I pobaw się warunkami.
fridek
Podepnę się z pytaniem, żeby nie zaśmiecać.
Czy jest możliwość sprawdzenia, czy użytkownik wpisał "www.strona.pl" czy samo "strona.pl"?
Nie wiem czemu AJAXy na stronie traktują to jako dwie różne domeny.
igors
$_SERVER['SERVER_NAME']

Jeżeli wchodzisz przez www.mojastrona.pl, to wartość zmiennej będzie właśnie taka i odpowiednio dla mojastrona.pl

Nie wiem, czy się nie mylę.
fridek
Niestety, mylisz się winksmiley.jpg
Nie wiem czy to kwestia konfiguracji, ale na moim serwerze żadna zmienna z $_SERVER nie zawiera "www"
pbnan
Cytat(fridek @ 5.04.2007, 11:09:31 ) *
Podepnę się z pytaniem, żeby nie zaśmiecać.
Czy jest możliwość sprawdzenia, czy użytkownik wpisał "www.strona.pl" czy samo "strona.pl"?
Nie wiem czemu AJAXy na stronie traktują to jako dwie różne domeny.

Raczej nie. Jeśli wpiszesz "strona.pl" to przeglądarka doda domyślnie (znaczy - nie zobaczysz tego ;]) "www.", ponieważ "www." jest główną (main) subdomeną. smile.gif
fridek
Cytat(pbnan @ 5.04.2007, 12:39:35 ) *
Raczej nie. Jeśli wpiszesz "strona.pl" to przeglądarka doda domyślnie (znaczy - nie zobaczysz tego ;]) "www.", ponieważ "www." jest główną (main) subdomeną. smile.gif


Tak też myślałem, ale kiedy wchodzę na domenę www.strona.pl i ładuję AJAXem dane z http://strona.pl - nic się nie dzieje. Tak samo jeśli domena jest bez www, a AJAX ładuje z www. Nie ma tego efektu kiedy domeny się zgadzają.
Problem byłby rozwiązany, gdybym mógł ładować zawartości wg względnych ścieżek, ale używając mod_rewrite nie mam takiej możliwości.
LaughFik
Dobra wyjaśnij mi w takim razie po co pozostały kod skoro i tak i tak zawsze wykonywany będzie drugi warunek w sensie to po dwukropku. 'dirname($_SERVER['SCRIPT_NAME'])'
Poza tym skrypt nie zwraca mi domeny z katalogiem jeśli jest tylko sam katalog lub backslasha.
To nie jest to o co mi chodziło no i skrypt jest źle napisany.
pbnan
Cytat(LaughFik @ 5.04.2007, 12:49:09 ) *
Dobra wyjaśnij mi w takim razie po co pozostały kod skoro i tak i tak zawsze wykonywany będzie drugi warunek w sensie to po dwukropku. 'dirname($_SERVER['SCRIPT_NAME'])'
Poza tym skrypt nie zwraca mi domeny z katalogiem jeśli jest tylko sam katalog lub backslasha.
To nie jest to o co mi chodziło no i skrypt jest źle napisany.

Hę? Ten problem jest już rozwiązany, fridek się tylko podpiął do tego tematu smile.gif
fridek
Mój problem również rozwiązany:

  1. <?php
  2. new Ajax.Updater(tab.content.id,'http://strona.pl/index/page/pl/'+tab.content.id, 
  3. {
  4. onException : function() 
  5. {
  6. new Ajax.Updater(tab.content.id, 'http://www.strona.pl/index/page/pl/'+tab.content.id);
  7. },
  8. onFailure : function() 
  9. {
  10. new Ajax.Updater(tab.content.id, 'http://www.strona.pl/index/page/pl/'+tab.content.id);
  11. }
  12. });
  13. ?>


Ajax.Updater zazwyczaj wyrzuca wyjątek jesli nie uda mu się załadować treści, onFailure zostawiłem na wszelki wypadek
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.