Should have read the diff more closely, this message was a bit misleading: "Changed setcookie to turn on the URL encoding of the cookie data" Brian, don't forget the NEWS.. --Jani
On Wed, 20 Aug 2003, Rasmus Lerdorf wrote: >The comment was slightly misleading. setcookie() was not changed at all. >A second function (setrawcookie) which doesn't do any urlencoding of the >data was simply added. The changes inside the setcookie() function was >just to re-use the same code but add a flag to set whether or not >urlencoding should be done. > >Without setrawcookie() there is no easy way to set a cookie with data that >has already been escaped short of unescaping and re-escaping it. > >-Rasmus > >On Thu, 21 Aug 2003, Jani Taskinen wrote: > >> >> When/where was this discussed? Why is this necessary? >> setcookie() works just fine as it was.. >> >> --Jani >> >> >> On Wed, 20 Aug 2003, Brian France wrote: >> >> >bfrance Wed Aug 20 16:51:11 2003 EDT >> > >> > Modified files: >> > /php-src/ext/standard head.h head.c basic_functions.c >> > Log: >> > >> > Added a parameter to php_setcookie to toggle URL encoding of the cookie data >> > Added the function setrawcookie that turns off URL encoding of the cookie data >> > Changed setcookie to turn on the URL encoding of the cookie data >> > >> > >> > >> >Index: php-src/ext/standard/head.h >> >diff -u php-src/ext/standard/head.h:1.24 php-src/ext/standard/head.h:1.25 >> >--- php-src/ext/standard/head.h:1.24 Tue Jun 10 16:03:37 2003 >> >+++ php-src/ext/standard/head.h Wed Aug 20 16:51:10 2003 >> >@@ -16,7 +16,7 @@ >> > +----------------------------------------------------------------------+ >> > */ >> > >> >-/* $Id: head.h,v 1.24 2003/06/10 20:03:37 imajes Exp $ */ >> >+/* $Id: head.h,v 1.25 2003/08/20 20:51:10 bfrance Exp $ */ >> > >> > #ifndef HEAD_H >> > #define HEAD_H >> >@@ -24,9 +24,10 @@ >> > extern PHP_RINIT_FUNCTION(head); >> > PHP_FUNCTION(header); >> > PHP_FUNCTION(setcookie); >> >+PHP_FUNCTION(setrawcookie); >> > PHP_FUNCTION(headers_sent); >> > >> > PHPAPI int php_header(TSRMLS_D); >> >-PHPAPI int php_setcookie(char *name, int name_len, char *value, int value_len, >> >time_t expires, char *path, int path_len, char *domain, int domain_len, int secure >> >TSRMLS_DC); >> >+PHPAPI int php_setcookie(char *name, int name_len, char *value, int value_len, >> >time_t expires, char *path, int path_len, char *domain, int domain_len, int >> >secure, int url_encode TSRMLS_DC); >> > >> > #endif >> >Index: php-src/ext/standard/head.c >> >diff -u php-src/ext/standard/head.c:1.70 php-src/ext/standard/head.c:1.71 >> >--- php-src/ext/standard/head.c:1.70 Tue Jun 10 16:03:37 2003 >> >+++ php-src/ext/standard/head.c Wed Aug 20 16:51:10 2003 >> >@@ -15,7 +15,7 @@ >> > | Author: Rasmus Lerdorf <[EMAIL PROTECTED]> | >> > +----------------------------------------------------------------------+ >> > */ >> >-/* $Id: head.c,v 1.70 2003/06/10 20:03:37 imajes Exp $ */ >> >+/* $Id: head.c,v 1.71 2003/08/20 20:51:10 bfrance Exp $ */ >> > >> > #include <stdio.h> >> > >> >@@ -65,7 +65,7 @@ >> > } >> > >> > >> >-PHPAPI int php_setcookie(char *name, int name_len, char *value, int value_len, >> >time_t expires, char *path, int path_len, char *domain, int domain_len, int secure >> >TSRMLS_DC) >> >+PHPAPI int php_setcookie(char *name, int name_len, char *value, int value_len, >> >time_t expires, char *path, int path_len, char *domain, int domain_len, int >> >secure, int url_encode TSRMLS_DC) >> > { >> > char *cookie, *encoded_value = NULL; >> > int len=sizeof("Set-Cookie: "); >> >@@ -75,11 +75,14 @@ >> > int result; >> > >> > len += name_len; >> >- if (value) { >> >+ if (value && url_encode) { >> > int encoded_value_len; >> > >> > encoded_value = php_url_encode(value, value_len, &encoded_value_len); >> > len += encoded_value_len; >> >+ } else if ( value ) { >> >+ encoded_value = estrdup(value); >> >+ len += value_len; >> > } >> > if (path) { >> > len += path_len; >> >@@ -150,7 +153,30 @@ >> > return; >> > } >> > >> >- if (php_setcookie(name, name_len, value, value_len, expires, path, path_len, >> >domain, domain_len, secure TSRMLS_CC) == SUCCESS) { >> >+ if (php_setcookie(name, name_len, value, value_len, expires, path, path_len, >> >domain, domain_len, secure, 1 TSRMLS_CC) == SUCCESS) { >> >+ RETVAL_TRUE; >> >+ } else { >> >+ RETVAL_FALSE; >> >+ } >> >+} >> >+/* }}} */ >> >+ >> >+/* {{{ proto bool setrawcookie(string name [, string value [, int expires [, >> >string path [, string domain [, bool secure]]]]]) >> >+ Send a cookie with no url encoding of the value */ >> >+PHP_FUNCTION(setrawcookie) >> >+{ >> >+ char *name, *value = NULL, *path = NULL, *domain = NULL; >> >+ long expires = 0; >> >+ zend_bool secure = 0; >> >+ int name_len, value_len, path_len, domain_len; >> >+ >> >+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|slssb", &name, >> >+ &name_len, &value, >> >&value_len, &expires, &path, >> >+ &path_len, &domain, >> >&domain_len, &secure) == FAILURE) { >> >+ return; >> >+ } >> >+ >> >+ if (php_setcookie(name, name_len, value, value_len, expires, path, path_len, >> >domain, domain_len, secure, 0 TSRMLS_CC) == SUCCESS) { >> > RETVAL_TRUE; >> > } else { >> > RETVAL_FALSE; >> >Index: php-src/ext/standard/basic_functions.c >> >diff -u php-src/ext/standard/basic_functions.c:1.622 >> >php-src/ext/standard/basic_functions.c:1.623 >> >--- php-src/ext/standard/basic_functions.c:1.622 Sun Aug 10 20:49:18 2003 >> >+++ php-src/ext/standard/basic_functions.c Wed Aug 20 16:51:10 2003 >> >@@ -17,7 +17,7 @@ >> > +----------------------------------------------------------------------+ >> > */ >> > >> >-/* $Id: basic_functions.c,v 1.622 2003/08/11 00:49:18 sniper Exp $ */ >> >+/* $Id: basic_functions.c,v 1.623 2003/08/20 20:51:10 bfrance Exp $ */ >> > >> > #include "php.h" >> > #include "php_streams.h" >> >@@ -607,6 +607,7 @@ >> > PHP_FE(restore_include_path, >> > NULL) >> > >> > PHP_FE(setcookie, >> > NULL) >> >+ PHP_FE(setrawcookie, >> > NULL) >> > PHP_FE(header, >> > NULL) >> > PHP_FE(headers_sent, first_and_second__args_force_ref) >> > >> > >> > >> > >> > >> >> -- >> https://www.paypal.com/xclick/[EMAIL PROTECTED]&no_note=1&tax=0¤cy_code=EUR >> >> >> >> -- >> PHP Internals - PHP Runtime Development Mailing List >> To unsubscribe, visit: http://www.php.net/unsub.php >> > -- https://www.paypal.com/xclick/[EMAIL PROTECTED]&no_note=1&tax=0¤cy_code=EUR -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php