NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: php header chyba

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
martinkobelka
Tvůrce
Avatar
martinkobelka:3.9.2012 11:36

Poradí mi prosím někdo s touto chybou?
Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files (x86)\EasyPHP-12.1\www\prvky­\levy\regblog­.php:45) in C:\Program Files (x86)\EasyPHP-12.1\www\reg.php on line 56
chci při úspěšné registraci vyvolat přesměrování na soubor log.php

 
Odpovědět
3.9.2012 11:36
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na martinkobelka
David Hartinger:3.9.2012 11:47

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?

Nahoru Odpovědět
3.9.2012 11:47
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na martinkobelka
Kit:3.9.2012 12:00

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.

Nahoru Odpovědět
3.9.2012 12:00
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na martinkobelka
David Hartinger:3.9.2012 12:12

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.

Nahoru Odpovědět
3.9.2012 12:12
New kid back on the block with a R.I.P
Avatar
ROOBYNSKYJ
Člen
Avatar
Odpovídá na David Hartinger
ROOBYNSKYJ:2.6.2014 11:02

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.

 
Nahoru Odpovědět
2.6.2014 11:02
Avatar
mkub
Tvůrce
Avatar
Odpovídá na ROOBYNSKYJ
mkub:2.6.2014 11:53

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

 
Nahoru Odpovědět
2.6.2014 11:53
Avatar
ROOBYNSKYJ
Člen
Avatar
Odpovídá na mkub
ROOBYNSKYJ:2.6.2014 12:11

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��&gt;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality
��C

 $.' &quot;,#(7),01444'9=82&lt;.342��C

