Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: czyszczenie pól formularza
Forum PHP.pl > Forum > Przedszkole
janek123
Od jakiegoś czasu borykam się z problemem czyszczenia pól w formularzu, po jego wysłaniu (POST).

Umiem zrobić tak, że po obsłudze danych z formularza, ponownie wyświetlam całą stronę z tym formularzem. Chcę jedank powrócić do strony, bez jej przełądowywania. Podpowiedziano mi, że mogę zrobić tak:

  1. <?php 
  2. ?>
  3.  
  4. <?php include "regulamin.php" ?>
  5.  
  6. <?php 
  7. ?>


to jest cały mój index.php
Niestety nie działa, dostaję komunikat:

Warning: Cannot modify header information - headers already sent by (output started at /home/kiermasz/test.kiermasz.radom.pl/zapisz_ogloszenie_do_bazy.php:4) in /home/kiermasz/test.kiermasz.radom.pl/zapisz_ogloszenie_do_bazy.php on line 39

w linii 39 pliku z komunikatu jest wywoałanie header.

  1. <?php 
  2. zapisz_oferte();
  3. header('location:index.php'); 
  4. ?>


Gdzie może być błąd ?
loonger
nie wiem czy dobrze kombinuje ale wystarczy przeczytac komunikat biggrin.gif
Cytat
Warning: Cannot modify header information - headers already sent by // czyli prawdopodobnie funkcja header() zostala uzyta na tym samym pliku dwukrotnie.
(output started at /home/kiermasz/test.kiermasz.radom.pl/zapisz_ogloszenie_do_bazy.php:4) // i to nawet mozna sie domyslac ze w wierszu nr 4
in /home/kiermasz/test.kiermasz.radom.pl/zapisz_ogloszenie_do_bazy.php on line 39


pozdrawiam
milus
Z manuala

.....
Pamiętaj, że header() może być wywoływana jedynie do momentu nim zostanie wysłana jakakolwiek treść, tzn. znaczniki HTML, puste linie lub wynik pracy php. Jest to bardzo częsty błąd, gdzie skrypty z funkcjami include(), require() itp. mają spacje albo puste linie przed wywołaniem funkcji header(). Problem ten pojawia się również w skryptach opartych na pojedynczym pliku php/HTML.
.....

Wydaje mi się, że błąd może być tu, pozdrawiam.
janek123
Dzięki Waszym podpowiedziom rozwiązałem problem.


kod wyglądał tak:
  1. <?php
  2. function zapisz_oferte()
  3.  
  4.  
  5. tu definicja funkcji.
  6.  
  7. ?>
  8.  
  9. <?php zapisz_oferte();
  10. header('location:index.php'); ?>


Były więc dwa bloki <?php ...?>

header wrzuciłem w górny blok, usunąłem puste linie - i poszło.

  1. Bardzo dziękuję.


usunąłem też linie:
  1. <?php 
  2. ?>
  3.  
  4.  
  5. <?php 
  6. ?>
Program działa tak jak powinien, ale nie do końca mi się podoba. Przeładowuje sie cała strona.
Może znacie sposób, by w formularzu, z pliku obsługującego ten formularz, wyczyścić pola formularza, tak by nie przeładowywać całej strony ?

To by było piękne ...

A wszystkie moje próby znalazły odzwierciedlenie tu:
  1. kiermasz.waw.pl
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.