Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Tworzenie miniatur błąd
Forum PHP.pl > Forum > Przedszkole
wlamywacz
Witam

Do tworzenia miniatur na stronie urzywam tego skryptu:


Kod
<?php
// The file
$filename = 'pliki/zdjecia/'.$kat.'/'.$id.'.jpg';

// Set a maximum height and width
$width = 100;
$height = 100;

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

// Get new dimensions
list($width_orig, $height_orig) = getimagesize($filename);

if ($width && ($width_orig < $height_orig)) {
  $width = ($height / $height_orig) * $width_orig;
} else {
  $height = ($width / $width_orig) * $height_orig;
}

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

// Output
imagejpeg($image_p, null, 100);
?>



Skrypt w pliku 1.php gdzie jest tylko on działa jednak po wrzuceniu an strone nie pokazuje sie obrazek tylko wywala takie coś:


Kod
Warning: Cannot modify header information - headers already sent by (output started at d:\usr\apache\httpd\html\a\tapeta.php:7) in d:\usr\apache\httpd\html\a\tapeta.php on line 98
˙Ř˙ŕÉywşu’ŐŇÜĹ^Ű\EćXJżb1tiUĄR•yâ0XÚÄaĽ SQĽ(Şľ(ĹÉÍş5$ŠŐ‹Q—2´ăŚ˙+d´–mĂ;œ9lې=;ädŕőŻÓŮźEâ9 ľéöń5ŢŁyhŹ^ÖÖ#‘$’ĺXŁ•Ú(K-–,¤šuâYáž§;ĆńŠçŇŇé˘ÖV÷ôIhŰM;O Dq0~ŇŁćşv”ßis_źUßUe˝ľ+üBń6ŁK{ŤÜÁ4Z|Â}6ęÖÉ.‘RÚˆ –#IDŚ0— ˛¤rÇx÷c43ÄĂăŢÍŹ_Î%˝ytŰ#ćĎ<ÖihĆœ˛¨@ťB–$üČŔ’AM§é:ş˝ľƒÂÚ{ –ĺ-‡›¨[ó\°3ÜÝ:…‚ĺ™Ár_tjŒ…-řŰKż–é|9¤ÂÎ ýnč9-sőĚPŰB¤ŢS<ŞĹ\n‘a,ߛaŁĽH”Ű~ÍǕľ8ŮśţÓM'—5–ČűŠŐ'U7NٚI9ť?zúEZÚ´Ów},֍žiiĽ_xę}Q`Xź7¤>Č ńŹPJTœË&÷ź•c,AŤG$‚Ľř†˙ÍŞk:–vV˛‡›JՅą{IdňĎyk††9ŕ śŇ: ¨ËŔëó˙gÎÇÚ




Skrypt pobiera zmienne z adresu. Z góry będe wdzięczny za pomoc bo już nie wiem co zrobić sad.gif .Ewentualnie podać mi jakiś inny podobny kod do tworzenia miniatur.
nospor
Forum "algorytmy,...." nie sluzy na takie topici. przenosze.
Odnosnie bledu header bylo milion razy, prosze uzyc wyszukiwarki

ps: i prosze poprawic bbcode
wlamywacz
Próbowałem według FAQ czy czegoś podobnego żadna z metod nie działa a jedna rozwaliła całą strone
Spirit86
Kod
Warning: Cannot modify header information - headers already sent by (output started at d:\usr\apache\httpd\html\a\tapeta.php:7) in d:\usr\apache\httpd\html\a\tapeta.php on line 98


pokaż plik tapeta.php cały.

Jeżeli to jest ten, co pokazałeś, znaczy dałeś enter lub spacje przed <?
wlamywacz
Dam tylko php
  1. <?php 
  2. $pliki=glob('pliki/zdjecia/'.$kat.'/*.jpg'); 
  3. $count=count($pliki); 
  4. echo 'Liczba plikow: ' . $count;
  5.  
  6.  
  7. echo '<bR><bR>';
  8.  
  9. $przod = $id + 1;
  10. $wstecz = $id - 1;
  11. $najw = $count - 1;
  12. ("<img border=0 src=pliki/zdjecia/tapeta.jpg?kat=$kat&id=$id alt=Śmieszne zdjęcia - www.smieszny.info><bR><bR>");
  13.  
  14. if($id <= $najw)
  15. echo("<a href=tapeta-$przod-$kat.html>Następne</a><br>");
  16.  
  17. if($id >= 1)
  18. echo("<a href=tapeta-$wstecz-$kat.html>Poprzednie</a><br>");
  19.  
  20. // The file
  21. $filename = 'pliki/zdjecia/'.$kat.'/'.$id.'.jpg';
  22.  
  23. // Set a maximum height and width
  24. $width = 100;
  25. $height = 100;
  26.  
  27. // Content type
  28. header('Content-type: image/jpeg');
  29.  
  30. // Get new dimensions
  31. list($width_orig, $height_orig) = getimagesize($filename);
  32.  
  33. if ($width && ($width_orig < $height_orig)) {
  34.  $width = ($height / $height_orig) * $width_orig;
  35. } else {
  36.  $height = ($width / $width_orig) * $height_orig;
  37. }
  38.  
  39. // Resample
  40. $image_p = imagecreatetruecolor($width, $height);
  41. $image = imagecreatefromjpeg($filename);
  42. imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
  43.  
  44. // Output
  45. imagejpeg($image_p, null, 100);
  46. ?>
Spirit86
widzę, że nie rozumiesz na czym polega tworzenie obrazków w php.

Zdecyduj się, czy plik tapeta ma być obrazkiem, czy stroną?
Jeżeli stroną, to musisz obrazek tworzyć w innym pliku, który tworzy tylko grafikę.

ten temat był już miliardy razy na tym forum, poszukaj !
wlamywacz
Nie rozumiesz plik tapeta.jpg generuje znak wodny na obrazku który zostaje wyświetlony na stronie. A miniaturki mają tworzyć się z obrazków które są na serwerze.
Spirit86
plik tapeta jpg może malować sobie nawet Monalizę, cóż to za różnica.

Napisz, co masz tu źle:
  1. <?php
  2. (...)
  3. echo '<bR><bR>';
  4. (...)
  5. ("<img border=0 src=pliki/zdjecia/tapeta.jpg?kat=$kat&id=$id alt=Śmieszne zdjęcia - www.smieszny.info><bR><bR>");
  6. (...)
  7. // Content type
  8. header('Content-type: image/jpeg');
  9. ?>



Przeczytaj manual...
Guest
Czy oznacza to iż już coś wysłałem ? I niemoge tego zrobić ponownie?
mike
Tak.
Rozwiązanie:
  1. <img src="image.php" />

Gdzie skrypt image.php generuje obrazek. W nim możesz wysyłaś headery do woli tongue.gif
wlamywacz
Dobra to puźniej nad tym pokombinuje
Spirit86
Swoją drogą, to ja nie wiem, gdzie się rodzą tacy włamywacze jak Ty tongue.gif

Cytat(Guest @ 2006-05-02 17:18:01)
Czy oznacza to iż już coś wysłałem ? I niemoge tego zrobić ponownie?


a wpisz
  1. <?php
  2. echo 'cos_wyslalem'; 
  3. echo 'moge wyslac cos po raz drugi?' 
  4. ?>


Ja nie wiem, czy Ty nie rozumiesz język polski?

Cytat
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.


"puźniej" - popraw to proszę.
Guest
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.