Autor Zpráva
Kato
Profil
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
Zkusil bych se nejdřív podívat co ti tam hází ten výstup.
Anonymní
Profil *
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
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))
Toto téma je uzamčeno. Odpověď nelze zaslat.

0