Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] przekierowanie po komunikacie
Forum PHP.pl > Forum > Przedszkole
kaljaam
witam

mam mały problem.

otóż potrzebuję po wyświetleniu komunikatu z podziękowaniem za wypełnienie formularza przekierować automatycznie użytkowników do konkretnej strony. gdzie wstawić ten parametr?? header ("Location: http://www.xxx.pl/");

pozdrawiam


<?php
if (count($_POST))
{
////////// USTAWIENIA //////////
$email = [email=""]'xxx@xxx.pl'[/email]; // Adres e-mail adresata
$subject = 'Dane kontaktowe dotyczące pobrania specyfikacji przetargowej'; // Temat listu

$message = 'Dziękujemy za wysłanie formularza'; // Komunikat
$error = 'Wystąpił błąd podczas wysyłania formularza'; // Komunikat b__du

$charset = 'iso-8859-2'; // Strona kodowa
//////////////////////////////

$head =
"MIME-Version: 1.0\r\n" .
"Content-Type: text/plain; charset=$charset\r\n" .
"Content-Transfer-Encoding: 8bit";
$body = '';
foreach ($_POST as $name => $value)
{
if (is_array($value))
{
for ($i = 0; $i < count($value); $i++)
{
$body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "\r\n";
}
}
else $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "\r\n";
}
echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;
}


else
{

}


?>
Ar2r
Do automatycznego przekierowania możesz na stronie z podziękowaniami użyć:
  1. <meta http-equiv="refresh" content="5;url=http://www.xxx.xx">
kaljaam
Ale na serwerze takiej strony nie mam sad.gif

To jest tylko komunikat message.
Czy nie można ustawić inaczej przekierowania??

Nie musi być podziękowania - może być natychmiastowe przekierowanie. To przekierowanie jest dla mnie ważniejsze.
Ar2r
Najprościej jeśli nie chcesz tworzyć dodatkowej strony z podziękowaniami (i przekazywać do niej wartości zmiennej message) dodaj po wyświetleniu komunikatu skrypt JS
  1. function przekieruj()
  2. {
  3. window.location="http://www.xxx.pl";
  4. }
  5.  
  6. setTimeout('przekieruj()',10000);


W przypadku natyhmiastowego przekierowania bez komunikatu zastosuj wspomniany przez Ciebie header
kaljaam
wlasnie o tego headera mi chodzi - ale ja nie wiem gdzie go wstawić, w które miejscie - bo nie działa mi to przekierowanie. Ponoc header nie działa, gdy używamy właśnie komunikatów w nagłówki, ale jak je wywaliłem i też mi nie działał nie wiem konkretnie, w które miejsce użyć headera.

Chodzi o to, że jak wypełnią formularz i wyślą mi swoje dane na pocztę, to mają mieć przekierowanie do strony z dokumentami.

Koniecznie muszę zrobić przekierowanie w tym kodzie co mam teraz... cala strona oparta jest o PHP Jportal.


Proszę o podanie, w które konkretnie miejsce wstawić komendę header, bo już probowałem na różne sposoby i albo jest ignorowana, albo wyskakuje błąd.
pzdr
Ar2r
Przed nagłówkiem nie można wysyłać tekstu na ekran.
Zmodyfikuj linie wysyłającą email:
  1. <?php
  2. if(mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head)) header("Location: xxxxxx");
  3. ?>
kaljaam
Bardzo dziękuję.

Właśnie o to mi chodziło.

Pozdrawiam serdecznie
gox
po co javascript? zeby nie zadzialalo jak ktos ma wylaczony?

header("refresh: 5; url=lala.php");
kaljaam
Jak już pisałem ten header jest już w porządku i działa bez problemu.
Jeżeli to możliwe w tym kodzie, który mam proszę o podanie komendy, która umożliwi mi zablokowanie wszystkich komórek w taki sposób, aby musieli wpisywać chociażby głupoty. Ważne żeby je wypełnili, żeby przycisk nie działał do póki nie wypełnią pól.

Chodzi o to, że cwaniaczki klikają na to i wysyłają mi puste maile, a ja musze mieć wykaz osób nawet jeżeli ten wykaz będzie fałszywy. Związane jest to z wymogami UE dotyczącymi przetargu finansowanego przez UE. Pomimo, że to idiotyzm i każdy może wpisać fałszywe dane to jednak konieczne jest, aby cokolwiek tam było wpisane, żeby się do mnie nie czepiali. Proszę o pomoc.
Kicok
  1. <?php
  2.  
  3. if( empty( $_POST['pole1'] ) || empty( $_POST['pole2'] ) || empty( $_POST['pole3'] ) /* ... */ )
  4. {
  5. echo 'Nie wypełniłeś(aś) wszystkich pól.';
  6. }
  7. else
  8. {
  9. // procedura słania maila
  10. }
  11.  
  12. ?>




[EDIT]
Cytat
Przekopiuj mój kod i wklej od razu w konkretne miejsce proszę sad.gif...

Chyba śnisz ;]
kaljaam
szkoda sad.gif

Bo nie do końca wiem jak to ma być wklejona ważniejsze jest dla mnei przekierowanie , a boje się, że je rozwalę.
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.