Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $descriptorspec = array(
- 0 => array("pipe", "r"), // stdin is a pipe that the child will read from
- 1 => array("pipe", "w"), // stdout is a pipe that the child will write to
- 2 => array("pipe", "w") // stderr is a file to write to
- );
- $newenv = $_ENV;
- $newenv["SCRIPT_FILENAME"] = $_ENV["X_SCRIPT_FILENAME"];
- $newenv["SCRIPT_NAME"] = $_ENV["X_SCRIPT_NAME"];
- if (is_executable($_ENV["X_SCRIPT_FILENAME"])) {
- $process = proc_open($_ENV["X_SCRIPT_FILENAME"], $descriptorspec, $pipes, NULL, $newenv);
- if (is_resource($process)) {
- fclose($pipes[0]);
- $head = fgets($pipes[1]);
- while (strcmp($head, "\n")) {
- header($head);
- $head = fgets($pipes[1]);
- }
- fpassthru($pipes[1]);
- fclose($pipes[1]);
- fclose($pipes[2]);
- $return_value = proc_close($process);
- }
- else {
- header("Status: 500 Internal Server Error");
- echo("Internal Server Error");
- }
- }
- else {
- header("Status: 404 Page Not Found");
- echo("Page Not Found");
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement