Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z funkcją header
Forum PHP.pl > Forum > Przedszkole
slimboot
Posiadam skrypt (nie mój) do tworzenia miniaturki wysyłanego obrazka przez formularz, skrypt działa, bez zarzutu

problem pojawia się z funkcją header, gdy ona jest wstawiona, nie wyświetla mi obrazka, który znajduje się przed skryptem, oraz cały ekran jest biały, gdzie normalnie mam ustawione czarne tło...natomiast gdy usuwam z tego skryptu funkcje header, wszystko działa bez problemu, mam 2 pytania

1 Czy musze tej funkcji używać, skoro i tak skrypt działa, gdy ją usuwam?
2 Czy jest jakiś sposób, by ta funkcja była i jednocześnie wszystko się wyświetlało jak należy?

Dodam, że na lokalnym serwerze (urzywam krasnala) ten problem się ne pojawia, jedynie po wrzuceniu na serwer w sieci, robi się ten problem


Kod
<div align="center">
<img src=obrazek.jpg>
</div>


<?



/*dodaje obraz*/
$file = $HTTP_POST_FILES["image"]["tmp_name"];

$zapisz_jako = $HTTP_POST_FILES["image"]["name"];



/*zmienia nazwe pobieranego plku na date i dodaje zmienna obraz.jpg od razu zapisując plik w tym formacie exclamation.gif!*/
$stob=("stob_");
$obraz=$stobit.$HTTP_POST_FILES["image"]["name"];
$zapisz_jako = $obraz . '.' . pathinfo( $HTTP_POST_FILES["plik"]["name"], PATHINFO_EXTENSION );


if (!copy($file, $zapisz_jako)) {

   print ("Kopiowanie pliku nie powiodło się...<br>\n");

}

print "<BR>Nazwa pliku: ".$HTTP_POST_FILES["image"]["name"];
print "<BR>Rozmiar pliku: ".$HTTP_POST_FILES["image"]["size"];
print "<BR>tymczasowo: ".$HTTP_POST_FILES["image"]["tmp_name"];
print "<BR>Typ przesłanego pliku: ".$HTTP_POST_FILES["image"]["type"];


/*Tworzenie miniaturki*/

$filename = ("$zapisz_jako");


$width = 408;
$height = 306;


header('Content-type: image/jpeg');


list($width_orig, $height_orig) = getimagesize($filename);

$ratio_orig = $width_orig/$height_orig;

if ($width/$height > $ratio_orig) {
$width = $height*$ratio_orig;
} else {
$height = $width/$ratio_orig;
}

// Resample
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

// Zapis miniaturki z nową datą i NAZWĄ !

$adres=("magazyn/");
$nazwa=("obrazsformatowany.jpg");

$mini=$HTTP_POST_FILES["image"]["name"];
$miniaturka = $mini;


imagejpeg($image_p,"$miniaturka");



/*koniec tworzenia miniaturki*/
tolomei
Witaj.

Przeczytaj dokładnie o funkcji header w manualu.
Ja zacytuję tutaj:

Cytat
Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP.


Nie możesz wyświetlić nic a nic przed funkcją header().

Pozdrawiam
jaslanin
jeżeli nie wykorzystujesz tego skryptu do dynamicznego tworzenia obrazków to możesz usunąć ten heder.

jego zadanie polega na tym by poinformować, że dane które są przesyłane przez przeglądarkę powinny być przetwarzane tak jakby były formatu obrazkowego, jeżeli tego nie potrzebujesz to możesz usunąć ten header

@tolomei - mi się wydaje że on nie używa tego skryptu do tworzenia obrazków dynamicznie, tylko zapisuje obrazki do osobnego pliku, a ten header został tam wstawiony przypadkowo, niemniej jednak słuszna uwaga odnośnie używania funkcji header
sliwa007
jeżeli skrypt służy do zapisania obrazka to możesz usunąć ten header.

Potrzebny byłby w przypadku kiedy skrypt miałby wyświetlać obrazek a nie go zapisywać.
slimboot
Faktycznie skrypt słuzy mi tylko do zapisywania obrazka, więc tak jak radzicie usune tą funkcję
Dzieki wszystkim za pomoc:)
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.