Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Problem z funkcją header
slimboot
post
Post #1





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 14.03.2011

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


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*/


Ten post edytował slimboot 1.04.2012, 13:27:55


--------------------
OK-Word.com - Nauka podstawowych slowek z jezyka angielskiego, Zapraszam.

"Głupiec nie wierzy w nic z tego, co nie wynika z jego własnego doświadczenia"

"Na początku stworzył Bóg niebo i ziemię" - inna sprawa, ze człowiek to potem popsuł, ale jeżeli tworzenie wyszło od Boga, to zaiste jestem jego synem:)

Go to the top of the page
+Quote Post
tolomei
post
Post #2





Grupa: Zarejestrowani
Postów: 450
Pomógł: 135
Dołączył: 18.11.2010
Skąd: Wschowa

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


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


--------------------
“ Computers are good at following instructions, but not at reading your mind. ”
- Donald Knuth
Go to the top of the page
+Quote Post
jaslanin
post
Post #3





Grupa: Zarejestrowani
Postów: 511
Pomógł: 143
Dołączył: 13.03.2010
Skąd: Jasło

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


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

Ten post edytował jaslanin 1.04.2012, 14:09:53


--------------------
Good luck and happy PHP'ing
Go to the top of the page
+Quote Post
sliwa007
post
Post #4





Grupa: Zarejestrowani
Postów: 69
Pomógł: 7
Dołączył: 18.08.2010
Skąd: Rzeszów

Ostrzeżenie: (10%)
X----


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ć.
Go to the top of the page
+Quote Post
slimboot
post
Post #5





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 14.03.2011

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


Faktycznie skrypt słuzy mi tylko do zapisywania obrazka, więc tak jak radzicie usune tą funkcję
Dzieki wszystkim za pomoc:)


--------------------
OK-Word.com - Nauka podstawowych slowek z jezyka angielskiego, Zapraszam.

"Głupiec nie wierzy w nic z tego, co nie wynika z jego własnego doświadczenia"

"Na początku stworzył Bóg niebo i ziemię" - inna sprawa, ze człowiek to potem popsuł, ale jeżeli tworzenie wyszło od Boga, to zaiste jestem jego synem:)

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 Aktualny czas: 22.08.2025 - 05:31