Bug #14084 Updated: Recursive call of index.php/test=2

From: Date: Fri, 16 Nov 2001 15:46:49 +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-70665@lists.php.net to get a copy of this message
ID: 14084 Updated by: hholzgra Reported By: francis@groupeiweb.com Status: Bogus Bug Type: Apache related Operating System: Redhat 7.1 PHP Version: 4.0.6 New Comment: 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 Previous Comments: ------------------------------------------------------------------------ [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

« previous php.dev (#70665) next »