Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] galeria
Forum PHP.pl > Forum > PHP
shima
Przeczytałem mnóstwo postów na forum w ciągu ostatniego tygodnia, szukając sposobu na wykonanie galerii korzystającej z obrazków umieszczonych w bazie jako blob. Za bardzo mi te posty nie pomogły, ale sporo się nauczyłem. Doszedłem już do tego, że mam rysunki w bazie, ale niestety, nie moge ich wyświetlić na stronie. Widziałem mnóstwo sposobów prezentowanych przez uczestników forum
http://forum.php.pl/viewtopic.php?t=6461&h...&highlight=blob
http://forum.php.pl/viewtopic.php?t=432&highlight=blob
i wiele innych, których przytaczania oszczędzę sobie i innym użytkownikom forum. Efekt ciągle ten sam. Dostaję na stronie rysunek w postaci binarnej, czyli krzaczki.

Na razie stosuję dwie metody: foto użytkowników z pliku, a galeria na gotowym skrypcie
http://coppermine.sourceforge.net/
ale pytanie nadal mnie nurtuje.
Będę wdzięczny za informację, jtz.
Nalfein][WR
Na początku skryptu wyświetlającego obrazek:

[php:1:d654aa651d]
header('Content-Type: image/jpeg');
// lub
header('Content-Type: image/gif');
// analogicznie dla innych formatów (png)
[/php:1:d654aa651d]

wtedy na pewno nie wyświetlą się krzaczki a obrazek.
shima
Dziękuję. Twój post mnie oświecił. Już wcześniej wstawiałem header-y, ale robilem to źle. Jeszcze raz dzięki.
shima
W takim razie jeszcze coś:
jeżeli napiszę tak:
[php:1:96abbd42b4]<?php
header('Content-Type: image/jpeg');
include("wyswietl.php");
?>[/php:1:96abbd42b4]
to wszystko wyswietla się OK, ale jeżeli chcę dorzucić do pliku kod HTML
Kod
<body>

<?php

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

include("wyswietl.php");

?>

</body>

to dostaję komunikat
Kod
Warning: Cannot add header information - headers already sent by (output started at /var/www/html/kfd_adv/obrazki.php:2) in /var/www/html/kfd_adv/obrazki.php on line 3

Zapewne można dodać html, tylko jak?
dob
Wysyłasz tekst do przeglądarki przed nagłowkami - wstaw na samym poczaątku strony :
[php:1:b6c8988e4d]<?php
ob_start();
?>[/php:1:b6c8988e4d]

tutaj <body> i twoje kody :wink:

i na samym koncu strony to :
[php:1:b6c8988e4d]<?php
ob_end_flush();
?>[/php:1:b6c8988e4d]
Nalfein][WR
Cytat
ale jeżeli chcę dorzucić do pliku kod HTML
Kod
<body>

<?php

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

include("wyswietl.php");

?>

</body>


Jeśli za pomocą nagłówka dajesz przeglądarce znać, że przesłany zostanie obrazek to nie możesz łączyć go z HTML-em. Za to w osobnym pliku HTML odwołujesz się do skryptu php jak do obrazka o normalnym rozszerzeniu.

Kod
<body>

    <img src="wyswietl.php" />

</body>
shima
Ok, przeprowadziłem serię prób, przeczytałem manuala na php.net i nadal nie wiem, jak powinny być wzajemnie położone
[php:1:ef3126422e]<?php
header('Content-Type: image/jpeg');
include("wyswietl.php");
?>[/php:1:ef3126422e]
i
<?php
[php:1:ef3126422e]<?php
ob_start();
echo "
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>
<html>
itd.";

ob_end_flush();
?>[/php:1:ef3126422e]

przechwyciłem zawartość bufora ob_get_contents(); przekazałem do zmiennej i ciągle nie moge uzyskać równocześnie obrazka i tekstu.
A żeby było jeszcze zabawniej, to niczego nie buforuje, tylko wyrzuca od razu na ekran. Może to powód powyższych kłopotów, ale sam na to nie potrafię odpowiedzieć.
shima
Cytat
[WR"]
Jeśli za pomocą nagłówka dajesz przeglądarce znać, że przesłany zostanie obrazek to nie możesz łączyć go z HTML-em. Za to w osobnym pliku HTML odwołujesz się do skryptu php jak do obrazka o normalnym rozszerzeniu.

Kod
<body>

    <img src="wyswietl.php" />

</body>


Racja, tak logiczne, że aż mi głupio. Dzięki, wszystko jest tak, jak chciałem. Widziałem już gdzieś tą składnię, ale nie wpadło mi do głowy, żeby jej użyć.

PS. Pozostaje aktualne pytanie, czemu [php:1:c1b88850a7]<?php
ob_start();
?>[/php:1:c1b88850a7] buforuje a mimo to wyrzuca na ekran? W manualu jest napisane, ze przechwytuje, więc chyba output powinien być zerowy?
Seth
Cytat
PS. Pozostaje aktualne pytanie, czemu [php:1:f21d7402b9]<?php
ob_start();
?>[/php:1:f21d7402b9] buforuje a mimo to wyrzuca na ekran? W manualu jest napisane, ze przechwytuje, więc chyba output powinien być zerowy?

W dalszej czesci masz: ob_end_flush(), ktore wypluwa cala zawartosc.
shima
Cytat
W dalszej czesci masz: ob_end_flush(), ktore wypluwa cala zawartosc.


I wszystko jasne :idea:
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.