Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mysql] galeria
shima
post
Post #1





Grupa: Zarejestrowani
Postów: 245
Pomógł: 0
Dołączył: 9.09.2002

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


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.
Go to the top of the page
+Quote Post
Nalfein][WR
post
Post #2





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 22.04.2003
Skąd: Żory / K-ce

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


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





Grupa: Zarejestrowani
Postów: 245
Pomógł: 0
Dołączył: 9.09.2002

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


Dziękuję. Twój post mnie oświecił. Już wcześniej wstawiałem header-y, ale robilem to źle. Jeszcze raz dzięki.
Go to the top of the page
+Quote Post
shima
post
Post #4





Grupa: Zarejestrowani
Postów: 245
Pomógł: 0
Dołączył: 9.09.2002

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


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





Grupa: Zarejestrowani
Postów: 166
Pomógł: 0
Dołączył: 30.01.2003
Skąd: Warszawa

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


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]
Go to the top of the page
+Quote Post
Nalfein][WR
post
Post #6





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 22.04.2003
Skąd: Żory / K-ce

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


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>
Go to the top of the page
+Quote Post
shima
post
Post #7





Grupa: Zarejestrowani
Postów: 245
Pomógł: 0
Dołączył: 9.09.2002

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


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





Grupa: Zarejestrowani
Postów: 245
Pomógł: 0
Dołączył: 9.09.2002

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


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?
Go to the top of the page
+Quote Post
Seth
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

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


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





Grupa: Zarejestrowani
Postów: 245
Pomógł: 0
Dołączył: 9.09.2002

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


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


I wszystko jasne :idea:
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 16:48