![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 422 Pomógł: 0 Dołączył: 14.12.2005 Skąd: Wałbrzych Ostrzeżenie: (0%) ![]() ![]() |
W skrypcie pisanym przeze mnie jest mozliwosc komentowania newsow ale niestety jak sie wpisze tresc komenta i wysle sie go to po odswiezeniu strony pojawia sie nastepny koment... w jaki sposob temu zapobiec ? probowalem za pomoca header ale sie gryzlo to cos ... czy jest inny sposob ? prosze o podawanie przykladow bo jak ktos bedzie proponowal JS to nie bede wiedzial w jaki sposob to zrobic ....
pozdrawiam -------------------- Postura wielka i morda wredna, jestem Balon, kozak z osiedla !
bzdury.pl - Królestwo rozrywki |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 196 Pomógł: 2 Dołączył: 17.01.2004 Skąd: Sosnowiec Ostrzeżenie: (0%) ![]() ![]() |
Po dodaniu newsa użyj funkcji header( 'Location: ' . $_SERVER[ 'PHP_SELF' ] ); aby przeładować stronę.
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 422 Pomógł: 0 Dołączył: 14.12.2005 Skąd: Wałbrzych Ostrzeżenie: (0%) ![]() ![]() |
to ja korzystałem z podobnego skryptu ale niestety dostaje komunikat
Kod Warning: Cannot modify header information - headers already sent by (output started at /home/soonhost/public_html/balon_portfolio/tmp/2/index.php:17) in /home/soonhost/public_html/balon_portfolio/tmp/2/inc/wiecej.php on line 56 chociaz w pliku dalem buforowanie itd... Nie wiem dlaczego sie tak dzieje bo w panelu admina korzystam z tego samego i działa. Nie chce zadziałać więc zastanawiam się czy jest inne rozwiązanie. -------------------- Postura wielka i morda wredna, jestem Balon, kozak z osiedla !
bzdury.pl - Królestwo rozrywki |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 449 Pomógł: 0 Dołączył: 26.05.2004 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
Ja mam tak
1) po wysłaniu przeladowanie za pomocą header - i juz nikt mi nie wysle drugi raz to samo naciskajac F5 2) ciasteczko lub sesja - nastepną wiadomosc mozna przeslac po 60s 3) wiadomosci zapisywane sa w bazie danych - wiec mozna sprawdzic czy identyczna tresc + imie znajduje sie juz w bazie danych i wyslanie drugiej identycznej kopi tej widomosci mozna blokowac na 24h. Ten post edytował yavaho 13.01.2006, 18:37:09 -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Większość ludzi poleca buforowanie na ominięcie problemu związanego z "headers already sent". Nawet na wiki tak piszą.
A ja twierdzę że to głupota. Jak chcesz kogoś przekierować po wykonaniu pewnych operacji to po kiego cos wyświetlasz? Moja podpowiedź. Po operacjach (i w czasie) zrezygnuj z jakiegokowiek wyświatlania czegokolwiek a potem przekieruj na stroną, na której poinformujsz o powodzeniu lub niepowodzeniu zapisu. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 188 Pomógł: 0 Dołączył: 23.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Dokladnie tak samo mysle. I moznaby powiedziec, ze buforowanie jest niepotrzebne, jednak sa sytuacje kiedy sie przydaje. Czasem spotykalem sie ze skryptem w ktorym ciezko bylo sie polapac, gdyz bylo masa blokow if-else (przez co przeplywa sterowania bylo ciezko zalapac:) ), a trzeba bylo uzyc funkcje modyfikujaca naglowek http, co czesto konczylo sie znanym juz komunikatem "headers alredy sent". W takim wypadku, najlatwiejszym wyjsciem (bez analizowania skryptu i babrania sie) bylo dodanie buforowania (ob_start() na poczatku skryptu) i po sprawie.
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 449 Pomógł: 0 Dołączył: 26.05.2004 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
A ja uzywam bardzo czesto ob_start("ob_gzhandler") I tylko ze wzgledu na korzysci ktore wynikają na zmiejszeniu transferu strony.
@Balon instrukcja ob_start(); musi byc na samym poczatku nie tak skryptu, a powiedzial bym ze na poczatku pliku. Jezeli plik kodowany jest w UTF-8 to moze Ci wywalac w/w blad. W takich plikach kodowanych w utf-8 na poczatku pliku czesto przylepiany jest tak zwany BOM. Najlepiej utworz od nowa plik i wklej do niego zawartosc z tego poprzedniego. I nie zapisuj pliku z kodowaniem utf-8. -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 422 Pomógł: 0 Dołączył: 14.12.2005 Skąd: Wałbrzych Ostrzeżenie: (0%) ![]() ![]() |
Strona niby nie jest w UTF, a obstart jest na poczatku index.php do ktorego sa includowane podstrony.... Ale nadal nie działa.
EDIT : http://www.ppx.pl/balon_portfolio/tmp/2/in...co=wiecej&id=41 tutaj mozecie sprobowac ![]() Ten post edytował Balon 13.01.2006, 20:18:57 -------------------- Postura wielka i morda wredna, jestem Balon, kozak z osiedla !
bzdury.pl - Królestwo rozrywki |
|
|
![]()
Post
#9
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 196 Pomógł: 2 Dołączył: 17.01.2004 Skąd: Sosnowiec Ostrzeżenie: (0%) ![]() ![]() |
Zarzuć kodem, bo nie widać żebyś cokolwiek tam poprawił...
-------------------- |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 422 Pomógł: 0 Dołączył: 14.12.2005 Skąd: Wałbrzych Ostrzeżenie: (0%) ![]() ![]() |
plik z podgladem newsa (ten w ktorym sa komentarze)
index.php
Proszę bardzo ![]() -------------------- Postura wielka i morda wredna, jestem Balon, kozak z osiedla !
bzdury.pl - Królestwo rozrywki |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 90 Pomógł: 0 Dołączył: 29.12.2005 Skąd: Z krzaków Ostrzeżenie: (0%) ![]() ![]() |
<?ob_flush();
?> moze daj na samym poczatku zamiast tego: <?php ob_start('ob_gzhandler'); ?> Rownie dobrze moglbys przebudowac troche skrypt i obylo by sie bez buforowania Edit: Mysle ze to nie wersja finalna skryptu bo ja sam ( choc niejestem dobry z php ) zauwazylem dosc powazne bledy w tym dodawaniu komentarzy Ten post edytował Rafiki 13.01.2006, 21:10:13 |
|
|
![]()
Post
#12
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 196 Pomógł: 2 Dołączył: 17.01.2004 Skąd: Sosnowiec Ostrzeżenie: (0%) ![]() ![]() |
1. Nie buforujesz tego co trzeba.
2. Buforowanie zaczynasz od ob_flush()? Ciekawe... -------------------- |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 90 Pomógł: 0 Dołączył: 29.12.2005 Skąd: Z krzaków Ostrzeżenie: (0%) ![]() ![]() |
Cytat 1. Nie buforujesz tego co trzeba. Moze sie myle ( a to mozliwe ![]() ![]() Ten post edytował Rafiki 13.01.2006, 21:13:30 |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 422 Pomógł: 0 Dołączył: 14.12.2005 Skąd: Wałbrzych Ostrzeżenie: (0%) ![]() ![]() |
Cytat(crash @ 2006-01-13 20:09:22) 1. Nie buforujesz tego co trzeba. 2. Buforowanie zaczynasz od ob_flush()? Ciekawe... @Crash - nie wiem jaki błąd popełniłem tutaj. Robiłem tak w panelu admina i działało. Więc czy mógłbym Cię prosić o jakieś wskazówki ? -------------------- Postura wielka i morda wredna, jestem Balon, kozak z osiedla !
bzdury.pl - Królestwo rozrywki |
|
|
![]()
Post
#15
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 196 Pomógł: 2 Dołączył: 17.01.2004 Skąd: Sosnowiec Ostrzeżenie: (0%) ![]() ![]() |
Rafiki: racja, ale za bardzo tu namieszane i nie widać co jest co.
Balon: aby rozpocząć buforowanie używa się ob_start(); -------------------- |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 449 Pomógł: 0 Dołączył: 26.05.2004 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
@Balon tworzyles nowy plik index.php tak jak ci radziłem?
Utworz zupelnie nowy plik i nazwij go index.php i wklej do niego kod z tego poprzedniego. Chodzi o to abys calkowicie pozbył sie aktualnego pliku index.php Tylko nie rób kopii tego pliku! I na poczatku daj: ob_start" title="Zobacz w manualu php" target="_manual(); a na koncu: ob_end_flush" title="Zobacz w manualu php" target="_manual(); Jezeli na stronie znajdują sie skrypty ktore pożerają duzo zasobów serwera to wtedy mozesz dac gdzieś pomiedzy nimi w środu strony ob_flush" title="Zobacz w manualu php" target="_manual() flush" title="Zobacz w manualu php" target="_manual(); co spowoduje wysyłanie strony do klienta na "raty". Albo ten kawałek kodu, ktory odpowiedzialny jest za zapisane komentarzy do bazy wydziel do osobnego pliku, ktory nie bedzie includowany i wtedy niepotrzebne bedzie ob_start(), a po zapisaniu danych do bazy i tak przekieruje do index.php. Tylko wtedy trzeba opracowac inny sposob obslugi bledów. Ten post edytował yavaho 13.01.2006, 22:35:23 -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 17:03 |