2!!22222222222222222222222222222222222222222222222222��P&lt;&quot;��
���}!1AQa&quot;q2���#B��R��$3br�
%&amp;'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz���������������������������������������������������������������������������
���w!1AQaq&quot;2�B���� #3R�br�
$4�%�&amp;'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������?��x���h*`)�2EI#�&quot;��pI��R�T� Ԟ��k�4
&quot;����/fC���z�޼�����n��G�H�&quot;%Y���&gt;�J���o$S,p�ë6�*����ϡ4ߋ��(�4����\���s�WP���da�E|x�γ��½�^3��uk{��%����?�۷_����q=��&quot;�IZ���,j�r�2#��.RF��μ,|3���M|���9?����My7�ki�7k���3����[w0��
��68$�`7|�c�����J�&quot;��Ɔ�h�H��t��L����.�&lt;�J�woSӅ��.}�!bA�W+��[�e\��D�̟;m����Os�X������ꁒj��q��x-�O��q�JJ��%kX���Oy�xV�%�w�����)�.��wdc&lt;�vz�|v&lt;�nc�s�7���|1&lt;2��#+c�9����l�l$�߳~&gt;lg9�����&lt;��������w�4�Z
JD�&gt;���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���`�&gt;��Ǡ��|��{,�z�#��I4��v���W6
2�O�I�Dg�U�   ��¡5+�#�k�����Z�����1���ʻ���~����XLy�a��       �%r�yE������'����O�kq+Z�'�G19����Ry��p7j&gt;&amp;��u&quot;��M��Y�ڿ��)c�#֥GH�4�;�5���t~�\Y��?���=���&gt;P̼t5�v��er�v��U�;�t�iM�QG����Y        ����V�N���U5fu�������.ⰰ�y�T�z�Ó���
ؑ�*�5�k:�ƶ�P2[�z�D(�=�'V1[�&quot;��&lt;�J��V�����HD1�˱zn��a��
�Fi�rm�j�RV&lt;�+����>
 
Nahoru Odpovědět
2.6.2014 12:11
Avatar
mkub
Tvůrce
Avatar
Odpovídá na ROOBYNSKYJ
mkub:2.6.2014 12:28

ale to by si musel ten obrazok najskor prekodovat, aby si to mohol vlozit do toho tagu ;)

 
Nahoru Odpovědět
2.6.2014 12:28
Avatar
mkub
Tvůrce
Avatar
mkub:2.6.2014 12:32

skus toto skopirovat:

<img alt="" src="data:image/gif;base64,R0lGODlheABDAOZqAH+CuDk3RyglKszN4qGky9PV57K01ENCWIOGuYKDs1JScpCSwsLE3qqs0ExLY1tcg93e7Ds4PG5xpWptnWFjjXV5sXt+teXm8JmcxoyNwbm62Wtrkk5Oa3F0qXp6o4iLvXJ0o3RzmI6QwVpbfuLj73t9raSl0G1wonJ2rJWWyLu92XR4roWIu5KVw9jZ6pKSxGRmkmtun6WozpSWxS4rL1NRaLO012xqjFxbdoqNv2ZolmhqmpyfyDEuOa6w05yczVVWeJ6hypaZxYGCr2dplz89ULy+2l5giZiZyIyOv4mKuldYfLa319XX6CIeIGxvns7Q5L/A3Hd7tHZ4p19efZmZzG5vmHN3riIeH////5COj1lWV8fGx+7u9dXU1fb2+oKAgayqq3Ryc/Hw8Z6cnePi40tISbm4uWdkZYmJtgD/AEdGX9/g7ZuczGlrnG9zp4yMuri52bi615qbzKeqz9vc65qcyWZkhGhniaeo0m5woIuLucbH4MfJ4WlsnJeYyyH5BAEAAGoALAAAAAB4AEMAAAf/gGqCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXlm0/bXOYnp+gP3l5Nj4acUwaGkwGPj4NMgRBPBhCLQtJIjkfGTkiLymgwqENGgx9TQVQUAN9fAxRUSpyrK90sbNCMy26HwgAFhYVVyglFgkZwcPrjCZxfC5sbBAQdS7JA9QysyIf/iwAEQgEQLDgN4LhpKxA8UbCCT87nkwZkoSdRTVBbAxgQ+KCRxIk8jUQskCKyZMoU6pceXJcBwkTduiAQeEIBStDRFzEFIQJFI4eL7gwQqcFy6NIk6K88iYGjCNHHoxYcsSDzp2Qfmh0AYEjBCMEWCgdSzbplRM6HiwBokDBiCkz/7AuMqGhQBMXdQoYSFK2r1+kHWAsUcCBgwM8CeQayhNlAJQCA3zk+LtyAYbLmDF8oJz0DQUFDtasUeBBsZo8Rvj0GcBkBueVH7JwmU2bS5fXSt0sWXPggIMQO91FYcCgAQLcKzFwwcK8uZnbyJN22F2kyJrSw374kGNEBQ8L0VeqINO8uZgC4ZVeeXAgQAAOcECZMMBEDgEA6VcWEFOeORkV+Sn1hgLu9XAHJnPQ4YMBMhwXoEpdmNEfFlwQ8KBSMazRQw8H7FHJDzI00EBJF6YEQBYTYpHFZiUm9UAAGwInSRsE7ONgiycpN6EZX+ColB9F0EADFZHYEQQBM4CH1P8HmTXZJItHqRDGhGJc0CSJLDHp5Jb4jYWCAzQIUMMjSGAQBJRHffBFFmy26eabWXRRQANdolQAGBOSAWebFwxg4UkL7Ckom10M0IBSQAgggAONzCAEBmIpRcByKVZqBhhcfAEgSl1sUWmKNGyhRRldkGjAlJ9OuAUYXnRxKFIjCOAEo4psI8SNSY2X6qdbeAFBlyfu+ikYY2AgxQB4CqtqGQMkNYITTuCQSAoitIBmUhDwp2yKYUBgEgZebJsiGrdd4Km45dHgRbNIrQEtdoX84ctkZX0hIbr9eQGglPjm2wCK/TZHQxl/HhWAEwIsYEg/9JIVW8DlbdHjnRAzp8X/BeFWjIUY0B3VgaxjEpICAh/UOdakO8I5xhnaTugFAZ1OyMWbY3CBRopaZIFqxHCWcca5E5aBJUsKQJsGId7gOpau/YnhLUoLNNAFeRNqwQDA/a2IEgYNfBFB1VloUTW7gBrwRbL9hWGAUjTMOsgfACCgZFnZ5rmpiVl83XQWGZfH40oQAN1czoIzd8baKn0wBs53H7UEtAqrIYIFJpNlr8wFpxS4qjpT+XRKMfd3RhY0BG3sSqGXp0XjLHUA7Q2CsJBQXw9POMa1J23eHxpZoN3cfyoFG3QZE9KQxVGpD846S0W4rUY4c5OFcn8R9MjS5f0RjrlK4BafxRmqXnAU/9blAa8UB070IEgFlDFdHhqfp1R72uQ3d7tK/Pa3Rdhjs4QB8dtTCgWgJYgVUKZu2VueSQwAvqD1rTnV04/vmAOGLBQOC4djCQOo1p/7CZCAKbgC+/yCvfJUiCXJY04EOre7+J0khVgIA+lMtxIAeG1C5CLLAJ0gCBQYsC/C6yDujkWp7PWuassLYnm8AMB0HU8/HCxPGBS4kh0KogMoGCFZdES9J6LkAwXwQun6Q4MxfOGCJ0xJ9yb0vfBxDwJinFD1KncUK6phIVpcWhSZQy4V+FEFEOjCGLQwRtENoH7M8SBK8sczsWWvC38EZBfK4EiZUXEl6FPf8zpwhb7sR/9VWghlKMVwrxSJ4QsEeKAKvWinCWKhghcUlSi1QMphia8szaPVB97Qgb5ESGNo+MICToVDF5rEXBOSYSEDdsqhSed1gkiBBN7wQ6UosV/NPJYrrbYSRGKBiRoDgzD78jgnRO55EujlWNbYLxqcYZxSQGZ/uPCqramSOW0MWATOcAFnss15gnjBCSTQSaUwUlxmIMMYBlCnGXbQn8TUH//wZQYZMoCOSSmaE45GiCGc4A1joZj+ZjlLMnBhDIVCU6BIGkpWnkQFXGDp6C4oBpaG0qQoZcAQpQMyQ6TgBCdQJ1JgyIUL0IMeBfgjAfxpEkAe9aiZA9QAnkqPQy6TOV7/MOpRk+pHAux0LAdL2CGSEIMToAAp10wkU30khQU0sTxZwChy3OUEeBkiAWUtaHLuuUK2sqQBDYxYx/JTTmkpogR5ZclB+WhMv0qBAZVsDhjQE6By0moRiDWrBKvGAMeqRHdSvCRlNHpZRpRgAjHoQB6lQNR6etYkeXPZ6aLTgQNAq7SNSABqJaDFtGJhDGv10QIWx0a5+oUIPYCWYSOhhCdMQLNS+N8Wpktd3r3WntSlLhgG+xoFyEoAMprEC0DghxjwFgAFoCo9EHddKaBXvRBwLWWIcDAnRICjlkiAG1D7htW2168nsK1yQfGCKfgBtar9r19RwAFZOaEI+AWF/xL04IYD91fBJTrBGhzcg/CygwUUPrAEzorh8BzhAIoSQA9gpxgWgGAHbnBDDKhZYsr4gQMBCJMAAsBi0wgiCSUgwg5gPAEa1zgpEyBQD4QkJrv6eBApSIAedEAEIbshqP7F8BuOgOMNLbkIeHjBkxfxAinr4Mxn3sFHSXzdHRxBAe2B0YYOcAMPjfkRL0DAFIgAgz77mQh++KhQ8zMBIjwANNVxj6JxEAI735kSIhjCnilA6UpT+gh9rnCg38BpTkvg058GKlCJcGm2iKY3B6hOEQJwABxsIDGPFkYKPlACEFgBKlB5gK53PZUlrAUIbGkLYQpjmNCcujdFUAAVbjgwBDHHWjEpUAICPOCBDWwgLb4GdrDbQmzDcIAKIxiBFaxQgmY/+9yLEEEaEHAVdLv73fCOd7wDAQA7AA==" />

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

Editováno 2.6.2014 12:34
 
Nahoru Odpovědět
2.6.2014 12:32
Avatar
mkub
Tvůrce
Avatar
Odpovídá na ROOBYNSKYJ
mkub:2.6.2014 12:46

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

 
Nahoru Odpovědět
2.6.2014 12:46
Avatar
ROOBYNSKYJ
Člen
Avatar
ROOBYNSKYJ:2.6.2014 13:32

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

 
Nahoru Odpovědět
2.6.2014 13:32
Avatar
mkub
Tvůrce
Avatar
Odpovídá na ROOBYNSKYJ
mkub:2.6.2014 13:41

a hlavne nezabudni ich potom vkladat ako URI, nie ako URL do tagu <img>
cize do <img src="..."> nezabudni dat: "data:image/gif;ba­se64,..." tak, ako to je v tej ukazke

 
Nahoru Odpovědět
2.6.2014 13:41
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 12 zpráv z 12.