|
Joined: Apr 2002
Posts: 1,768
Addict
|
Addict
Joined: Apr 2002
Posts: 1,768 |
After my web host upgraded PHP to version 4.2.3, I ran into the exact same problem described in the first User Contributed Note (by Adam, posted 17-Jun-2003 03:12) on this page of the PHP manual. The posted solution is to "modify the CGI wrapper to create the PATH_TRANSLATED environment variable". How exactly is that done? I'd like to pass the info along to my web host, so that they can implement it. Or I could do something with an .htaccess file, if that's possible.
|
|
|
|
Joined: Apr 2001
Posts: 3,266
Member
|
Member
Joined: Apr 2001
Posts: 3,266 |
I am getting a headache reading that. Does putting the path in the php file help??
Case 4: PHP parser outside of web tree
A very secure option is to put the PHP parser binary somewhere outside of the web tree of files. In /usr/local/bin, for example. The only real downside to this option is that you will now have to put a line similar to:
#!/usr/local/bin/php
as the first line of any file containing PHP tags. You will also need to make the file executable. That is, treat it exactly as you would treat any other CGI script written in Perl or sh or any other common scripting language which uses the #! shell-escape mechanism for launching itself.
To get PHP to handle PATH_INFO and PATH_TRANSLATED information correctly with this setup, the php parser should be compiled with the --enable-discard-path configure option.
|
|
|
|
Joined: Apr 2001
Posts: 3,266
Member
|
Member
Joined: Apr 2001
Posts: 3,266 |
|
|
|
|
Joined: Apr 2001
Posts: 3,266
Member
|
Member
Joined: Apr 2001
Posts: 3,266 |
Something else I read. Hopefully something will turn on a lightbulb with you. I am a mere dummy with this stuff
EXAMPLE
In phpinfo(), $_SERVER['PATH_TRANSLATED'] = "D:\htdocs\bpu\members\accountCreate.php"
but echo $_SERVER['PATH_TRANSLATED'] produces:
D:\\htdocs\\bpu\\members\\accountCreate.php
(note escaped backslashes) This is useful for in strings.
08-Jul-2002 02:46 Wouldn't it be great if there was a variable called $_SERVER["PATH_USERHOME"]. Here is how to set it yourself:
$path_fs = split ("/", ltrim ($_SERVER["PATH_TRANSLATED"], "/")); $path_fs_rev = array_reverse ($path_fs);
$path_http = split ("/", ltrim ($_SERVER["PHP_SELF"], "/")); $path_http_rev = array_reverse ($path_http);
$num_same = 0; while ($path_fs_rev[$num_same] == $path_http_rev[$num_same]) { $num_same++; }
$path_userhome = array (); $numdirs_userhome = sizeof ($path_http) - $num_same; echo $numdirs_userhome;
for ($i = 0; $i < $numdirs_userhome; $i++) { array_push ($path_userhome, $path_http[$i]); }
$_SERVER["PATH_USERHOME"] = "/" . implode ("/", $path_userhome) . "/";
print_r ($_SERVER["PATH_USERHOME"]);
|
|
|
|
Joined: Apr 2002
Posts: 1,768
Addict
|
Addict
Joined: Apr 2002
Posts: 1,768 |
If you mean the pound-bang line #!/usr/bin/php, yes that's already in the file. The remainder of your post looks like it's from the Installed as CGI binary page of the PHP manual. That -enable-discard-path option looks like it might be what I need. I did a phpinfo(), and that option wasn't used when the CGI binary of PHP was built. I'll ask my web host if they can try that. Thanks
|
|
|
|
Joined: Apr 2001
Posts: 3,266
Member
|
Member
Joined: Apr 2001
Posts: 3,266 |
|
|
|
|
Joined: Mar 2000
Posts: 21,079 Likes: 3
I type Like navaho
|
I type Like navaho
Joined: Mar 2000
Posts: 21,079 Likes: 3 |
if it were a windows box...
|
|
|
Donate to UBBDev today to help aid in Operational, Server and Script Maintenance, and Development costs.
Please also see our parent organization VNC Web Services if you're in the need of a new UBB.threads Install or Upgrade, Site/Server Migrations, or Security and Coding Services.
|
|
Posts: 87
Joined: December 2001
|
|
Forums63
Topics37,573
Posts293,925
Members13,849
|
Most Online5,166 Sep 15th, 2019
|
|
Currently Online
Topics Created
Posts Made
Users Online
Birthdays
|
|
|
|