Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Przekierowanie podczas kliknięcia w submit
Xtremex
post 22.12.2008, 12:09:09
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 28.07.2007

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


Witam wszystkich.
Temat ostatni napisałem i piszę drugi, ponieważ minęło sporo czasu i ciut się prośba zmienia.

Chciałbym aby podczas, gdy formularz zostanie wysłany przejść na inną stronę (przykładowo www.wp.pl).
Oto kod
  1. <?php
  2. if (count($_POST))
  3. {
  4.    ////////// USTAWIENIA //////////
  5.    $email = 'mail';
  6.    $subject = 'temat';
  7.    $charset = 'iso-8859-2';
  8.  
  9.    //////////////////////////////
  10.    $head =
  11.        "MIME-Version: 1.0r\n" .
  12.        "Content-Type: text/plain; charset=$charsetr\n" .
  13.        "Content-Transfer-Encoding: 8bit";
  14.    
  15.    foreach ($_POST as $name => $value)
  16.    {
  17.        if (is_array($value))
  18.        {
  19.            for ($i = 0; $i < count($value); $i++)
  20.            {
  21.                $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "r\n";
  22.            }
  23.        }
  24.        else $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "r\n";
  25.    }
  26.    mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head);
  27. }
  28. else
  29. {
  30. ?>
  31. <script type='text/javascript'>g_FormName = "Imie";g_FieldName = "IMIE";</script>Prosze o wypelnienie formularza<br/><br/><form action="?" method="post" name="Imie">
  32.  
  33. <?php
  34. }
  35. ?>


Teraz moje pytanie: jak to zrobić?
Kiedy wstawialem header, wyskakiwal blad. Kiedy umieszczałem ob_start() i ob_end_flush(), błąd był taki sam.
Czy mógłby ktoś mi pomóc i umieścić to przekierowanie w moim kodzie?
Z góry dziękuję.


Pozdrawiam,
Xtremex

Ten post edytował Xtremex 22.12.2008, 12:12:43
Go to the top of the page
+Quote Post
Crozin
post 22.12.2008, 12:12:51
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Dodanie po mail(...)
  1. <?php
  2. header('Location: <a href=\"http://wp.pl');&#092;" target=\"_blank\">http://wp.pl');</a> exit;
  3. ?>
Przy powyższym kodzie powinno nie skutkować błędem.
Czy jest to cały plik, czy może wczytujesz go wewnątrz innego?
Go to the top of the page
+Quote Post
Xtremex
post 22.12.2008, 15:56:44
Post #3





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 28.07.2007

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


Parse error: syntax error, unexpected '&' in /var/www/sites/yoyo.pl/d/e/[str]/index.php on line 662
Jest to linia, gdzie wstawiłem twoją linię.
Go to the top of the page
+Quote Post
erix
post 22.12.2008, 16:12:12
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Nie przepisuj co do joty, bo parser na forum nawala.
Kod
header('Location: http://adres.pl');


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Crozin
post 22.12.2008, 16:18:33
Post #5





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Po wykonaniu nagłówka przekierowania warto dodać coś w stylu:
  1. <?php
  2. die('Przekierowanie na wp.pl');
  3. ?>
Aby mieć pewność, że gdyby użytkownik wyłączył przekierowania nie miał dostępu do reszty danych.
Go to the top of the page
+Quote Post
Xtremex
post 22.12.2008, 16:28:19
Post #6





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 28.07.2007

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


Kod
Warning: Cannot modify header information - headers already sent by (output started at /var/www/sites/yoyo.pl/d/e/[str]/index.php:7) in /var/www/sites/yoyo.pl/d/e/[str]/index.php on line 662


Teraz mam tak:
  1. <?php
  2. if (count($_POST))
  3. {
  4.   ////////// USTAWIENIA //////////
  5.   $email = 'mail';
  6.   $subject = 'temat';
  7.   $charset = 'iso-8859-2';
  8.  
  9.   //////////////////////////////
  10.   $head =
  11.       "MIME-Version: 1.0r\n" .
  12.       "Content-Type: text/plain; charset=$charsetr\n" .
  13.       "Content-Transfer-Encoding: 8bit";
  14.  
  15.   foreach ($_POST as $name => $value)
  16.   {
  17.       if (is_array($value))
  18.       {
  19.           for ($i = 0; $i < count($value); $i++)
  20.           {
  21.               $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "r\n";
  22.           }
  23.       }
  24.       else $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "r\n";
  25.   }
  26.   mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head);
  27. header('Location: <a href=\"http://wp.pl');&#092;" target=\"_blank\">http://wp.pl');</a>
  28. }
  29. else
  30. {
  31. ?>
  32. <script type='text/javascript'>g_FormName = "Imie";g_FieldName = "IMIE";</script>Prosze o wypelnienie formularza<br/><br/><form action="?" method="post" name="Imie">
  33.  
  34. <?php
  35. }
  36. ?>
Go to the top of the page
+Quote Post
erix
post 22.12.2008, 16:44:19
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Wpisz sobie treść błędu do wyszukiwarki...

Było SETKI razy.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Xtremex
post 22.12.2008, 16:48:19
Post #8





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 28.07.2007

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


Napisałem, że ob_start() i ob_end_flush() nic mi nie zmienia i błąd jest taki sam.
Go to the top of the page
+Quote Post
erix
post 22.12.2008, 16:49:17
Post #9





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Ale jest taki mały szczegół - ob_start" title="Zobacz w manualu PHP" target="_manual musi być dodany na samym początku pliku.

Poza tym, nie wiem, czy czytałeś o BOM.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
piotrooo89
post 22.12.2008, 17:04:32
Post #10


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




klik napisane jak najprościej umiałem...


--------------------
Go to the top of the page
+Quote Post
Xtremex
post 22.12.2008, 17:22:49
Post #11





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 28.07.2007

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


Aktualnie mam tak
Kod
<?php
                ob_start();
if (count($_POST))
{
    ////////// USTAWIENIA //////////
    $email = 'mail';
    $subject = 'temat';
    $charset = 'Unicode UTF-8';    

    //////////////////////////////
    $head =
        "MIME-Version: 1.0\r\n" .
        "Content-Type: text/plain; charset=$charset\r\n" .
        "Content-Transfer-Encoding: 8bit";
    
    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";
    }
    mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head);
    header('Location: http://wp.pl');
}
else
{
?>
<script type='text/javascript'>g_FormName = "Imie";g_FieldName = "IMIE";</script><br/><form action="?" method="post" name="Imie">

<?php
}
ob_end_flush();
?>

Poczytałem również o BOM'ie (ustawiłem kodowanie strony na UTF-8) i nadal wyskakuje błąd podczas kliknięcia w submit:
Kod
Warning: Cannot modify header information - headers already sent by (output started at /var/www/sites/yoyo.pl/d/e/[str]/index.php:7) in /var/www/sites/yoyo.pl/d/e/[str]/index.php on line 665




PS. Zamieniłem kodowanie w <meta> oraz w skrypcie.
EDIT:
@UP
Kiedy dodaję
Kod
session_start();

wyskakują mi kolejne błędy:
Kod
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /var/www/sites/yoyo.pl/d/e/[str]/index.php:7) in /var/www/sites/yoyo.pl/d/e/[str]/index.php on line 640

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/sites/yoyo.pl/d/e/[str]/index.php:7) in /var/www/sites/yoyo.pl/d/e/[str]/index.php on line 640


Ten post edytował Xtremex 22.12.2008, 17:41:57
Go to the top of the page
+Quote Post
piotrooo89
post 22.12.2008, 17:42:44
Post #12


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




sprawdz czy nie masz jakiegoś "białego" znaku przez ob_start... a z tego co widzę to masz tam jakąś spacje.


