[Phplib-trackers] [ phplib-Bugs-550783 ] Malformed $QUERY_STRING with PHP 4.2.0
Brought to you by:
nhruby,
richardarcher
|
From: <no...@so...> - 2002-07-03 21:03:51
|
Bugs item #550783, was opened at 2002-04-30 16:10 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=403611&aid=550783&group_id=31885 Category: Session Group: 7.4pre1 Status: Open Resolution: None >Priority: 6 Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: Malformed $QUERY_STRING with PHP 4.2.0 Initial Comment: I'm using PHPLib 7.4pre1 with PHP 4.2.0(maybe latest version at now). $sess->purl() method in login.ihtml outputs the extra string `?\1' when session id is only included in $QUERY_STRING. For example, the following code is written. .../login.php?\1 This problem is caused by ereg_replace function in PHP 4.2.0. In 4.1.2, \digit(back-references) is replaced to "" when referenced string is "", but in 4.2.0 replaced to `\digit'. The following is the part of get_id() method in Session class. // Remove session ID info from QUERY String - it is in cookie if ( isset($QUERY_STRING) && ("" != $QUERY_STRING) ) { $QUERY_STRING = ereg_replace( "(^|&)".quotemeta(urlencode($this->name))."=".$id."(&|$)", "\1", $QUERY_STRING); } Finally, I added the the following code fragment: $QUERY_STRING = ereg_replace("\\1", "", $QUERY_STRING); Of cource, this is not a bug. I think that this is a effet of multi-byte extension to regexp feature in PHP. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=403611&aid=550783&group_id=31885 |