Skocz do zawartości

[PHP] Wyświetlanie paska postępu


Makary155

Rekomendowane odpowiedzi

Nie wiem co jest grane. Napisałem skrypt wyświetlający pasek postępu prac nad projektem:

header("Content-type: image/jpeg");
$img=imagecreate(100,20);
$tlo=imagecolorallocate($img,0,0,0);
$red=imagecolorallocate($img,255,0,0);
imagefilledrectangle($img,0,0,$procent,20,$red);
imagejpeg($img);
imagedestroy($img);

niby w porządku jak wystartuję, pokazuje się czarny prostokąt. Ale jak wstawię na stronie

<?php 
$procent=10;
include("pasek.php"); ?>

wyskakuje warning:

Warning:Cannot modify header information - headers already sent by (output started at c:/xampp/htdocs/strona/projects.php:11) in pasek.php on line 3

strona na którą wstawiam pasek to też plik php. Co zrobić aby ten pasek się wyświetlił?

Odnośnik do komentarza
Udostępnij na innych stronach

Coś już wysyła header w projects.php .

Wydaje mi się że nie mogą być 2 razy header w pliku, ale nie wiem, za bardzo się nie znam.

@E: Trochę poczytałem, lookaj:

- Przed wysłaniem polecenia header(), do przeglądarki nie mogą być wysłane żadne dane!!!

Odnośnik do komentarza
Udostępnij na innych stronach

Header musi być na samym początku, przed wszystkimi znacznikami. Czasem miałem podobnie, gdy pisałem w UTF-8, wtedy ni z gruchy ni z pietruchy na początku pojawiał mi się niby znaczek, którego nie było widać ani nie można było usunąć. Dopiero przekonwertowanie na UTF-8 bez BOM pomogło :)

Odnośnik do komentarza
Udostępnij na innych stronach

Co za ciemnota. Przecież logiczne jest że jak już prześlesz do przeglądarki jakieś dane ( w twoim przypadku HTML ) to PHP automatycznie przed tym musi wysłać nagłówek... więc analogicznie zrobiłeś błąd :) Zresztą jak sobie wyobrażasz to że wysyłasz napoczątku HTML, a potem chcesz żeby z tego requesta powstawał obrazek?

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

przecież masz wyraźnie napisane, że w pliku pasek.php nie mozna na linii 3 modyfikowac nagłówka, bo zmodyfikowano go w projects.php na linii 11. Sprawdź co jest na linii 11 lub przed nią. Wystarczy, ze jest warning, ktory jednak sie nie wyświetli, bo dalej jest modyfikacja nagłowka.

Odnośnik do komentarza
Udostępnij na innych stronach

Na linii 11 jest tylko <div id="top">. Nie jeździjcie, nie jestem taki pro jak wy :)

 

zrobiłem inaczej, chyba tak z początku musiałem zrobić.

Dodałem do skryptu $procent=$_GET['procent'], a tam gdzie powinien się pasek wyświetlić dałem <img src="pasek.php?procent=30"> i jest wporzo. Dzięki za odpowiedzi

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...