Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] 2 adresy z NO-IP i 2 strony na tym samym serwerku
Forum PHP.pl > Forum > Przedszkole
alexsanetra
Witajcie

Mam 2 adresy na NO-IP i chciałbym wykryć z którego adresu ktoś wchodzi. w zależności od tego został by przekierowany na odpowiednie strony mojego małego serwerka.

- "pierwszy adres na NO-IP" przekierowanie na "serwerek/~pierwsza_strona"
- "drugi adres na NO-IP" przekierowanie na "serwerek/~druga_strona"
(Obie strony na tym samym serwerku - to samo IP)

Prawdę powiedziawszy to nawet nie wiem czego szukać i jak mogła by się nazywać taka funkcja. Wiem, że coś takiego musi istnieć, bo widziałem, na różnych skryptach "statystykach", liczniki np kto wchodził na stronę z googla.

Próbowałem także szukać, w ustawieniach serwera NO-IP.COM czy czegoś takiego nie ma, ale jakoś nie znalazłem (jak już wcześniej powiedziałem, mogłem nie wiedzieć jak taka funkcja się nazywa).


Proszę o pomoc i sugestie, bo może można to "załatwić" inaczej (java?)
ChrisB
Zakładając że masz dostęp do serwera (a chyba masz skoro noip używasz;) , i zakładając że używasz apacha to:
Tworzysz virutalne hosty w apachu: (link dla wersji apache 2.0)

http://httpd.apache.org/docs/2.0/mod/core.html#virtualhost
Amorph
A czy nie jest tak, jak konfiguruje w Apachu virtuala to muszę podać ip serwera... A jak podać ip serwera skoro jest dynamiczne questionmark.gif? (chyba po to no-ip.org)?
Można też:
  1. <?php
  2. $_SERVER['HTTP_HOST'];
  3. ?>

i na tej podstawie przekierowywać smile.gif
ChrisB
można i tak:)

ale w virtualnych hostach można również domeny podawać, niekoniecznie ip:

* The IP address of the virtual host;
* A fully qualified domain name for the IP address of the virtual host;
* The character *, which is used only in combination with NameVirtualHost * to match all IP addresses; or
* The string _default_, which is used only with IP virtual hosting to catch unmatched IP addresses.
alexsanetra
Gdzieś popełniłem błąd. Cały czas wybiera mi pierwszy adres. (to że z 2 adresów zrobiło się więcej nie ma znaczenia - robiłem to dla eksperymentów)


  1. <?php
  2. // Pierwszy adres
  3. if ($_SERVER['HTTP_POST']='jakas_nazwa1.no-ip.info'){ print ("Przypełzłeś z jakas_nazwa1.no-ip.info");}
  4.  
  5. // Drugi adres
  6. else if ($_SERVER['HTTP_POST']='jakas_nazwa2.no-ip.info'){ print ("Przypełzłeś z jakas_nazwa2.no-ip.info");}
  7.  
  8. // Trzeci adres
  9. else if ($_SERVER['HTTP_POST']='jakas_nazwa3.no-ip.info'){ print ("Przypełzłeś z jakas_nazwa3.no-ip.info");}
  10.  
  11. // Czwarty adres
  12. else if ($_SERVER['HTTP_POST']='jakas_nazwa4.no-ip.info'){ print ("Przypełzłeś z jakas_nazwa4.no-ip.info");}
  13.  
  14. // Piąty adres
  15. else if ($_SERVER['HTTP_POST']='jakas_nazwa5.no-ip.info'){ print ("Przypełzłeś z jakas_nazwa5.no-ip.info");}
  16.  
  17. // Jak by co
  18. else {print ("Cholera wie skąd Cię przyniosło");}
  19. ?>


przy switch ... case też wybierana była tylko pierwsza możliwość więc stale popełniam ten sam błąd mad.gif

Oczywiście potem (jak wybieranie zadziała, to chce użyć. Header('HTTP/1.1 301 Moved Permanently'); i zoptymalizuje to (by np ciągle nie wywoływać "$_SERVER['HTTP_POST']".

(jak zwykle rozłożyłem się na jakiejś banalnej sprawie mad.gif )
maryaan
skad zes wytrzasnal ta zmienna $_SERVER['HTTP_POST']? zreszta i tak bedzie wybierana pierwsza mozliwosc bo zamiast porownania == uzywasz przypisania =
alexsanetra
Mój błąd ,oczywiście miało być $_SERVER['HTTP_HOST']. Wstyd przyznać, gapiłem się przez godzinę w ten skrypcik i nie widziałem tak oczywistej rzeczy, szkoda, że nie piłem wtedy piwka, bo bym zrzucił to na "pomroczność jasną"

Dzięki wszystkim, którzy pomogli - w sprawie, która jak zwykle okazała się banalna blinksmiley.gif


Tak to powinno wyglądać (z moimi adresami działa), może komuś się przyda.
  1. <?php
  2. $padres = $_SERVER['HTTP_HOST'];
  3.  
  4. if ($padres=='jakas_nazwa1.no-ip'){
  5. $adres = 'http://adres_do_przekierowania1/';
  6. Header('HTTP/1.1 301 Moved Permanently');
  7. Header('Location: '.$adres);}
  8.  
  9. else if ($padres=='jakas_nazwa2.no-ip'){
  10. $adres = 'http://adres_do_przekierowania2/';
  11. Header('HTTP/1.1 301 Moved Permanently');
  12. Header('Location: '.$adres);}
  13.  
  14. ...
  15. // ewentualne kolejne warunki
  16. ...
  17.  
  18. // Przekierowanie do strony głównej - na wszelki wypadek, czy to jest potrzebne tego nie wiem.
  19. // u mnie skrypt jest pod 'index.php' a pod 'index1.php' strona serwerka
  20. else {
  21. $adres = 'http://strona_glowna_serwerka/index1.php';
  22. Header('HTTP/1.1 301 Moved Permanently');
  23. Header('Location: '.$adres);}
  24. ?>
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.