A sors úgy hozta, hogy egy rövid PHP scriptet kell készítenem, de nagyon felsültem az IE-vel. Egy PDF dokumentumot szeretnék megjeleníteni PHP-ból, a következő kóddal:
session_cache_limiter('nocache');
session_cache_expire(30);
session_start();
header("Content-type: application/pdf");
header("Content-Length: filesize($filename)");
header('Content-Disposition: inline; filename="xy.pdf"');
...
echo $contents;
Az FF teljesen jól megjeleníti a PDF tartalmat az IE meg nem. Ha kiveszem session_start() -ot, akkor az IE is működik, viszont így meg nem kapom vissza a $_SESSION szuperglobális tömböt. Van megoldás? Próbáltam
az ob_start() és az ob_end_flush() -t használni hiába.
- 1160 megtekintés
Hozzászólások
header("Content-Length: filesize($filename)");
=>
header(sprintf("Content-Length: %d",filesize($filename)));
- A hozzászóláshoz be kell jelentkezni
Igen ezt valóban elírtam, mégis valami nem jó a header-ben.
- A hozzászóláshoz be kell jelentkezni
a session start() mindig az elején legyen.
pl.: igy kezdödjön a kód:
< ? php
session start()
..
..
- A hozzászóláshoz be kell jelentkezni
én mindíg így szoktam kezdeni a php oldalakat, de így sem megy az Explorer egyik verziójában sem,
de FF-ban és Operában tökéletesen megy.
- A hozzászóláshoz be kell jelentkezni
Esetleg probalj meg jatszani a sorrendel, a php manualban azt irjak ez mukodik:
header("Expires: Sat, 01 Jan 2000 00:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");
session_cache_limiter("must-revalidate");
header("Content-Type: application/vnd.ms-excel");
header('Content-Disposition: attachment; filename="fileToExport.xls"');
// and after you start the session
session_start();
( http://fr.php.net/manual/en/function.session-cache-limiter.php#48822 excel file-ra van a pelda, de valoszinuleg ez a problema pdf-el is)
_______________________________________________________
UBUNTU 7.10 Rock's!
Type cat vmlinuz > /dev/audio to hear the Voice of God.
- A hozzászóláshoz be kell jelentkezni
Sajnos ez sem jó.
Meg kéne nézni valahogy a header információkat. Van erre valami kliens program? A telnet alapból nem kényelmes, mert nem akarnám a böngésző adatait begépelni neki.
- A hozzászóláshoz be kell jelentkezni
LiveHTTPHeaders extension FF ala.
Tyrael
- A hozzászóláshoz be kell jelentkezni
Firebug tudja, es fejleszteshez nagyon alap.
Letoltod, bekapcsolod, Net ful, ranyomsz a megfelelo url-re, headers (a kikuldott es a kapott header is ott van).
Vagy ha kozvetlenul az IE kommunikaciojara vagy kivancsi, akkor tedd fel a wireshark nevu progit. Halozat sniffer, beallithato, hogy HTTP-re szurjon (TCP 80-as portra), es ossze tudja rakni a stream-et.
----
400 MHz CPU, 64MiB RAM, 2GiB Flash, 480x640
honlap készítés
- A hozzászóláshoz be kell jelentkezni
Nyilvánvalóan IE-t tesztelni csak Win alatt tudok, a wireshark jó ötlet remélem megy a Pista alatt is. Ha nem akkor Steve és Billy is csuklani fog! :) Azt hiszem hogy maga session és a PDF header üti ki az IE-t, így nem sok reményt látok arra hogy ebben a formában valaha is működni fog.
Valószínűleg az autentikációt és a pfd streaminget nem tudom megcsinálni egy menetben. Ráadásul a PDF időbélyegzővel van már ellátva, lévén ez egy számviteli bizonylat. Ezért biztosítani kell azt is hogy csak az illetékesek férjenek hozzá, így az autentikáció nem elhagyható.
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
törölve
- A hozzászóláshoz be kell jelentkezni
Mégis csak ez volt a megoldás:
session_cache_limiter("private, must-revalidate");
Thx
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni