Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Location na serwerze
Forum PHP.pl > Forum > Przedszkole
Crash89
Jak na serwerze skorzystać z funkcji header

Mam prostą stronę gdzie chce skorzystać z funkcji header gdzie chcę przekierować stronę na inną stronę w projekcie:

lokalnie działa coś takiego:

  1. header("Location: index_en.php")


natomiast na serwerze próbowałem róznych sposobów łącznie z __DIR__
takie coś zwraca nulla:
  1. header("Location: " . __DIR__ . "index_en.php")


pozdrawiam
Pyton_000
Co to znaczy nie dzała.
Crash89
Cytat(Pyton_000 @ 14.10.2018, 16:22:05 ) *
Co to znaczy nie dzała.


Nie rozumiem?
Nie mam nigdzie tak napisane w poście
viking
Cytat
Return Values
No value is returned


Także na pewno nie zwraca null. Sprawdź logi i wklej komunikat chociaż wiadomo że wysyłasz coś wcześniej.
Crash89
Cytat(viking @ 14.10.2018, 16:50:36 ) *
Także na pewno nie zwraca null. Sprawdź logi i wklej komunikat chociaż wiadomo że wysyłasz coś wcześniej.


Strona jest na serwerze nazwa.pl tam logi sa takie:

  1. [Tue Oct 16 12:16:31.367998 2018] [proxy_fcgi:error] [pid 22:tid 139808343758592] [client 193.106.30.98:60760] AH01071: Got error 'Primary script unknown\n'


A to jest cały kod z którego korzystam(na serwerze jest PHP 5.6):

  1. <?php
  2. if (explode(';',explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE'])[1])[0] == 'pl' || $_GET['language'] == 'pl') {
  3.  
  4. } else {
  5. header("Location: index_en.php");
  6. }
  7.  
  8.  
  9. ?>
trzczy
Ten error występuje, jak nie ma pliku index.php albo jest w niewłaściwej lokalizacji, czyli nie ma go w webroot. Albo w apache wartość index nie jest ustalona na index.php

Zrób test z najprostszym kodem:

  1. hello world
Crash89
Cytat(trzczy @ 16.10.2018, 14:00:19 ) *
Ten error występuje, jak nie ma pliku index.php albo jest w niewłaściwej lokalizacji, czyli nie ma go w webroot. Albo w apache wartość index nie jest ustalona na index.php

Zrób test z najprostszym kodem:

  1. hello world


Dałem
  1. echo "hello world"; die();

i to działa, działa cały kod php tylko header("Location:") nie działa.

Cytat(Crash89 @ 16.10.2018, 15:09:08 ) *
Dałem
  1. echo "hello world"; die();

i to działa, działa cały kod php tylko header("Location:") nie działa.


Narazie dodałem coś takiego zamiast header i to działa
echo "<script type='text/javascript'>window.location.href = 'index.php?language=pl';</script>";
die();

ale wolałbym użyć header zamiast javascriptu.
nospor
Skoro header ci nie dziala znaczy ze ze przed header leci jakis tekst do przegladarki. Wszystko bys widzial jak na dloni jakbys wlaczyc wyswietlanie WSZYSTKICH bledow
Pyton_000
Raz dajesz

Kod
Location: index_en.php

a raz

Kod
'index.php?language=pl'

Crash89
Cytat(Pyton_000 @ 16.10.2018, 15:52:28 ) *
Raz dajesz

Kod
Location: index_en.php

a raz

Kod
'index.php?language=pl'


To jest chyba skopiowane z pliku index_en.php

Taki mam komunikat:
  1. Warning: Cannot modify header information - headers already sent by (output started at /home/p/ftp/F/index.php:2) in /home/p/ftp/F/index.php on line 11
nospor
nom czyli jak mowilem: przed headerem wysylasz jakis tekst do przegladarki i masz nawet wyraznie napisane gdzie:
index.php linia 2
trzczy
Czyli to nieprawda, że lokalnie działa, jak autor napisał w 1. poście
nospor
@trzczy ale czemu nie? Lokalnie moze dzialac bo lokalnie ma ustawipone buforowanie na poziomie konfiguracji php a na serwerze tego nie ma temu sie wykrzacza
Crash89
Cytat(nospor @ 16.10.2018, 17:30:20 ) *
nom czyli jak mowilem: przed headerem wysylasz jakis tekst do przegladarki i masz nawet wyraznie napisane gdzie:
index.php linia 2


W 2 linijce mam tylko
  1. <?php
potem lecą ify i na podstawie tych ifów jest header Location
nie ma nic więcej w kodzie.
Gdzieś wyczytałem że trzeba dodać ob_start() na początku skryptu, ale to nic nie zmienia.
trzczy
A co masz w 1. linijce?
StrefaPi
BOM Byte Order Mark?
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.