Diskuze: php header chyba
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Tvůrce
Zobrazeno 12 zpráv z 12.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Dočkáme se již tvé odpovědi? http://www.itnetwork.cz/…03f53fb2c33f#…
Nebo si myslíš, že s námi nebudeš mluvit a my s tebou ano?
Hlavičky header()
musíš odeslat ještě před prvním znakem
výstupu. Před voláním této funkce nesmí být žádný výstup HTML ani
příkaz echo.
HTTP protokol funguje na principu textových souborů. Nejprve se zapíše hlavička a až potom následuje samotný obsah HTML stránky. Pokud začneš psát stránku a potom si vzpomeneš, že chceš psát hlavičku, už to moc dobře nejde, proto ta chyba. Je to zapřičiněno mícháním výstupu s logikou, např. v MVC architektuře by se toto nestalo.
Dobrý den
K tomuto tématu mám dotaz.
Jakým způsobem zobrazím obrázek uložený v databázi v proměnné BLOB,
pokud jsou webové stránky vytvořené v architektuře MVC.
Standardním řešením, které jsem našel, je po načtení dat z DB říci
prohlížeči, že zobrazovaný obsahem bude obrázek za pomocí
následujícího příkazu: header ("Content-type: image/jpeg");
V MVC je však již hlavička odeslaná v základním pohledu a následně, kdy
je potřeba v určitém obsahu zobrazit tento obrázek, tak znovu použít
příkaz header nelze.
Máte prosím pro tento způsob v MVC architektuře nějaké řešení?
Děkuji.
premenna BLOB? to je co za premennu? skor by som povedal, ze to je datovy
typ...
a nemusis ten obrazok definovat v headeri, staci, ked to vezmes z databaze a
vlozis to ako obrazok...
existuje este jeden sposob, ako vlozit obrazok do dokumentu - cez tag
<img>, lebo existuje aj iny sposob vkladania obrazku, nez pomocou URL
Pardon. Blob jsem myslel jako datový typ. Bohužel pokud načtený obrázek přímo vložím do tagu IMG src, tak při zobrazení zdrojového kódu lze vidět toto:
<img src=����JFIF��>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality
��C
$.' ",#(7),01444'9=82<.342��C
2!!22222222222222222222222222222222222222222222222222��P<"��
���}!1AQa"q2���#B��R��$3br�
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz���������������������������������������������������������������������������
���w!1AQaq"2�B���� #3R�br�
$4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������?��x���h*`)�2EI#�"��pI��R�T� Ԟ��k�4
"����/fC���z������n��G�H�"%Y���>�J���o$S,p�ë6�*����ϡ4ߋ��(�4����\���s�WP���da�E|x�γ��½�^3��uk{��%����?�۷_����q=��"�IZ���,j�r�2�#��.RF��μ,|3���M|���9?����My7�ki�7k���3����[w0��
��68$�`7|�c�����J�"��Ɔ�h�H��t��L����.�<�J�woSӅ��.}�!bA�W+��[�e\��D�̟;m����Os�X������ꁒj��q��x-�O��q�JJ��%kX���Oy�xV�%�w�����)�.��wdc<�vz�|v<�nc�s�7���|1<2��#+c�9����l�l$�߳~>lg9�����<��������w�4�Z
JD�>���V��l/'���bb����TF�f��I�n8P9�'}�N�\��4�qv����ҭ�Y$q\�ˊU#oe$c�|:���s�/��yfIcUB0ǂ*u�r�Z�'��h����֩�v�kh�$����ֽ�#̛NM�!*U5Ud��bj�5�4Uo�^$������oӥ;r�`�M�#��!�O�c����r6�YM
�$20�^J�K������f�X��O���`�>��Ǡ��|��{,�z�#��I4��v���W6
2�O�I�Dg�U� ��¡5+�#�k�����Z�����1���ʻ���~����XLy�a�� �%r�yE������'����O�kq+Z�'�G19����Ry��p7j>&��u"��M��Y�ڿ��)c�#֥GH�4�;�5���t~�\Y��?���=���>P̼t5�v��er�v��U�;�t�iM�QG����Y ����V�N���U5fu�������.ⰰ�y�T�z�Ó���
ؑ�*�5�k:�ƶ�P2[�z�D(�=�'V1[�"��<�J��V�����HD1�˱zn��a��
�Fi�rm�j�RV<�+����>
ale to by si musel ten obrazok najskor prekodovat, aby si to mohol vlozit do toho tagu
skus toto skopirovat:
<img alt="" src="data:image/gif;base64,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" />
to by ti malo vlozit logo PHP do stranky...
a na konverziu som pouzil: http://webcodertools.com/…erter/Create
cize ked chces vkladat do databazy obrazky, tak to prekonvertuj do Base64
mala by ti pomoct tato funkcia: http://www.php.net/…4-encode.php
vtip je v tom, ze neukladas cely obsah obrazka, ale iba jeho popis (cize URI)
a okrem toho pomocou Base64 kodovania sa setri aj miestom a neprenasa sa tolkio
udajov medzi klientom a serverom a tym sa zeychluje aj nacitavanie
stranky...
ale nevyhoda je, ze je dobry len na mensie obrazky, ako su loga as pod... na
fotky odporucam vyhradit zvlast adresar a v DB si viest zaznam, kde je ta-ktora
fotka a vkladat rovno URL fotky
Díky za informace.
Po překódování se obrázek zobrazí.
Budu obrázky ukládat do DB v tomto kódování.
a hlavne nezabudni ich potom vkladat ako URI, nie ako URL do tagu
<img>
cize do <img src="..."> nezabudni dat: "data:image/gif;base64,..." tak,
ako to je v tej ukazke
Zobrazeno 12 zpráv z 12.