--------------------
Go to the top of the page
+Quote Post
wrzasq
post 22.12.2008, 17:48:47
Post #13





Grupa: Zarejestrowani
Postów: 206
Pomógł: 18
Dołączył: 6.03.2006
Skąd: Szczecin

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


@piotrooo89: ale w kodzie PHP moze byc.

@Xtremex: czy to jest CALY PLIK? czy tylko jakis "caly fragment"? nie masz przed otwarciem znacznika <?php niczego? albo nie inkludujesz tego pliku gdzies indziej? jesli nie, to tak jak poprzednicy mowili poczytaj o BOM. nie piszesz czasem w notatniku? i jaki to server? moze trzymasz na jakims darmowym serwerze, ktory automatycznie zalacza jakas tresc na pcozatku...


--------------------
Go to the top of the page
+Quote Post
Xtremex
post 22.12.2008, 18:00:32
Post #14





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 28.07.2007

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


@wrzasq
Nie jest to cały plik, lecz tylko część.
Piszę w notatniku++ (Notepad++)
Jest to na darmowym serwerze Yoyo.pl
Go to the top of the page
+Quote Post
piotrooo89
post 22.12.2008, 18:07:26
Post #15


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




pokaż pierwsza linie pliku.


--------------------
Go to the top of the page
+Quote Post
wrzasq
post 22.12.2008, 18:08:56
Post #16





Grupa: Zarejestrowani
Postów: 206
Pomógł: 18
Dołączył: 6.03.2006
Skąd: Szczecin

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


yoyo.pl chyba dodaje swoje reklamy na sam poczatek i wydaje mi sie ze nie robia tego zadnym filtrem na koniec, ale wrzucaja po prostu bezmyslnie przed skrypt. ale moge sie mylic. natomiast skoro to nie caly plik, to czy masz cos przed tym blokiem kodu PHP? przed znacznikiem <?php.

-edit-

wlasnie zobaczylem twoje logi:

Kod
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/sites/yoyo.pl/d/e/[str]/index.php:7) in /var/www/sites/yoyo.pl/d/e/[str]/index.php on [b]line 640[/b]

linia 640?! to ty tam pewnie caly skrypt przed soba masz. eh... czy ludzia juz na prawde trzeba lopata wszystko tlumaczyc? trudno pomysles samemu? ob_start() ma byc na SAMYM POCZATKU PLIKU! myslisz, ze to magiczna linijka, ktora cofnie cos, co juz sie stalo?

Ten post edytował wrzasq 22.12.2008, 18:11:09


--------------------
Go to the top of the page
+Quote Post
Xtremex
post 22.12.2008, 18:56:38
Post #17





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 28.07.2007

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


Umieściłem na samym początku ob_start(), lecz jest tak samo, z tym że napisane jest, że w 1 linii ten błąd.
Sprawdzałem też na własno postawionym serwerze - żadnego efektu.
@wrzasq
Przed tym kodem co podałem mam 640 linii.
@piotrooo89
Kod
<html>
Go to the top of the page
+Quote Post
piotrooo89
post 22.12.2008, 19:06:47
Post #18


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




twoja pierwsza linia powinna wyglądać tak:
  1. <?php
  2. ?>
  3. <html>


a ostatnia:
  1. </html>
  2. <?php
  3. ?>


Ten post edytował piotrooo89 22.12.2008, 19:07:35


--------------------
Go to the top of the page
+Quote Post
Xtremex
post 22.12.2008, 19:32:38
Post #19





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 28.07.2007

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


Bardzo dziękuję wszystkim za pomoc. Troszkę się zamotałem i "nie słyszałem jak się do mnie mówi", lecz wreszcie udało się smile.gif Jeszcze raz bardzo wszystkim dziękuję oraz życzę Wesołych Świąt :]



Pozdrawiam,
Xtremex
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: 24.06.2025 - 13:51