Am 09.04.2007 um 15:41 schrieb Arpad Ray:
Arpad Ray wrote:
So, is this behaviour deliberate, and if so, what's the rationale?
The problem seems to be in (5.2.x CVS) php_variables.c, lines 161-166:
if (PG(magic_quotes_gpc) && (index != var)) {
/* no need to addslashes() the index if it's the
main variable name */
escaped_index = php_addslashes(index, index_len,
&index_len, 0 TSRMLS_CC);
} else {
escaped_index = index;
}
If "&& (index != var)" is removed, all keys are escaped as
expected. The equivalent line for keys of scalar variables (198)
lacks this check since 5.0.0, and since then it has escaped them
correctly. It's still there in the 4.4 branch.
Is there any reason not to remove this check, at least in the 5.2
branch?
Yes, BC. magic_quotes is crappy/complicated enough to deal with
already, please don't make it behave differently between PHP5
versions. No need to. Nobody should use it anymore, so there is no
reason to change behavior again anyway.
David
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php