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&currency_code=EUR
 


-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to