andrei Mon Dec 4 20:43:42 2006 UTC
Modified files:
/php-src/ext/standard head.c
Log:
Make headers-related functions accept Unicode strings, but only if their
contents can be converted to ASCII.
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/head.c?r1=1.92&r2=1.93&diff_format=u
Index: php-src/ext/standard/head.c
diff -u php-src/ext/standard/head.c:1.92 php-src/ext/standard/head.c:1.93
--- php-src/ext/standard/head.c:1.92 Thu Oct 19 20:55:08 2006
+++ php-src/ext/standard/head.c Mon Dec 4 20:43:42 2006
@@ -15,7 +15,7 @@
| Author: Rasmus Lerdorf <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
*/
-/* $Id: head.c,v 1.92 2006/10/19 20:55:08 andrei Exp $ */
+/* $Id: head.c,v 1.93 2006/12/04 20:43:42 andrei Exp $ */
#include <stdio.h>
#include "php.h"
@@ -34,16 +34,17 @@
/* Implementation of the language Header() function */
-/* {{{ proto void header(string header [, bool replace, [int
http_response_code]])
+/* {{{ proto void header(string header [, bool replace, [int
http_response_code]]) U
Sends a raw HTTP header */
PHP_FUNCTION(header)
{
zend_bool rep = 1;
sapi_header_line ctr = {0};
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|bl", &ctr.line,
- &ctr.line_len, &rep, &ctr.response_code) ==
FAILURE)
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s&|bl", &ctr.line,
+ &ctr.line_len, UG(ascii_conv), &rep,
&ctr.response_code) == FAILURE) {
return;
+ }
sapi_header_op(rep ? SAPI_HEADER_REPLACE:SAPI_HEADER_ADD, &ctr
TSRMLS_CC);
}
@@ -144,7 +145,7 @@
/* php_set_cookie(name, value, expires, path, domain, secure) */
-/* {{{ proto bool setcookie(string name [, string value [, int expires [,
string path [, string domain [, bool secure[, bool httponly]]]]]])
+/* {{{ proto bool setcookie(string name [, string value [, int expires [,
string path [, string domain [, bool secure[, bool httponly]]]]]]) U
Send a cookie */
PHP_FUNCTION(setcookie)
{
@@ -153,9 +154,11 @@
zend_bool secure = 0, httponly = 0;
int name_len, value_len = 0, path_len = 0, domain_len = 0;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|slssbb", &name,
- &name_len, &value,
&value_len, &expires, &path,
- &path_len, &domain,
&domain_len, &secure, &httponly) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s&|s&ls&s&bb",
&name,
+ &name_len,
UG(ascii_conv), &value, &value_len,
+ UG(ascii_conv),
&expires, &path, &path_len,
+ UG(ascii_conv),
&domain, &domain_len,
+ UG(ascii_conv),
&secure, &httponly) == FAILURE) {
return;
}
@@ -167,7 +170,7 @@
}
/* }}} */
-/* {{{ proto bool setrawcookie(string name [, string value [, int expires [,
string path [, string domain [, bool secure[, bool httponly]]]]]])
+/* {{{ proto bool setrawcookie(string name [, string value [, int expires [,
string path [, string domain [, bool secure[, bool httponly]]]]]]) U
Send a cookie with no url encoding of the value */
PHP_FUNCTION(setrawcookie)
{
@@ -176,9 +179,11 @@
zend_bool secure = 0, httponly = 0;
int name_len, value_len = 0, path_len = 0, domain_len = 0;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|slssbb", &name,
- &name_len, &value,
&value_len, &expires, &path,
- &path_len, &domain,
&domain_len, &secure, &httponly) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s&|s&ls&s&bb",
&name,
+ &name_len,
UG(ascii_conv), &value, &value_len,
+ UG(ascii_conv),
&expires, &path, &path_len,
+ UG(ascii_conv),
&domain, &domain_len,
+ UG(ascii_conv),
&secure, &httponly) == FAILURE) {
return;
}
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php