Re: Server side redirection - yet again

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks again.

Should work perfectly.

Stay well

Jacob Kruger
Blind Biker
Skype: BlindZA
'...fate had broken his body, but not his spirit...'

----- Original Message ----- From: "Richard Quadling" <rquadling@xxxxxxxxxxxxxx>
To: "Jacob Kruger" <jacobk@xxxxxxxxxxxxxx>
Cc: <php-windows@xxxxxxxxxxxxx>
Sent: Wednesday, January 27, 2010 1:20 PM
Subject: Re:  Server side redirection - yet again


2010/1/27 Jacob Kruger <jacobk@xxxxxxxxxxxxxx>:
Makes sense, and sort of what thought would be possible/doable.

Will look into it - off-hand, what function etc. do you use to set
document/response headers?

TIA

Jacob Kruger
Blind Biker
Skype: BlindZA
'...fate had broken his body, but not his spirit...'

----- Original Message ----- From: "Richard Quadling"
<rquadling@xxxxxxxxxxxxxx>
To: "Jacob Kruger" <jacobk@xxxxxxxxxxxxxx>
Cc: <php-windows@xxxxxxxxxxxxx>
Sent: Wednesday, January 27, 2010 12:42 PM
Subject: Re:  Server side redirection - yet again


2010/1/27 Jacob Kruger <jacobk@xxxxxxxxxxxxxx>:

I know this most likely isn't possible, and am currently using
javascript,
along with using PHP script in each page to just double check a session
login before displaying page content to make sure the user/person
browsing
the specific page is in fact logged in, etc., but I now have a word
document
that would be nice to make downloadable from the members section of a
website, but not sure how it would be possible to really stop someone
from
downloading the file if, for whatever reason they had the direct URL for
it,
without sort of never really offering that to anyone without having sort
of
redirected them via backend to get the file - sort of like maybe loading
the
file into a buffer of sorts, setting the response file type, and then
sending it to them - not sure how possible/doable this is via PHP, or on
a
linux server?

I know I could alternatively just create an HTML file bazsed on the word document, and then implement the PHP session checking into it, etc., but
would really prefer to just keep the document unchanged as such.

Stay well

Jacob Kruger
Blind Biker
Skype: BlindZA
'...fate had broken his body, but not his spirit...'


__________ Information from ESET NOD32 Antivirus, version of virus
signature
database 4808 (20100126) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com




--
PHP Windows Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Step 1 would be to put the document outside of the
doc_root/public_html/etc. That way there is no direct URL.

Step 2 would be to create a downloader which validates the session and
if all is well, issues the appropriate headers to force a download and
then readfile() the document.

No direct access to the download. Must be validated to get the
download. Simple to implement.

--
-----
Richard Quadling
"Standing on the shoulders of some very clever giants!"
EE : http://www.experts-exchange.com/M_248814.html
EE4Free : http://www.experts-exchange.com/becomeAnExpert.jsp
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
ZOPA : http://uk.zopa.com/member/RQuadling

--
PHP Windows Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


__________ Information from ESET NOD32 Antivirus, version of virus
signature database 4809 (20100127) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com





__________ Information from ESET NOD32 Antivirus, version of virus signature
database 4809 (20100127) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com





Edited code from one of my classes...

<?php
// Do your session validation and redirection first.

// You will need to have something like $_GET['FileID'] to determine which file.

// You will need to translate the $_GET['FileID'] to the actual file
name => $PhysicalFileName

// I use the following headers to force a downloads.

// You can change the Content-Type to application/msexcel of Excel or
application/pdf for Adobe Acrobat files, etc.

header('HTTP/1.1 200 OK', True, 200);
header('Content-Description: File Transfer');
header('Content-Type: application/msword');
header('Content-Disposition: attachment; filename="document.doc"');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($PhysicalFileName));

// readfile() will simply pass the file from the drive straight to the client.
readfile($PhysicalFileName);

// Exit to close the process.
exit;


--
-----
Richard Quadling
"Standing on the shoulders of some very clever giants!"
EE : http://www.experts-exchange.com/M_248814.html
EE4Free : http://www.experts-exchange.com/becomeAnExpert.jsp
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
ZOPA : http://uk.zopa.com/member/RQuadling

__________ Information from ESET NOD32 Antivirus, version of virus signature database 4809 (20100127) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com





__________ Information from ESET NOD32 Antivirus, version of virus signature database 4809 (20100127) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com




--
PHP Windows Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [PHP Users]     [PHP Database Programming]     [PHP Install]     [Kernel Newbies]     [Yosemite Forum]     [PHP Books]

  Powered by Linux