Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] w jaki sposob przekierowac uzytkownika na inna podstrone?
Forum PHP.pl > Forum > PHP
blokern
Hej po przeslaniu formularza chcialem odswiezyc strone za pomoca
  1. header('Location: '.$domain.'login.php?id='.$_POST['id'].'');

ale jak sie okazuje funkcja nie dziala. pewnie uslugodawca ją wyłączył
jak moge w inny sposob odswiezyc strone po wyslaniu formularza metoda post?
dzieki

zrobilem tak

  1. echo '<script> location.href = "'.$domain.'login.php?id='.$_POST['id'].'"; </script>';


ale to chyba mocna bieda?
trueblue
A po funkcji header dodałeś exit?
dublinka
Co nie dziala? Rozumiem ze to id jest z jakiegos pola. Wywal to i sprawdz to z sama zmienna systemowa

  1. header("location: " . $_SERVER["SCRIPT_NAME"] . "?id=" . $_POST["id"]);




blokern
funkcja header nie dziala
dublinka
Cytat(blokern @ 2.02.2021, 23:11:13 ) *
funkcja header nie dziala

Ale co nie dziala. Pierwsze sie spotykam z tym zeby header nie dzialal.
Daj tu kawalek kodu
Smoker
header działa na pewno, cos musiałeś zrobić źle. Gdybyś napisał co nie działa tzn jaki dokładnie dostajesz błąd byłoby łatwiej ale spróbuję:

1. słowo "Location" piszemy z dużej litery, nie jestem pewien czy to jest problemem, ale warto spróbować

2. po wysłaniu nowego headera poleceniem header() skrypt nie przestaje wykonywać kodu w pliku, a zapewne chcesz aby tak się zadziało -> przekierowanie i nie wyświetlamy dalej tego co poprzednia strona oferowała, aby to zrobić trzeba skorzystać z metody exit() lub die() w kolejnej linijce zaraz po header()

  1. header('Location: http:// www.example.com/');
  2. exit;


3. wysłanie headera nie zadziała jeżeli ten został już wysłany wcześniej, oznacza to w skrócie tyle, że nie możesz go użyć jeżeli wcześniej wysłałeś już jakikolwiek kod html do przeglądarki. Oczywiście da się to tak czy siak zrobić, np zbierając kod do buffora i wyjmując gdzieś na końcu skryptu. Warto jednak zadbać by logika wywołująca header() działa się przed wyświetlaniem kodu html
LowiczakPL
można zrobić w poniższy sposób, dodając do twojego form onsubmit

Kod
<form onsubmit="setTimeout(function(){window.location.reload();},10);">
Tomplus
z jakiego hostingu korzystasz?
dublinka
Cytat(Smoker @ 3.02.2021, 20:32:35 ) *
header działa na pewno, cos musiałeś zrobić źle. Gdybyś napisał co nie działa tzn jaki dokładnie dostajesz błąd byłoby łatwiej ale spróbuję:

1. słowo "Location" piszemy z dużej litery, nie jestem pewien czy to jest problemem, ale warto spróbować

Nie ma znaczenia.

Cytat(Smoker @ 3.02.2021, 20:32:35 ) *
2. po wysłaniu nowego headera poleceniem header() skrypt nie przestaje wykonywać kodu w pliku

Nastepuje przekierowanie. Exit daje tylko pewnosc ze bedzie STOP bo tego my chcemy,

  1. <?php
  2.  
  3. header("location: index2.php");
  4.  
  5.  
  6. echo "bleeeeeeeee";
  7. ?>


to to samo co

  1. <?php
  2.  
  3.  
  4. header("location: index2.php");
  5.  
  6. echo "bleeeeeeeee";
  7. ?>

Dla pewnosci stosowac exit ale mozna i bez.
mozna tez i tak:

  1. exit(header("location: index2.php"));
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.