Bug #16195 Updated: GET/POST-vars does not work according to standards

From: Date: Sun, 14 Jul 2002 18:49:21 +0000
Subject: Bug #16195 Updated: GET/POST-vars does not work according to standards
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-14150@lists.php.net to get a copy of this message
ID: 16195 Updated by: markonen@php.net Reported By: mail4news@mailme.dk -Status: Bogus +Status: Open Bug Type: Feature/Change Request Operating System: All PHP Version: 4.1.2 New Comment: No, mail4news@mailme.dk seems to be reading the spec correctly. The value of a NAME attribute is a NAME token. So, there is currently no standards-compliant way to retrieve the values of a SELECT MULTIPLE input of a POST form in PHP. While Rasmus is correct in saying that standards matter very little on the web today, I refuse to accept that * blocking* people from using standards-compliant markup is the right way to go for PHP. This data needs to be available *somehow*. Magic arrays are not the right way to go, but one should be able to replicate the [] behaviour in a standards-compatible token. Previous Comments: ------------------------------------------------------------------------ [2002-07-14 13:14:54] derick@php.net Actually, you don't read the standards very well. I have to admit reading it wrong too, but the standard says: "ID and NAME **tokens**" and the NAME attribute to select or input is an ATTRIBUTE, not a TOKEN. Now get over it, it's conforming to the standards perfectly. Derick ------------------------------------------------------------------------ [2002-07-14 13:11:16] rasmus@php.net No, until such a time that a browser exists where [] doesn't work, I see no reason to change anything. Standards mean very little on the web. Most of the web is completely non-standard as it is. ------------------------------------------------------------------------ [2002-07-14 13:09:10] mail4news@mailme.dk Perhaps two new arrays should be included, like _GETA and _POSTA that will return an array instead of a single value? ------------------------------------------------------------------------ [2002-07-14 13:07:13] rasmus@php.net Tough - this won't change ------------------------------------------------------------------------ [2002-07-14 13:04:06] mail4news@mailme.dk That's not correct for id and name attributes. Those attributes are specified as CDATA, but in the CDATA description, you'll see that it spesifically imposes restraints on the id and name attributes. From the spesifications: http://www.w3.org/TR/html401/types.html#type-cdata "For some HTML 4 attributes with CDATA attribute values, the specification imposes further constraints on the set of legal values for the attribute that may not be expressed by the DTD" Further down it says: "ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".")" Since [] aren't part of the allowed characters, we can't count on the browser to send these characters correctly. Even if most browsers (if not all), supports this, PHP forces people to break standards. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/16195 -- Edit this bug report at http://bugs.php.net/?id=16195&edit=1

« previous php.bugs (#14150) next »