Im developing a system which is supposed to show reports by client. These reports need previous calculations to be done before the actual report is shown.

Since the calculation process is sometimes tedious and long, and sometimes the data that the report uses gets refreshed, the user must be able to re-calculate those reports. For those reasons, the script that generates the report is separated from the script that actually shows the report.

In short, I have two scripts, lets say they're called 'generateReport.php' and 'showReport.php'.

When an user clicks on a client to see its report 'showReport.php' checks if the data it needs has been generated already and if it is, it will show the report. 
If the data is not there, it'll forward the brower to 'generateReport.php' and when finished, it will forward the browser to 'showReport.php'

The problem arises when an user clicks on two clients and they both need theyre data generated.

The first clicked client gets to 'generateReport.php' where the user sees a bar which lets him/her know the whole process. While the page where the second client should be generated just stays there, waiting.

If the first client takes too long, the second one apparently times out and just stays there.

I understand that since im hitting the same php ('generateReport.php') on two tabs on the same browser, apache wont process both requests concurrently so, Is there a way to avoid the second (and possibly third, fourth, etc..) window NOT to time out?

Note: 'generateReport.php' and 'showReport.php' have set_time_limit(0); just for testing and it apparently does nothing.

Note2: I have access to php.ini in my hosting environment

Note3: So sorry for the longish/only boring text post

Thanx in advance!

EDIT1:

Thank you Twisty for your reply.


The requests are generated by HTTP GETs by an user clicking anchor tags.
header("Location: ...") is used to take the user from generateReport to showReport.
I was refering to browser tabs, yes.



Question: FIPS 140 compliance for encrypted files
Answer: FIPS 140-2 only certifies cryptographic modules, not entire systems. So, to tell if your system is 140-2 compliant, it must be using a 140-2 certified module. NIST publishes a list of all FIPS 140-2 certified cryptographic modules.

It is important to remember, though, that 140-2 certification does not certify that the module is used in a secure manner. From the FIPS 140-2 document:


  Similarly, the use of a validated cryptographic module in a computer or telecommunications system is not sufficient to ensure the security of the overall system.


Looking over the document, I don't see anything on specific key sizes. It discusses key management, including key storage. So you'd have to make sure keys are stored properly. I don't see anything in the document about requirements on the data which is to be encrypted. That makes sense though as you would want your module to be data agnostic.

So, there is no way to look at an encrypted file and tell if it is FIPS 140-2 compliant. You would have to look at the module that did the encrypting.