Skocz do zawartości
Zaloguj się, aby obserwować  
1q2w3e4r

$_SERVER['SERVER_PORT'] oraz $_SERVER['REMOTE_ADDR'] nie wyświetlają poprawnych danych

Polecane posty

Witam,

 

Mam problem 2 problemy.

1.

Nie działa zmienna $_SERVER['SERVER_PORT'] tak jak powinna. Zawsze wykrywa port 8081

Zamiast wpisując odpowiednio adres w przeglądarce http => 8081, a https => 443.

Dlatego nie działa deklaracja:

if($_SERVER['SERVER_PORT'] == 443)
{
$path = 'https://domena.pl';
}
else
{
$path = 'http://domena.pl';
}

Jeszcze się zastanawiam czy ma to być $_SERVER['SERVER_PORT'] czy $_SERVER['REMOTE_PORT'] ?

 

2. $_SERVER['REMOTE_ADDR'] zawsze ma IP serwera. Gdzie i jak to zmienić aby było IP usera?

 

Mam postawione to na nginx.

 

Proszę o pomoc, jak mam to ustawić.

Pozdrawiam

Edytowano przez 1q2w3e4r (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Przyczyny mogą być dwie:

1) Twój nginx pracuje jako proxy i nie forwarduje w żądaniu nagłówków;

2) Stoisz za jakimś dziwnym NATem, gdzie twój adres IP jest wystawiony przez jakieś zewnętrzne proxy.

 

PS: Nie prościej zastosować konstrukcję

if(isset($_SERVER['HTTPS']))

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Tak, @up ma racje. Korzystam z podobnej konfiguracji. To wszystko mam w pliku konfiguracyjny nginxa a nie .php. Jesli backendem jest apache to musisz miec mod_rpaf bo inaczej niewazne co tam napiszesz i tak nie bedzie przekazywac prawdziwego ip ;)

W mod_rpaf musisz okreslic czego bedziesz uzywal X-forwarded-for czy X-real-ip tak samo jak w nginx.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×