Post the php here, I'm sure NF or similar here will spot the problem in no time.
- Visitors can check out the Forum FAQ by clicking this link. You have to register before you can post: click the REGISTER link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. View our Forum Privacy Policy.
- Want to receive the latest contracting news and advice straight to your inbox? Sign up to the ContractorUK newsletter here. Every sign up will also be entered into a draw to WIN £100 Amazon vouchers!
Apache and pdfs
Collapse
X
-
-
Originally posted by DimPrawn View PostPost the php here, I'm sure NF or similar here will spot the problem in no time.
Our good friend pdf.php executes Print.php (I know follow how it all links together after some reading through the code)
Print.php renders the pdf like this
Code:$pdf->Output("Invoice.pdf", "I");
The pertinent bit in the Output method of the invoice class looks like this
Code:switch($dest) { case 'I': //Send to standard output if(isset($HTTP_SERVER_VARS['SERVER_NAME'])) //if (true) { //We send to a browser Header('Content-Type: application/pdf'); if(headers_sent()) $this->Error('Some data has already been output to browser, can\'t send PDF file'); Header('Content-Length: '.strlen($this->buffer)); Header('Content-disposition: inline; filename='.$name); } echo $this->buffer; break;
Code:if(isset($HTTP_SERVER_VARS['SERVER_NAME']))
This document explaining what $HTTP_SERVER_VARS actually is makes me nervous
$HTTP_SERVER_VARS [deprecated]
$_SERVER -- $HTTP_SERVER_VARS [deprecated] — Server and execution environment information
Report a bug
Description
$_SERVER is an array containing information such as headers, paths, and script locations. The entries in this array are created by the web server. There is no guarantee that every web server will provide any of these; servers may omit some, or provide others not listed here. That said, a large number of these variables are accounted for in the » CGI/1.1 specification, so you should be able to expect those.
$HTTP_SERVER_VARS contains the same initial information, but is not a superglobal. (Note that $HTTP_SERVER_VARS and $_SERVER are different variables and that PHP handles them as such)
Now fecking idea where next. I tried removing the if case and just setting the Content_Type anyway, but I then get an empty page loading instead.
OK NF, over to you.Knock first as I might be balancing my chakras.Comment
-
The correct (ie non deprecated code would be)
Code:case 'I': //Send to standard output //if(isset($HTTP_SERVER_VARS['SERVER_NAME'])) if(isset($_SERVER['SERVER_NAME'])) //if (true) { //We send to a browser Header('Content-Type: application/pdf'); if(headers_sent()) $this->Error('Some data has already been output to browser, can\'t send PDF file'); Header('Content-Length: '.strlen($this->buffer)); Header('Content-disposition: inline; filename='.$name); } echo $this->buffer; break;
I added the line
Code:error_reporting(E_ALL);
So yes it is the content type not being set correctly, but when you set it then it loads nothing at all.Knock first as I might be balancing my chakras.Comment
-
I restarted apache out of desperation.
It works.
A luverly little pdf gets opened up.
Off for a glass of vino, before coming back and pozzie repping everyone in this thread. Time for some suity loving, you better buckle up.Knock first as I might be balancing my chakras.Comment
-
Originally posted by suityou01 View PostI restarted apache out of desperation.
It works.
A luverly little pdf gets opened up.
Off for a glass of vino, before coming back and pozzie repping everyone in this thread. Time for some suity loving, you better buckle up.Comment
-
Originally posted by suityou01 View PostI restarted apache out of desperation.
It works.
A luverly little pdf gets opened up.
Off for a glass of vino, before coming back and pozzie repping everyone in this thread. Time for some suity loving, you better buckle up.Vote Corbyn ! Save this country !Comment
-
Originally posted by suityou01 View PostSo it looks like as I built this machine from the latest bits the php version is too high and hence I have a build problem.
Originally posted by suityou01 View PostI restarted apache out of desperation.
It works.
A luverly little pdf gets opened up.
Behold the warranty -- the bold print giveth and the fine print taketh away.Comment
- Home
- News & Features
- First Timers
- IR35 / S660 / BN66
- Employee Benefit Trusts
- Agency Workers Regulations
- MSC Legislation
- Limited Companies
- Dividends
- Umbrella Company
- VAT / Flat Rate VAT
- Job News & Guides
- Money News & Guides
- Guide to Contracts
- Successful Contracting
- Contracting Overseas
- Contractor Calculators
- MVL
- Contractor Expenses
Advertisers
Contractor Services
CUK News
- A new hiring fraud hinges on a limited company, a passport and ‘Ade’ Today 09:21
- Is an unpaid umbrella company required to pay contractors? Yesterday 09:28
- The truth of umbrella company regulation is being misconstrued Nov 25 09:23
- Labour’s plan to regulate umbrella companies: a closer look Nov 21 09:24
- When HMRC misses an FTT deadline but still wins another CJRS case Nov 20 09:20
- How 15% employer NICs will sting the umbrella company market Nov 19 09:16
- Contracting Awards 2024 hails 19 firms as best of the best Nov 18 09:13
- How to answer at interview, ‘What’s your greatest weakness?’ Nov 14 09:59
- Business Asset Disposal Relief changes in April 2025: Q&A Nov 13 09:37
- How debt transfer rules will hit umbrella companies in 2026 Nov 12 09:28
Comment