Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Header location - prawidłowy zapis
tenloginjestzaje...
post 2.01.2015, 20:14:05
Post #1





Grupa: Zarejestrowani
Postów: 358
Pomógł: 1
Dołączył: 20.07.2014

Ostrzeżenie: (0%)
-----


Witam
mam problem z kodem, nie wiem jak powinien być prawidłowy zapisany:
  1. <?php
  2. header('Location: 'str_replace('%B9','a',
  3. str_replace('%9C','s',
  4. str_replace('%9F','z',
  5. str_replace('%B1','a',
  6. str_replace('%E6','c',
  7. str_replace('%EA','e',
  8. str_replace('%B3','l',
  9. str_replace('%F1','n',
  10. str_replace('%F3','o',
  11. str_replace('%B6','s',
  12. str_replace('%BC','z',
  13. str_replace('%BF','z',
  14. str_replace('%20','_',rawurlencode($row['nazwa']))))))))))))))
  15. );
  16. ?>


Wyskakuje błąd, dziękuje za pomoc.


--------------------
Nigdy nie zapominam kliknąć "pomógł". Zastosowanie na stronie [prosze nie spamuj]
Go to the top of the page
+Quote Post
sazian
post 2.01.2015, 20:22:01
Post #2





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

Ostrzeżenie: (0%)
-----


Cytat(tenloginjestzajety @ 2.01.2015, 20:14:05 ) *
Wyskakuje błąd

fajne, a jaki ?
Go to the top of the page
+Quote Post
tenloginjestzaje...
post 2.01.2015, 20:28:02
Post #3





Grupa: Zarejestrowani
Postów: 358
Pomógł: 1
Dołączył: 20.07.2014

Ostrzeżenie: (0%)
-----


Warning: Cannot modify header information - headers already sent by (output started at /mojadomena.pl/index.php:1) in /mojadomena.pl/index.php on line 3


--------------------
Nigdy nie zapominam kliknąć "pomógł". Zastosowanie na stronie [prosze nie spamuj]
Go to the top of the page
+Quote Post
sazian
post 2.01.2015, 20:29:42
Post #4





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

Ostrzeżenie: (0%)
-----


wywal wszystkie znaki które są przez <?php
Go to the top of the page
+Quote Post
tenloginjestzaje...
post 2.01.2015, 21:41:05
Post #5





Grupa: Zarejestrowani
Postów: 358
Pomógł: 1
Dołączył: 20.07.2014

Ostrzeżenie: (0%)
-----


Dziękuje, błędów nie wyrzuca jednak nie zmienia znaków a adresie przeglądarki, ma ktoś jakiś pomysł?

Problem polega na tym, że ludzie wpisuje wulgarne słowa w mojadomena.pl/slowo.. i google to indeksuje i nie wiem jak to zablokować..


--------------------
Nigdy nie zapominam kliknąć "pomógł". Zastosowanie na stronie [prosze nie spamuj]
Go to the top of the page
+Quote Post
Rysh
post 2.01.2015, 23:50:37
Post #6





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

Ostrzeżenie: (0%)
-----


Z pewnością brakuje Ci kropki po Location.
http://ideone.com/ICAl93


--------------------
Go to the top of the page
+Quote Post
tenloginjestzaje...
post 3.01.2015, 10:38:18
Post #7





Grupa: Zarejestrowani
Postów: 358
Pomógł: 1
Dołączył: 20.07.2014

Ostrzeżenie: (0%)
-----


W mojej ocenie problemem jest chyba serwer, ponieważ na wszystkich stronach jak w zmienisz adres url i naciśniesz enter to i tak wraca do pierwotnej wersji. U mnie zostaje i przez to google indeksuje śmieci oraz nie działa header location. Serwer mam w home..


--------------------
Nigdy nie zapominam kliknąć "pomógł". Zastosowanie na stronie [prosze nie spamuj]
Go to the top of the page
+Quote Post
trueblue
post 3.01.2015, 11:22:50
Post #8





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Dla nieistniejących stron należy wygenerować nagłówek http ze statusem 404, albo w kodzie, albo poprzez .htaccess. Serwer bez Twojej ingerencji tego nie obsługuje.


--------------------
Go to the top of the page
+Quote Post
tenloginjestzaje...
post 3.01.2015, 13:02:16
Post #9





Grupa: Zarejestrowani
Postów: 358
Pomógł: 1
Dołączył: 20.07.2014

Ostrzeżenie: (0%)
-----


Niestety nie działa zamiana zastosowana w header. Stosuję ją w linkach itd na stronie i działa prawidłowo ale w header nie reaguje, sama komenda działa, ponieważ po wpisaniu np. test w location przekierowuje.. Nie mam już pomysłów. Pomóżcie..


--------------------
Nigdy nie zapominam kliknąć "pomógł". Zastosowanie na stronie [prosze nie spamuj]
Go to the top of the page
+Quote Post
trueblue
post 3.01.2015, 13:21:40
Post #10





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Pokaż jak wprowadziłeś zmianę.


--------------------
Go to the top of the page
+Quote Post
tenloginjestzaje...
post 3.01.2015, 13:38:58
Post #11





Grupa: Zarejestrowani
Postów: 358
Pomógł: 1
Dołączył: 20.07.2014

Ostrzeżenie: (0%)
-----


Problem w tym, że w ogóle nie odczytuje zmiennych, mały test:

DZIAŁA
  1. <?php
  2. header("HTTP/1.1 301 Moved Permanently");
  3. header('Location: '.'test');
  4. ?>


