Setting cookies in PHP requires correctly using the setcookie() function and pay attention to key details, otherwise it may cause abnormal functions. Its basic syntax is setcookie('name', 'value', expiration, path, domain, secure, httponly), and the parameters represent name, value, expiration time, path, domain name, security flag and HttpOnly flag respectively. It is necessary to ensure that the setcookie() is called before any output, otherwise it will fail because the HTTP header has been sent; after setting the cookie, it cannot be read immediately through $_COOKIE, and you need to wait for the next request; when deleting the cookie, it must set its expiration time to the past time point, and ensure that the path and domain name are consistent with the setting time, otherwise it may not be deleted correctly.
Setting a cookie in PHP is pretty straightforward using the setcookie()
function. But there are some important details to get right, or it might not work the way you expect.
Basic Syntax and Usage
The most basic way to set a cookie looks like this:
setcookie('name', 'value', time() 3600, '/', 'example.com', true, true);
This sets a cookie that lasts for one hour. The parameters after the value include expiration time, path, domain, secure flag, and httponly flag. All of these help control how and where the cookie is used.
You should always make sure the expiration time is set correctly — if you don't, the cookie will expire when the browser closes.
Here's what each part means:
- Name : What your cookie is called.
- Value : The data you want to store.
- Expiration : When the cookie should be deleted (in seconds since the Unix epoch).
- Path : Which paths on your site can access the cookie.
- Domain : Which domain the cookie is available to.
- Secure : If true, the cookie will only be sent over HTTPS.
- HttpOnly : If true, JavaScript won't be able to access the cookie.
Common Pitfalls and How to Avoid Them
A lot of people run into issues because they forget that setcookie()
must be called before any output is sent to the browser — including whitespace or HTML. If you see an error about headers already sent, that's probably why.
Also, pay attention to the path and domain settings. For example, if you're setting a cookie on www.example.com
but trying to read it on blog.example.com
, it won't be available unless you set the domain properly (like .example.com
).
Another thing: cookies aren't immediately available after setcookie()
is called. You'll need to wait until the next request to access them via $_COOKIE
.
Reading and Deleting Cookies
To read a cookie, just use the $_COOKIE
superglobal array:
if (isset($_COOKIE['name'])) { echo 'Cookie value: ' . $_COOKIE['name']; }
Deleting a cookie isn't done directly — instead, you set its expiration time in the past:
setcookie('name', '', time() - 3600, '/');
This tells the browser to remove the cookie. Make sure the path and domain match what was used when setting it, or it might not delete properly.
That's basically it. It seems simple, but small mistakes with timing, paths, or domains can cause problems.
The above is the detailed content of How do I set a cookie in PHP using setcookie()?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

TostaycurrentwithPHPdevelopmentsandbestpractices,followkeynewssourceslikePHP.netandPHPWeekly,engagewithcommunitiesonforumsandconferences,keeptoolingupdatedandgraduallyadoptnewfeatures,andreadorcontributetoopensourceprojects.First,followreliablesource

PHPbecamepopularforwebdevelopmentduetoitseaseoflearning,seamlessintegrationwithHTML,widespreadhostingsupport,andalargeecosystemincludingframeworkslikeLaravelandCMSplatformslikeWordPress.Itexcelsinhandlingformsubmissions,managingusersessions,interacti

TosettherighttimezoneinPHP,usedate_default_timezone_set()functionatthestartofyourscriptwithavalididentifiersuchas'America/New_York'.1.Usedate_default_timezone_set()beforeanydate/timefunctions.2.Alternatively,configurethephp.inifilebysettingdate.timez

TovalidateuserinputinPHP,usebuilt-invalidationfunctionslikefilter_var()andfilter_input(),applyregularexpressionsforcustomformatssuchasusernamesorphonenumbers,checkdatatypesfornumericvalueslikeageorprice,setlengthlimitsandtrimwhitespacetopreventlayout

ThePhpfunctionSerialize () andunserialize () AreusedtoconvertcomplexdaTastructdestoresintostoraSandaBackagain.1.Serialize () c OnvertsdatalikecarraysorobjectsraystringcontainingTypeandstructureinformation.2.unserialize () Reconstruct theoriginalatataprom

You can embed PHP code into HTML files, but make sure that the file has an extension of .php so that the server can parse it correctly. Use standard tags to wrap PHP code, insert dynamic content anywhere in HTML. In addition, you can switch PHP and HTML multiple times in the same file to realize dynamic functions such as conditional rendering. Be sure to pay attention to the server configuration and syntax correctness to avoid problems caused by short labels, quotation mark errors or omitted end labels.

The key to writing clean and easy-to-maintain PHP code lies in clear naming, following standards, reasonable structure, making good use of comments and testability. 1. Use clear variables, functions and class names, such as $userData and calculateTotalPrice(); 2. Follow the PSR-12 standard unified code style; 3. Split the code structure according to responsibilities, and organize it using MVC or Laravel-style catalogs; 4. Avoid noodles-style code and split the logic into small functions with a single responsibility; 5. Add comments at key points and write interface documents to clarify parameters, return values ??and exceptions; 6. Improve testability, adopt dependency injection, reduce global state and static methods. These practices improve code quality, collaboration efficiency and post-maintenance ease.

Yes,youcanrunSQLqueriesusingPHP,andtheprocessinvolveschoosingadatabaseextension,connectingtothedatabase,executingqueriessafely,andclosingconnectionswhendone.Todothis,firstchoosebetweenMySQLiorPDO,withPDObeingmoreflexibleduetosupportingmultipledatabas
