Autor | Zpráva | ||
---|---|---|---|
Kato Profil |
#1 · Zasláno: 14. 8. 2006, 18:56:22 · Upravil/a: Kato
Cauvec lidi - mam takovejhle skriptik na vypis obrazku z databaze (byl to nekde na netu primo priklad - tusim). Ovsem ma to jeden hacek - na wz.cz to funguje bezproblemu, na pipni.cz jakbysmet, ale na mem novem hostingu ani nahodou :( Jedine, co mi vypise je ve FF primo zadavanou URL - cili
http://www.domena.tld/obr/nahled.php?id=1 (a kdyz prohlednu zdrojak, tak to ma strukturu jako obrazek) a v IE zobrazi pouze "prazdny obrazek" (nicmene zdrojak je taky OK). <?php ob_start(); require_once('pripoj.inc.php'); // Připojení k MySQL serveru // URL musí obsahovat ID obrázku if(!isset($_GET['id'])) { die('Není určeno ID obrázku'); } // Získat čas poslední změny obrázku $vysledek = mysql_query( sprintf( 'SELECT UNIX_TIMESTAMP(zmena) AS zmena FROM obrazky WHERE id = %u', $_GET['id'] ) ) or die('Chyba při provádění dotazu: ' . mysql_error()); // Pokud obrázek neexistuje, odeslat chybovou hlavičku a skončit. if(!mysql_num_rows($vysledek)) { mysql_free_result($vysledek); header('HTTP/1.0 404 Not Found'); exit; } $zaznam = mysql_fetch_array($vysledek); $zmena = $zaznam['zmena']; mysql_free_result($vysledek); // Má-li klient stejný soubor, odeslat hlavičku HTTP/1.1 304 Not Modified $hlavicky = getallheaders(); if(isset($hlavicky['If-Modified-Since'])) { if($hlavicky['If-Modified-Since'] == gmdate('D, d M Y H:i:s', $zmena) . ' GMT') { header('HTTP/1.1 304 Not Modified'); // Obsah nebyl změněn header('Cache-Control: private'); // Cacheovat u klienta header('Pragma: '); header('Expires: '); header('Content-Type: '); exit; } } // Pošleme dotaz na zbylá data $vysledek = mysql_query( sprintf( 'SELECT mime, nahled, LENGTH(nahled) AS delka FROM obrazky WHERE id = %u', $_GET['id'] ) ); $zaznam = mysql_fetch_array($vysledek); header('Content-Type: ' . $zaznam['mime']); // MIME typ obsahu header('Content-Length: ' . $zaznam['delka']); // Délka obsahu header('Cache-Control: private'); // Cacheovat u klienta header('Pragma: '); header('Expires: '); // Poslední změna header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $zmena) . ' GMT'); echo $zaznam['nahled']; // Obsah obrázku mysql_free_result($vysledek); ob_end_flush(); ?> Kdyz nepouziju na zacatku/konci funkce ob_start()/ob_end_flush(), tak mi zobrazi: (a ve zdrojaku neni ani ten obrazek) Warning: Cannot modify header information - headers already sent by (output started at /home/www/domena.tld/subdomeny/www/connect.php:1) in /home/www/domena.tld/subdomeny/www/obr/nahled.php on line 67 Warning: Cannot modify header information - headers already sent by (output started at /home/www/domena.tld/subdomeny/www/connect.php:1) in /home/www/domena.tld/subdomeny/www/obr/nahled.php on line 69 Warning: Cannot modify header information - headers already sent by (output started at /home/www/domena.tld/subdomeny/www/connect.php:1) in /home/www/domena.tld/subdomeny/www/obr/nahled.php on line 71 Warning: Cannot modify header information - headers already sent by (output started at /home/www/domena.tld/subdomeny/www/connect.php:1) in /home/www/domena.tld/subdomeny/www/obr/nahled.php on line 73 Warning: Cannot modify header information - headers already sent by (output started at /home/www/domena.tld/subdomeny/www/connect.php:1) in /home/www/domena.tld/subdomeny/www/obr/nahled.php on line 75 Coz evidentne vypovida o nutnosti pouziti ob_.... Teda resp. jestli se to da resit nejak jinak, lip, tak nevim jak... Resp. ani takhle nevim, jak na to :( Predpokladam, ze problem bude "jenom" nekde v umisteni tech ob_... funkci...). Takze za jakekoliv tipy bych byl velmi vdecny - uz jsem z toho opravdu dost zoufaly :( Takze predem diky za nejake konkretnejsi odpovedi (nez jenom ve stylu projdi si manual ob_start ap. coz jsem stejne uz udelal, ale moc chytrej z toho nejsem :( ) |
||
koudi Profil |
#2 · Zasláno: 14. 8. 2006, 19:04:03
Zkusil bych se nejdřív podívat co ti tam hází ten výstup.
|
||
Anonymní Profil * |
#3 · Zasláno: 15. 8. 2006, 10:51:32
4koudi: Tak tedka ti moc nerozumim, co mi ma hazet vystup (resp. co tim myslis)....
Jestli myslis za a) ty warningy, tak ty hazi proste radky, kde se posilaji hlavicky - celkem jasny, ale nevim, jak z toho :-/ za b) vystup obrazku je pres echo $zaznam['nahled']; nebo za c) co se zobrazi ve zdrojaku - cili ����JFIF��<CREATOR" gd-jpeg v1.0 (using IJG JPEG v62), quality = 100��.......atd.atd.adt. (cili imho spravne) |
||
Kato Profil |
#4 · Zasláno: 15. 8. 2006, 11:58:20
Tak se omlouvam - to predtim jsem psal ja - Kato... (asi jak jsem testoval, tak jsem mezitim stihl promaznout cookies a nevsiml jsem si, ze jsem odhlasenej O:-) )
Nicmene problem je uz vyresen. Problem byl v souboru, kde je pripojeni databazi. A ten problem vznikl tim, ze jsem ten soubor upravoval NOTEPADem!!! Jakmile jsem soubor jenom otevrel v Notepadu a ulozil, tak se soubor "nafoukl" o 3kB a hlavne - prestal fungovat - zrejme si Notepad neco pridava do hlavicky... Takze pro priste - kdybyste se nekdo setkal s podobnym problemem, tak za a) nepouzivejte pokud mozno ani na drobne upravy Notepad a za b) kdyz uz, tak ukladejte soubor jako ANSI - jako UTF8 uz je v tomto pripade problem.... (a to nabizi Notepad standardne) Timto dekuji funkci headers_sent() za vyreseni problemu ;o)) |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0