Bug #14084 Updated: Recursive call of index.php/test=2
| From: | francis at groupeiweb dot com | Date: | Fri, 16 Nov 2001 15:52:02 +0000 |
| Subject: | Bug #14084 Updated: Recursive call of index.php/test=2 | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-70666@lists.php.net to get a copy of this message | ||
ID: 14084
User updated by: francis@groupeiweb.com
Reported By: francis@groupeiweb.com
Status: Bogus
Bug Type: Apache related
Operating System: Redhat 7.1
PHP Version: 4.0.6
New Comment:
Thanks you for your reponse. I will post a question on
php-general@lists.php.net for a solution to block that.
Previous Comments:
------------------------------------------------------------------------
[2001-11-16 10:46:48] hholzgra@php.net
still not a php problem, *and* intended behaviour
if only part of a URL path exists on the server
and points to a file (not directory)
the web server will call that file and pass
the rest of the URL as $PATH_INFO
so /index.php/test=2 calls /index.php with $PATH_INFO="test=2"
for <IMG SRC="image1.gif"> the browser will
strip of what it thinks to be the filename
(as it does not know anything about the server
file system), that is anything after the last
'/', ending up with "/index.php/", and adds
the relative path from the src attribute
so requesting "/index.php/image1.gif"
which is again treated by the webserver as
a request to /index.php with $PATH_INFO
="image.gif" this time
------------------------------------------------------------------------
[2001-11-16 10:38:14] derick@php.net
erm, ofcourse this doesn't work. / is not a valid URL separator.
Ask for support questions on the php-general@lists.php.net mailinglist.
Not a PHP bug > Bogus.
------------------------------------------------------------------------
[2001-11-16 10:34:13] francis@groupeiweb.com
When we open this url : http://localhost/index.php/test=2
Yep index.php/test=2 not index.php?test=2
Apache open the page index.php one time for every broke link he find in the index.php page. Example
:
<?PHP
// Simple PHP test page
?>
<HTML>
<TITLE>Simple PHP test page</TITLE>
<BODY>
<P>Simple PHP test page</P>
<IMG SRC="image1.gif"><br>
<IMG SRC="image2.gif"><br>
<IMG SRC="image3.gif">
</BODY>
</HTML>
<?
// Keep a log
/* Log table
CREATE TABLE
simple_log (
sl_time BIGINT UNSIGNED NOT NULL,
sl_url VARCHAR(255) NOT NULL
) comment = 'Utilise pour tester le bugs de anikin index/id=2'
*/
// Current time
$now = time();
// Database configuration
$host = 'localhost';
$username = '';
$password = '';
$database = '';
// Open a database connection
$linkd = mysql_connect($host, $username, $password);
mysql_select_db($database, $linkd);
// Insert a log
$sql = "INSERT INTO simple_log (sl_time, sl_url) VALUES ('$now',
'$REQUEST_URI')";
mysql_query($sql, $linkd);
// Close the database connection
mysql_close($linkd);
?>
Images are broke because the path http://localhost/index.php/image1.gif does not
exist. In this case, Apache open 4 times the page index.php.
Here the listing of the log table :
sl_time sl_url
1005924055 /index.php/test=2
1005924055 /index.php/image1.gif
1005924055 /index.php/image2.gif
1005924055 /index.php/image3.gif
We have the same problem on 3 differents servers.
Compilation script :
'./configure' '--with-mysql=/virtual/mysql' '--enable-bcmath'
'--with-gd' '--with-dbase' '--with-curl' '--with-xml'
'--with-pgsql=/virtual/postgres/' '--with-imap'
'--with-apxs=/virtual/apachedev/bin/apxs'
Apache version :
1.3.20
Php version :
4.0.6 and 4.2.0-dev
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=14084&edit=1