Wątek zablokowany 2011-01-15 12:11 przez Demonical Monk.

[PHP] Automatyczne przekierowanie

0

Witam,
Moj problem polega na tym, ze potrzebuje zrobic automatyczne przekierowanie, tyle ze problem jest taki ze potrzebuje na ta docelową stronę wysłać pewną zmienną, a niestety funkcja header('location:costam.php') nie działa, tzn. nie moge podawać parametrów po rozszerzeniuj .php, czyli metoda get odpada, zreszta nie chcialbym ta metoda przesylac bo niestety obniza mi bezpieczenstwo mojej stronki.
Tak wiec, zostaje metoda POST, jak moze zrobic automaczyne przekierowanie ta metodą, od biedy moze byc i get, byle bylo automatycznie ;-))

Z gory dzieki za pomoc.
pozdr

0
Gość napisał(a)

[...] niestety funkcja header('location:costam.php') nie działa, tzn. nie moge podawać parametrów po rozszerzeniuj .php, czyli metoda get odpada [...]

Po czym wnioskujesz? :P U mnie bez problemu działa:
header('Location coś.php?parametr=10');

0
Gość napisał(a)

zreszta nie chcialbym ta metoda przesylac bo niestety obniza mi bezpieczenstwo mojej stronki

od kiedy get obniza bezpieczenstwo? o_O Przeciez POST niewiele ciezej da sie zedytowac / podejrzec o_O

0
thenkles napisał(a)

Po czym wnioskujesz? :P U mnie bez problemu działa:
header('Location coś.php?parametr=10');

A u mnie nie dziala ;)

0

Dobra z ta zmienna sobie poradzilem ciasteczkami, ale teraz potrzebuje funkcji ktora opoznia to automatyczne przekierowanie, taki delay() - jest cos takiego w php?

0

obadaj meta-refresh

0

Meta-refresh to inna kwestia. W PHP jest sleep(), ale z tym trzeba uważać (jest to wliczane w czas wykonywania skryptu, a co za tym idzie przy dłuższym czekaniu serwer może Ci przerwać działanie skryptu i strona zamiast się przekierować, to wyrzuci błąd). Dodatkowo użytkownik widzi cały czas ładującą się stronę, przez co po chwili może uznać, że coś mu się skopało (przez tyle czasu nic się nie ładuje...) i wyłączyć stronę lub próbować ją odświeżać (i błędne koło). Meta-refresh albo odświeżanie w JS wydaje się być lepszym pomysłem przy dodatkowym komunikacie, że za x czasu nastąpi przekierowanie.

0

może coś takiego:

<script language="javascript"> <?php print "location.replace(\"http://www.eksiegarnia.net\");" ?> </script>

powinno działać ;) jak coś to wołaj :)

0

Albo:

<script language="javascript">
<!--
  window.location = "<?=$ADRES_DO_PRZEKIEROWANIA?>";
-->
</script>

gdzie $ADRES_DO_PRZEKIEROWANIA to zmienna w PHP oczywiście :)

0

Radzę zobaczyć funkcję:

<?
//ZMIENNE DO EDYCJI
$URL="index.php?main"; //URL do pliku
$sec=0; //Liczba sekund opóźnienia
	
//CZĘŚĆ NIE DO EDYCJI
header("refresh: ".$sec.";URL=".$URL);
?>

bardzo proste i stosowane na wielu stronach.

PS. Od kiedy stosowanie metody GET jest niebezpieczne? [???] Ja tu widzę poważne przekłamanie [!!!]

0

osobiście proponuje

 
<?php
header("Location: index.php"); //przekierowanie lokalne
header("Location: http://www.example.com/"); //przekierowanie na adres zdalny
?>

więcej na: http://pl.php.net/manual/pl/function.header.php

1 użytkowników online, w tym zalogowanych: 0, gości: 1