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)
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php