Bug #76010 [Opn]: Built in server slices the $_SERVER['REQUEST_URI'] value

From: Date: Mon, 26 Feb 2018 08:10:56 +0000
Subject: Bug #76010 [Opn]: Built in server slices the $_SERVER['REQUEST_URI'] value
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-214108@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=76010&edit=1 ID: 76010 User updated by: t dot gemza at secit dot pl Reported by: t dot gemza at secit dot pl Summary: Built in server slices the $_SERVER['REQUEST_URI'] value Status: Open Type: Bug Package: Built-in web server Operating System: Windows 7 and 8 64bit PHP Version: 7.2.2 Block user comment: N Private report: N New Comment: I forgot to add. The built in server was always run with a following command: php.exe -S 127.0.0.1:8001 Previous Comments: ------------------------------------------------------------------------ [2018-02-26 08:06:26] t dot gemza at secit dot pl Description: ------------ The built in server slices the $_SERVER['REQUEST_URI'] value as shown on examples below. The problem is confirmed on Windows 7 and 8 64bit machines with following PHP versions: VC15 x64 Non Thread Safe (2018-Jan-31 23:18:33) http://windows.php.net/downloads/releases/php-7.2.2-nts-Win32-VC15-x64.zip VC15 x64 Thread Safe (2018-Jan-31 23:18:51) http://windows.php.net/downloads/releases/php-7.2.2-Win32-VC15-x64.zip VC14 x64 Non Thread Safe (2018-Jan-31 23:22:44) http://windows.php.net/downloads/releases/php-7.1.14-nts-Win32-VC14-x64.zip VC14 x64 Thread Safe (2018-Jan-31 23:23:00) http://windows.php.net/downloads/releases/php-7.1.14-Win32-VC14-x64.zip The problem was also confirmed on machines with PHP 7.1.10 and 7.2.1 (XAMP). The problem will never be 100% reproducable. In our tests the full REQUST_URI was returned in about 3% of all of the test script runs. So if you can not reproduce it try different PHP version and than back to the previously tested - it should appear. Test script: --------------- ---- CODE START ---- <?php echo $_SERVER['REQUEST_URI']; ---- CODE END ---- CURL command: curl "http://127.0.0.1:8001/administrator/dealer/account/?draw=3^&columns^%^5B0^%^5D^%^5Bdata^%^5D=id^&columns^%^5B0^%^5D^%^5Bname^%^5D=^&columns^%^5B0^%^5D^%^5Bsearchable^%^5D=true^&columns^%^5B0^%^5D^%^5Borderable^%^5D=true^&columns^%^5B0^%^5D^%^5Bsearch^%^5D^%^5Bvalue^%^5D=^&columns^%^5B0^%^5D^%^5Bsearch^%^5D^%^5Bregex^%^5D=false^&columns^%^5B1^%^5D^%^5Bdata^%^5D=name^&columns^%^5B1^%^5D^%^5Bname^%^5D=^&columns^%^5B1^%^5D^%^5Bsearchable^%^5D=true^&columns^%^5B1^%^5D^%^5Borderable^%^5D=true^&columns^%^5B1^%^5D^%^5Bsearch^%^5D^%^5Bvalue^%^5D=^&columns^%^5B1^%^5D^%^5Bsearch^%^5D^%^5Bregex^%^5D=false^&columns^%^5B2^%^5D^%^5Bdata^%^5D=lastName^&columns^%^5B2^%^5D^%^5Bname^%^5D=^&columns^%^5B2^%^5D^%^5Bsearchable^%^5D=true^&columns^%^5B2^%^5D^%^5Borderable^%^5D=true^&columns^%^5B2^%^5D^%^5Bsearch^%^5D^%^5Bvalue^%^5D=^&columns^%^5B2^%^5D^%^5Bsearch^%^5D^%^5Bregex^%^5D=false^&columns^%^5B3^%^5D^%^5Bdata^%^5D=address^&columns^%^5B3^%^5D^%^5Bname^%^5D=^&columns^%^5B3^%^5D^%^5Bsearc! hable^%^5D=true^&columns^%^5B3^%^5D^%^5Borderable^%^5D=true^&columns^%^5B3^%^5D^%^5Bsearch^%^5D^%^5Bvalue^%^5D=^&columns^%^5B3^%^5D^%^5Bsearch^%^5D^%^5Bregex^%^5D=false^&columns^%^5B4^%^5D^%^5Bdata^%^5D=postalCode^&columns^%^5B4^%^5D^%^5Bname^%^5D=^&columns^%^5B4^%^5D^%^5Bsearchable^%^5D=true^&columns^%^5B4^%^5D^%^5Borderable^%^5D=true^&columns^%^5B4^%^5D^%^5Bsearch^%^5D^%^5Bvalue^%^5D=^&columns^%^5B4^%^5D^%^5Bsearch^%^5D^%^5Bregex^%^5D=false^&columns^%^5B5^%^5D^%^5Bdata^%^5D=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" Expected result: ---------------- Whole request URI started with /administrator/dealer/account/?draw=3&... Actual result: -------------- C:\>curl "http://127.0.0.1:8001/administrator/dealer/account/?draw=3^& columns^%^5B0^%^5D^%^5Bdata^%^5D=id^&columns^%^5B0^%^5D^%^5Bname^%^5D=^&columns^ %^5B0^%^5D^%^5Bsearchable^%^5D=true^&columns^%^5B0^%^5D^%^5Borderable^%^5D=true^ &columns^%^5B0^%^5D^%^5Bsearch^%^5D^%^5Bvalue^%^5D=^&columns^%^5B0^%^5D^%^5Bsear ch^%^5D^%^5Bregex^%^5D=false^&columns^%^5B1^%^5D^%^5Bdata^%^5D=name^&columns^%^5 B1^%^5D^%^5Bname^%^5D=^&columns^%^5B1^%^5D^%^5Bsearchable^%^5D=true^&columns^%^5 B1^%^5D^%^5Borderable^%^5D=true^&columns^%^5B1^%^5D^%^5Bsearch^%^5D^%^5Bvalue^%^ 5D=^&columns^%^5B1^%^5D^%^5Bsearch^%^5D^%^5Bregex^%^5D=false^&columns^%^5B2^%^5D ^%^5Bdata^%^5D=lastName^&columns^%^5B2^%^5D^%^5Bname^%^5D=^&columns^%^5B2^%^5D^% ^5Bsearchable^%^5D=true^&columns^%^5B2^%^5D^%^5Borderable^%^5D=true^&columns^%^5 B2^%^5D^%^5Bsearch^%^5D^%^5Bvalue^%^5D=^&columns^%^5B2^%^5D^%^5Bsearch^%^5D^%^5B regex^%^5D=false^&columns^%^5B3^%^5D^%^5Bdata^%^5D=address^&columns^%^5B3^%^5D^% ^5Bname^%^5D=^&columns^%^5B3^%^5D^%^5Bsearchable^%^5D=true^&columns^%^5B3^%^5D^% ^5Borderable^%^5D=true^&columns^%^5B3^%^5D^%^5Bsearch^%^5D^%^5Bvalue^%^5D=^&colu mns^%^5B3^%^5D^%^5Bsearch^%^5D^%^5Bregex^%^5D=false^&columns^%^5B4^%^5D^%^5Bdata ^%^5D=postalCode^&columns^%^5B4^%^5D^%^5Bname^%^5D=^&columns^%^5B4^%^5D^%^5Bsear chable^%^5D=true^&columns^%^5B4^%^5D^%^5Borderable^%^5D=true^&columns^%^5B4^%^5D ^%^5Bsearch^%^5D^%^5Bvalue^%^5D=^&columns^%^5B4^%^5D^%^5Bsearch^%^5D^%^5Bregex^% ^5D=false^&columns^%^5B5^%^5D^%^5Bdata^%^5D=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Only the XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX are returned ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=76010&edit=1

« previous php.bugs (#214108) next »