Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Header
Forum PHP.pl > Forum > Przedszkole
MateuszS
Witam. Chciałem się dowiedzieć jak mogę po wykonaniu instrukcji if (true) przejść na inną stronę. Znalazłem w manualu

Kod
<?php

header('location [strona/plik]');

?>


więc go użyłem w prostym skrypcie

Kod
<?php

$test = $_POST['test'];

if($test == 1)
{
header('location: www.google.pl');
}
else
{
header('location: prostoliniowy.php';
}

?>


Jednak nie dziala... wywalając

Kod
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\fizyka\new.php:14) in C:\xampp\htdocs\fizyka\new.php on line 20


Te manuale jednak nie zawsze pomagają...
piotrooo89
byłoo tysiące razy... szukajka gryzie? klik
MateuszS
tam nawiasu zapomnialem domknąć ale nie o to chodzi ;]
MateuszS
Kod
<?php
  
      ob_start();

  
  $test = $_POST['test'];
  
  if($test == 1)
  {
  header('location: www.google.pl');
  }
  else
  {
  header('location: prostoliniowy.php');
  }
  
ob_end_flush();



  ?>


i wywalilo setki Warningow smile.gif
piotrooo89
a zrobiłeś wszystko co było napisane? podkreślam wszystko...
MateuszS
Nawet wiecej. To kodowanie zmienilem, tez uzywam notepad++
piotrooo89
i na pewno nie masz nic przed <?php?
erix
Kod
header('location: www.google.pl');

A myślałem, że protokołem jest http://, a nie www.
than
Sprawdź czy wcześniej nie ma nigdzie funkcji wyświetlającej tekst na ekranie (np. echo, print) i przed znakami <?php nie ma żadnych znaków.
MateuszS
Mam formularz ;>

Kod
<html>
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>

<body>
<form method="post" id="form" name="form">

<input type="text" size="20" name="test">
<br />
<input type="submit" value="Dalej">


to mam przed tym

Erik. probowalem i z http
erix
Cytat
Erik. probowalem i z http

Nie jestem erik tongue.gif

Pokaż, jak próbowałeś, bo mam pewne wątpliwości.
piotrooo89
to już wiesz dlaczego Ci sypie błędami. wstaw php na sam początek. i pamiętaj o usunięciu białych znaków (spacja, enter, tab).
MateuszS
Erix przepraszam ;]

Gdy dalem tak:

Kod
<?php

    ob_start();
    

$test = $_POST['test'];

if($test == 1)
{
header('location: http://www.google.pl');
exit;
}
else
{
header('location: prostoliniowy.php');
exit;
}

ob_end_flush();


?>

<html>
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>

<body>
<form method="post" id="form" name="form">

<input type="text" size="20" name="test">
<br />
<input type="submit" value="Dalej">

</form>
</body>
</html>


Wywala tylko ten error nawet formularza nie widać.
than
Hmm, daj treść błędu.
MateuszS
OK Juz dziala

Kod
echo '<META HTTP-EQUIV="Refresh" CONTENT="1;URL=http://twojadres.pl">';


;]
decha-design
Cytat(MateuszScirka @ 23.12.2008, 22:16:13 ) *
OK Juz dziala

Kod
echo '<META HTTP-EQUIV="Refresh" CONTENT="1;URL=http://twojadres.pl">';


;]


tak, gratulacje ... widzę, że piszemy strony ze standardami ... zapewne jeszcze to wstawileś w sekcji BODY? hę? snitch.gif
than
Oj czepiasz się ;p

Przecież to tylko 'lekkie' nagięcie standardów, a jakie wygodne smile.gif
piotrooo89
Cytat(than @ 23.12.2008, 23:48:05 ) *
Oj czepiasz się ;p

Przecież to tylko 'lekkie' nagięcie standardów, a jakie wygodne smile.gif


co rozumiesz przez to stwierdzenie? lekkie? to jakie jest wielkie?
than
A widzisz może te apostrofy?.. Nie dają do myślenia?
decha-design
nie kłócic się =))

to jest 'lekkie' nagięcie, ja się czepiam ... jeszcze niech formularz w tabelki wrzuci i będzie COOL! haha.gif
than
Taa, wtedy to już tylko strict deklarować ;]
Tajgeer
Kod
<?php
ob_start();
    
if(isset($_POST['test'])) {

$test = $_POST['test'];

if($test == 1) {
header('Location: http://www.google.pl');
exit;
} else {
header('Location: prostoliniowy.php');
exit;
}

} else {


echo '<html>
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>

<body>
<form method="post" id="form" name="form">

<input type="text" size="20" name="test">


<input type="submit" value="Dalej">

</form>
</body>
</html>';

}

ob_end_flush();
?>


Nie lepiej było to rozwiązać w ten sposób?
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.