» Javascript equivalent for PHP's setcookie
134 PHP equivalents
- PHP.JS Licensing
- PHP.JS SVN
- PHP.JS Namespaced
- abs
- addslashes
- array_change_key_case
- array_chunk
- array_combine
- array_count_values
- array_diff
- array_diff_assoc
- array_diff_key
- array_fill
- array_flip
- array_keys
- array_key_exists
- array_map
- array_pad
- array_pop
- array_product
- array_push
- array_rand
- array_reduce
- array_reverse
- array_search
- array_shift
- array_sum
- array_unique
- array_unshift
- array_values
- base64_decode
- base64_encode
- basename
- bin2hex
- call_user_func_array
- checkdate
- chr
- compact
- count
- count_chars
- crc32
- date
- defined
- dirname
- echo
- empty
- end
- explode
- file
- file_get_contents
- floatval
- function_exists
- get_class
- get_included_files
- htmlentities
- html_entity_decode
- http_build_query
- implode
- include
- include_once
- intval
- in_array
- ip2long
- isset
- is_array
- is_null
- is_numeric
- is_object
- is_string
- join
- levenshtein
- long2ip
- ltrim
- md5
- md5_file
- mktime
- nl2br
- number_format
- ord
- parse_str
- preg_quote
- printf
- print_r
- rand
- range
- require
- require_once
- reset
- round
- rtrim
- serialize
- » setcookie
- sha1
- sha1_file
- shuffle
- sizeof
- soundex
- split
- sprintf
- strcasecmp
- strchr
- strcmp
- stripos
- stripslashes
- strip_tags
- stristr
- strlen
- strnatcmp
- strpbrk
- strpos
- strrev
- strripos
- strrpos
- strstr
- strtolower
- strtoupper
- str_ireplace
- str_pad
- str_repeat
- str_replace
- str_rot13
- str_split
- substr
- substr_count
- trim
- ucfirst
- ucwords
- unserialize
- urldecode
- urlencode
- utf8_decode
- utf8_encode
- var_export
- wordwrap
PHP to Javascript Project: php.js
This article is part of the 'Porting PHP to Javascript' Project, which aims to decrease the gap between developing for PHP & Javascript.
A lot of people are familiar with PHP's functions, and though Javascript functions are often quite similar, some functions may be missing or addressed differently. The Javascript implementations should be as compliant with the PHP versions as possible, a good indication is that the PHP function manual could also apply to the Javascript version.
Porting crucial PHP functions to Javascript can be fun & useful. Currently some PHP functions have been added, but readers are encouraged to contribute and improve functions by adding comments. Eventually the goal is to save all the functions in one php.js file and make it publicly available for your coding pleasure.
If you choose to contribute, let me know how you want to be credited in the function's comments. You may also want to subscribe to RSS so you receive updates whenever new functions are posted.
This is a Javascript version of the PHP function: setcookie.
PHP setcookie
Description
setcookie - Send a cookie
bool setcookie( string name [, string value [, int expire [, string path [, string domain [, bool secure [, bool httponly]]]]]] )
setcookie() defines a cookie to be sent along with the rest of the HTTP headers. Like other headers, cookies must be sent before any output from your script (this is a protocol restriction). This requires that you place calls to this function prior to any output, including <html> and <head> tags as well as any whitespace.
Parameters
All the arguments except the name argument are optional. You may also replace an argument with an empty string ("") in order to skip that argument. Because the expire argument is integer, it cannot be skipped with an empty string, use a zero (0) instead.
See » Netscape cookie specification for specifics on how each setcookie() parameter works
-
name
The name of the cookie.
-
value
The value of the cookie. This value is stored on the clients computer; do not store sensitive information. Assuming the name is 'cookiename', this value is retrieved through $_COOKIE['cookiename']
-
expire
The time the cookie expires. This is a Unix timestamp so is in number of seconds since the epoch. In other words, you'll most likely set this with the time() function plus the number of seconds before you want it to expire. Or you might use mktime(). time()+60*60*24*30 will set the cookie to expire in 30 days. If set to 0, or omitted, the cookie will expire at the end of the session (when the browser closes).
Note: You may notice the expire parameter takes on a Unix timestamp, as opposed to the date format Wdy, DD-Mon-YYYY HH:MM:SS GMT, this is because PHP does this conversion internally.
expire is compared to the client's time which can differ from server's time.
-
path
The path on the server in which the cookie will be available on. If set to '/', the cookie will be available within the entire domain . If set to '/foo/', the cookie will only be available within the /foo/ directory and all sub-directories such as /foo/bar/ of domain . The default value is the current directory that the cookie is being set in.
-
domain
The domain that the cookie is available. To make the cookie available on all subdomains of example.com then you'd set it to '.example.com'. The . is not required but makes it compatible with more browsers. Setting it to www.example.com will make the cookie only available in the www subdomain. Refer to tail matching in the » spec for details.
-
secure
Indicates that the cookie should only be transmitted over a secure HTTPS connection from the client. When set to TRUE, the cookie will only be set if a secure connection exists. The default is FALSE. On the server-side, it's on the programmer to send this kind of cookie only on secure connection (e.g. with respect to $_SERVER["HTTPS"]).
-
httponly
When TRUE the cookie will be made accessible only through the HTTP protocol. This means that the cookie won't be accessible by scripting languages, such as JavaScript. This setting can effectly help to reduce identity theft through XSS attacks (although it is not supported by all browsers). Added in PHP 5.2.0. TRUE or FALSE
Return Values
If output exists prior to calling this function, setcookie() will fail and return FALSE. If setcookie() successfully runs, it will return TRUE. This does not indicate whether the user accepted the cookie.
Javascript setcookie
Source
This is the main source of the Javascript version of PHP's setcookie
function setcookie(name, value, expires, path, domain, secure) { // http://kevin.vanzonneveld.net // + original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com) // * example 1: setcookie('author_name', 'Kevin van Zonneveld'); // * returns 1: true expires instanceof Date ? expires = expires.toGMTString() : typeof(expires) == 'number' && (expires = (new Date(+(new Date) + expires * 1e3)).toGMTString()); var r = [name + "=" + escape(value)], s, i; for(i in s = {expires: expires, path: path, domain: domain}){ s[i] && r.push(i + "=" + s[i]); } return secure && r.push("secure"), document.cookie = r.join(";"), true; }
Examples
Currently there is 1 example
Example 1
setcookie('author_name', 'Kevin van Zonneveld');And that would return
trueMore about this Project
Download php.js
To easily include it in your code, every function currently available is stored in
Normal
- uncompressed source: php.js (147.1kB)
- minified: php.min.js (54.1kB)
- compressed: php.packed.js (39kB)
Namespaced What is 'namespaced?'
- uncompressed source: php.namespaced.js (181.6kB)
- minified: php.namespaced.min.js (54.5kB)
- compressed: php.namespaced.packed.js (39.4kB)
To download use Right click, Save Link As
Generally the best way is to use a minified version and gzip it
Testing the functions
The number of functions is growing fast and so it becomes hard to maintain quality.
To defeat that danger of bad code, syntax errors, etc, I've added a new feature: php.js tester.
It is an automatically generated page that includes ALL functions in your browser, and then extracts specific testing information from each function's comments. This info is then used to run the function, and the return value is compared to a predefined one.
This way code is always checked on syntax errors, and if it doesn't function correctly anymore after an update, we should also be able to detect it more easily.
If you want, go check it out.
Credits
Respect & awards go to everybody who has contributed in some way so far:
![]() ![]() | Michael White (link) for contributing to: |
| array_count_values, get_included_files, include, include_once, require, require_once, md5, number_format, parse_str, printf, sha1, sprintf, str_pad, strnatcmp, http_build_query, floatval, is_object, print_r | |
![]() ![]() | _argos for contributing to: |
| array_fill, array_pad, array_product, array_rand, compact, count, range, abs, defined, ip2long, long2ip, implode, strcmp, ucwords | |
![]() ![]() | Jonas Raoni Soares Silva (link) for contributing to: |
| shuffle, abs, setcookie, number_format, number_format, soundex, str_repeat, str_replace, str_rot13, ucwords, wordwrap, wordwrap | |
![]() ![]() | Legaev Andrey for contributing to: |
| end, reset, file, file_get_contents, function_exists, include, include_once, http_build_query, is_array, is_object | |
![]() ![]() | Ates Goral (link) for contributing to: |
| array_change_key_case, array_count_values, array_diff_key, get_class, preg_quote, addslashes, count_chars, str_rot13, stripslashes | |
![]() ![]() | Philip Peterson for contributing to: |
| sizeof, round, echo, nl2br, str_replace, strchr, urldecode, urlencode, var_export | |
![]() ![]() | Martijn Wieringa for contributing to: |
| str_ireplace, str_split, strcasecmp, stripos, strnatcmp, substr | |
![]() ![]() | Webtoolkit.info (link) for contributing to: |
| crc32, md5, sha1, utf8_decode, utf8_encode | |
![]() ![]() | Carlos R. L. Rodrigues (link) for contributing to: |
| array_chunk, array_unique, date, levenshtein | |
![]() ![]() | Ash Searle (link) for contributing to: |
| basename, printf, sprintf | |
![]() ![]() | Erkekjetter for contributing to: |
| ltrim, rtrim, trim | |
![]() ![]() | marrtins for contributing to: |
| array_change_key_case, addslashes, stripslashes | |
![]() ![]() | Alfonso Jimenez (link) for contributing to: |
| array_reduce, strpbrk | |
![]() ![]() | Aman Gupta for contributing to: |
| base64_decode, utf8_decode | |
![]() ![]() | Arpad Ray (mailto:arpad@php.net) for contributing to: |
| serialize, unserialize | |
![]() ![]() | Karol Kowalski for contributing to: |
| array_reverse, abs | |
![]() ![]() | Thunder.m for contributing to: |
| base64_decode, base64_encode | |
![]() ![]() | Tyler Akins (link) for contributing to: |
| base64_decode, base64_encode | |
![]() ![]() | mdsjack (link) for contributing to: |
| include, trim | |
![]() ![]() | Alexander Ermolaev (link) for contributing to: |
| trim | |
![]() ![]() | Allan Jensen (link) for contributing to: |
| number_format | |
![]() ![]() | Andrea Giammarchi (link) for contributing to: |
| array_map | |
![]() ![]() | Bayron Guevara for contributing to: |
| base64_encode | |
![]() ![]() | Benjamin Lupton for contributing to: |
| number_format | |
![]() ![]() | Brad Touesnard for contributing to: |
| date | |
![]() ![]() | Brett Zamir for contributing to: |
| str_split | |
![]() ![]() | Cagri Ekin for contributing to: |
| parse_str | |
![]() ![]() | Cord for contributing to: |
| is_array | |
![]() ![]() | David for contributing to: |
| is_numeric | |
![]() ![]() | David James for contributing to: |
| get_class | |
![]() ![]() | DxGx for contributing to: |
| trim | |
![]() ![]() | FGFEmperor for contributing to: |
| mktime | |
![]() ![]() | Felix Geisendoerfer (link) for contributing to: |
| array_key_exists | |
![]() ![]() | FremyCompany for contributing to: |
| isset | |
![]() ![]() | Gabriel Paderni for contributing to: |
| str_replace | |
![]() ![]() | Leslie Hoare for contributing to: |
| rand | |
![]() ![]() | Lincoln Ramsay for contributing to: |
| basename | |
![]() ![]() | MeEtc (link) for contributing to: |
| date | |
![]() ![]() | Mick@el for contributing to: |
| stripslashes | |
![]() ![]() | Nick Callen for contributing to: |
| wordwrap | |
![]() ![]() | Ozh for contributing to: |
| dirname | |
![]() ![]() | Pedro Tainha (link) for contributing to: |
| unserialize | |
![]() ![]() | Peter-Paul Koch (link) for contributing to: |
| date | |
![]() ![]() | Philippe Baumann for contributing to: |
| empty | |
![]() ![]() | Sakimori for contributing to: |
| strlen | |
![]() ![]() | Sanjoy Roy for contributing to: |
| array_diff | |
![]() ![]() | Simon Willison (link) for contributing to: |
| str_replace | |
![]() ![]() | Steve Clay for contributing to: |
| function_exists | |
![]() ![]() | Steve Hilder for contributing to: |
| strcmp | |
![]() ![]() | Steven Levithan (link) for contributing to: |
| trim | |
![]() ![]() | T0bsn for contributing to: |
| crc32 | |
![]() ![]() | Thiago Mata (link) for contributing to: |
| call_user_func_array | |
![]() ![]() | Tim Wiel for contributing to: |
| date | |
![]() ![]() | XoraX (link) for contributing to: |
| dirname | |
![]() ![]() | baris ozdil for contributing to: |
| mktime | |
![]() ![]() | booeyOH for contributing to: |
| preg_quote | |
![]() ![]() | djmix for contributing to: |
| basename | |
![]() ![]() | duncan for contributing to: |
| array_unique | |
![]() ![]() | echo is bad for contributing to: |
| echo | |
![]() ![]() | gabriel paderni for contributing to: |
| mktime | |
![]() ![]() | ger for contributing to: |
| html_entity_decode | |
![]() ![]() | john (link) for contributing to: |
| html_entity_decode | |
![]() ![]() | kenneth for contributing to: |
| explode | |
![]() ![]() | penutbutterjelly for contributing to: |
| str_ireplace | |
![]() ![]() | stensi for contributing to: |
| intval | |
Your name here?
Contributing is as easy as adding a comment with better code, or code for a new function.
Any contribution leading to improvement will directly get your name & link here.
Coming Project features
Project features that we are currently working on:
- Versioning. Individual functions are versioned, but the entire library should be versioned as well.
- Light. A lightweight version of php.js should be made available with only common functions in it.
Like this article?
|
Then Dzone it! Or use another bookmark button below to show your support & help me spread the word. |
Hot StuffFlaming articles» Survive heavy traffic with you... | RelatedArticles like this one» Javascript equivalent for PHP'... |
tags: programming, php, javascript
category: Programming - Javascript - PHP equivalents
read: 1,488 times










tagcloud
No comments. Be the first!