Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:35282 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 85683 invoked by uid 1010); 7 Feb 2008 09:26:15 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 85668 invoked from network); 7 Feb 2008 09:26:15 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 7 Feb 2008 09:26:14 -0000 Authentication-Results: pb1.pair.com header.from=jani.taskinen@sci.fi; sender-id=unknown Authentication-Results: pb1.pair.com smtp.mail=jani.taskinen@sci.fi; spf=permerror; sender-id=unknown Received-SPF: error (pb1.pair.com: domain sci.fi from 63.208.196.178 cause and error) X-PHP-List-Original-Sender: jani.taskinen@sci.fi X-Host-Fingerprint: 63.208.196.178 mho-01-bos.mailhop.org Received: from [63.208.196.178] ([63.208.196.178:55507] helo=mho-01-bos.mailhop.org) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id F1/C0-10179-5BECAA74 for ; Thu, 07 Feb 2008 04:26:13 -0500 Received: from [81.22.163.71] (helo=[10.6.109.198]) by mho-01-bos.mailhop.org with esmtpsa (SSLv3:RC4-MD5:128) (Exim 4.68) (envelope-from ) id 1JN31E-00096A-UE; Thu, 07 Feb 2008 09:26:09 +0000 X-Mail-Handler: MailHop Outbound by DynDNS X-Originating-IP: 81.22.163.71 X-Report-Abuse-To: abuse@dyndns.com (see http://www.mailhop.org/outbound/abuse.html for abuse reporting information) X-MHO-User: U2FsdGVkX1/PMX8X5IOn+fkY6kPVfLdb0YJVuc3ucRA= Reply-To: jani.taskinen@iki.fi To: Rasmus Lerdorf Cc: Stanislav Malyshev , 'PHP Internals' In-Reply-To: <47AA88A9.4000802@lerdorf.com> References: <47AA5354.7020806@zend.com> <47AA88A9.4000802@lerdorf.com> Content-Type: text/plain Date: Thu, 07 Feb 2008 11:26:06 +0200 Message-ID: <1202376366.26463.3.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.8.3 (2.8.3-2.fc6) Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] _REQUEST and variable_order From: jani.taskinen@sci.fi (Jani Taskinen) On Wed, 2008-02-06 at 20:27 -0800, Rasmus Lerdorf wrote: > Stanislav Malyshev wrote: > > Hi! > > > > This topic was already discussed here but never arrived to a conclusion, > > so I will raise it again. > > The Problem: > > We have $_REQUEST superglobal, which is often used to abstract GET/POST > > requests. However, in most cases we do not want GET/POST variables to > > mean the same as cookie and environment variables. We can avoid that by > > setting variables_order to 'GP' but then we lose _SERVER and _COOKIES > > which still can be very much useful. We cannot also reliably use > > something like 'CGP' since while it won't allow cookies to override > > GET/POST we still have no way of not accepting cookie that has no > > matching GET/POST. I think this should be cleaned up so that _REQUEST > > behavior would conform its use case. > > > > The proposal(s): > > 1. One way to fix it is to create a new .ini request_order that would > > control just _REQUEST. > > > > 2. Other solution would be to keep variables_order but drop 'C' parsing > > from _REQUEST - i.e. make _REQUEST never include cookies. I don't know > > how many people really need cookies together with get/post in REQUEST. > > > > 3. Yet another solution would be to make superglobals independent of > > variables_order - i.e. _COOKIE would always exist even if > > variables_order doesn't have the letter. I actually don't see any reason > > having JIT to remove any of the superglobals - if you don't use them, > > with JIT you don't pay for them. And with COOKIES it's not that it would > > be a big cost anyway - how many cookies could you have? > > Of course, it'd be more substantial change which could break some apps > > relying on some quirks of current behavior. > > > > So, what do you think on this? > > They are all about equivalent. Even #3 would need some sort of ini > override since otherwise it removes some flexibility we have today. > There are setups that specifically rely on disabling $_COOKIE to force > code to go through other mechanisms to get at the cookies. > > Perhaps a combination of 1 and 2. By default drop cookies from > $_REQUEST but have an ini override for the few cases where the app > actually relies on this behaviour. I have seen multi-page forms where > instead of bouncing previous inputs along in hidden fields it gets > transmitted in cookies and they use $_REQUEST to keep track of all of > the responses. What's wrong with the option 3? $_GET / $_POST / $_COOKIE should _always_ be there regardless of any ini setting. I didn't even know (before Stas brought it up) that variables_order affects these so in my book that's just a bug that needs fixing. And does not require any new ini options.. :) I pick door #3. -- Patches/Donations: http://pecl.php.net/~jani/