NIE DZIAŁA
  1. <?php
  2. header("HTTP/1.1 301 Moved Permanently");
  3. header('Location: '.$header);
  4. $header = 'test';
  5. ?>


NIE DZIAŁA
A zmiana wygląda tak ( działa wszędzie poza header ):
  1. <?php
  2. header("HTTP/1.1 301 Moved Permanently");
  3. header('Location: '.str_replace('%B9','a',
  4. str_replace('%9C','s',
  5. str_replace('%9F','z',
  6. str_replace('%B1','a',
  7. str_replace('%E6','c',
  8. str_replace('%EA','e',
  9. str_replace('%B3','l',
  10. str_replace('%F1','n',
  11. str_replace('%F3','o',
  12. str_replace('%B6','s',
  13. str_replace('%BC','z',
  14. str_replace('%BF','z',
  15. str_replace('%20','_',rawurlencode($row['nazwa']))))))))))))))
  16. );
  17. ?>


--------------------
Nigdy nie zapominam kliknąć "pomógł". Zastosowanie na stronie [prosze nie spamuj]
Go to the top of the page
+Quote Post
trueblue
post 3.01.2015, 13:42:48
Post #12





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


  1. header('Location: '.$header);
  2. $header = 'test';

Tu przypisujesz wartość zmiennej po wywołaniu header.

Pisałeś wcześniej, że zaindeksowało Ci strony z wulgarnymi słowami w adresie. Tego nie rozwiążesz z pomocą statusu 301, a jeszcze pogorszysz sprawę. Nieistniejące adresy należy wygenerować ze statusem 404.

Ten post edytował trueblue 3.01.2015, 13:43:31


--------------------
Go to the top of the page
+Quote Post
tenloginjestzaje...
post 3.01.2015, 13:55:04
Post #13





Grupa: Zarejestrowani
Postów: 358
Pomógł: 1
Dołączył: 20.07.2014

Ostrzeżenie: (0%)
-----


Udało się ale wyskakuje teraz:
Zapętlenie przekierowań na stronie


--------------------
Nigdy nie zapominam kliknąć "pomógł". Zastosowanie na stronie [prosze nie spamuj]
Go to the top of the page
+Quote Post
trueblue
post 3.01.2015, 14:35:26
Post #14





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Na jaki adres przekierowujesz, pod jakim adresem jest przekierowanie za pomocą header?


--------------------
Go to the top of the page
+Quote Post
Rysh
post 3.01.2015, 14:38:42
Post #15





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

Ostrzeżenie: (0%)
-----


Daj takie coś:
  1. header("HTTP/1.0 404 Not Found");

Dla wszystkich nieistniejących/wulgarnych zapytań.


--------------------
Go to the top of the page
+Quote Post
tenloginjestzaje...
post 3.01.2015, 14:52:11
Post #16





Grupa: Zarejestrowani
Postów: 358
Pomógł: 1
Dołączył: 20.07.2014

Ostrzeżenie: (0%)
-----


Wszystko działa poza jednym, tworzy się pętla co jest oczywiste, ponieważ non stop zmienia adres url. Jak więc tego uniknąć?

To przekierowanie wykorzystuje do duplikatu URL podstron z pl i bez pl znaków ( obie wersje zaindeksowane przez google :/ ) sytuacja wygląda tak:
mojadomena.pl/podstrona%9C - tą wersje miałem kiedyś.. Nadal jest w google..
zamienia na
mojadomena.pl/podstronas - tą wersje mam na stronie w postaci linków i tytułów.

Problem w tym, że jest to ta sama strona tylko z nowym adresem bez krzaków i powstaje pętla przekierowań.

  1. <?php
  2. $header = str_replace('%B9','a',
  3. str_replace('%9C','s',
  4. str_replace('%9F','z',
  5. str_replace('%B1','a',
  6. str_replace('%E6','c',
  7. str_replace('%EA','e',
  8. str_replace('%B3','l',
  9. str_replace('%F1','n',
  10. str_replace('%F3','o',
  11. str_replace('%B6','s',
  12. str_replace('%BC','z',
  13. str_replace('%BF','z',
  14. str_replace('%20','_',rawurldecode(substr($_SERVER['REQUEST_URI'],
  15. (strrpos($_SERVER['REQUEST_URI'],'/',-2)+1))))))))))))))));
  16. header("HTTP/1.0 404 Not Found");
  17. header('Location: '.$header);
  18. ?>


Lub jak za pomocą header htaccess blokować strony, które w adresie mają krzaki..

Ten post edytował tenloginjestzajety 3.01.2015, 15:07:39


--------------------
Nigdy nie zapominam kliknąć "pomógł". Zastosowanie na stronie [prosze nie spamuj]
Go to the top of the page
+Quote Post
trueblue
post 3.01.2015, 15:16:06
Post #17





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Powinieneś przekierować tylko takie adresy, które chcesz przekierować.
W tym kodzie przekierowujesz bezwarunkowo.


--------------------
Go to the top of the page
+Quote Post
tenloginjestzaje...
post 3.01.2015, 15:41:08
Post #18





Grupa: Zarejestrowani
Postów: 358
Pomógł: 1
Dołączył: 20.07.2014

Ostrzeżenie: (0%)
-----


Problem rozwiązany, zrobiłem przekierowanie na osobny katalog, w którym zamieściłem ten sam kod bez header eliminując pętle. Dziękuje bardzo Wszystkim za pomoc!


--------------------
Nigdy nie zapominam kliknąć "pomógł". Zastosowanie na stronie [prosze nie spamuj]
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 11:23