The questions we introduce to you today are related to
PHP’s setcookie function for reading Cookies has a total of six parameters, separated by commas:
The name of the cookie is a string, for example: "CookieID". Colons, commas and spaces are not allowed in between. This parameter is required, while all other parameters are optional. If only this parameter is given, the cookie will be deleted.
The value of cookie, usually a string variable, for example: $USERID. You can also assign it a ?? to skip setting the value.
Time when the cookie expires. If omitted (or assigned a value of zero), the cookie will expire at the end of this session. This parameter can be an absolute time, represented by DD-Mon-YY HH:MM:SS, such as: "24-Nov-99 08:26:00". What is more commonly used is to set a relative time. This is achieved through the time() function or the mktime function. For example, time()+3600 will cause the cookie to expire after one hour.
A path used to match cookies. When there are multiple cookie settings with the same name on a server, this parameter is used to avoid confusion. Using the "/" path has the same effect as omitting this parameter. It should be noted that Netscape's cookie definition puts the domain name in front of the path, while PHP does the opposite.
The domain name of the server is also used to match cookies. It should be noted that a dot (.) must be placed before the domain name of the server. For example: ".friendshipcenter.com" . Because unless there are more than two points, this parameter cannot be accepted.
The security level of the cookie is an integer. 1 means this cookie can only be sent over "secure" networks. 0 or omitted means any type of network is acceptable 117-102 117-202 117-301.
Cookies and Variables
When the PHP script extracts a cookie from the client's browser, it will automatically convert it into a variable. For example: a cookie named CookieID will become the variable $CookieID.
The content of Cookies is reported and stored in the HTTP_COOKIE_VARS array. You can also access the specified cookie value through this array and the name of the cookie:
print $HTTP_COOKIE_VARS[CookieID];
Remember each user
Look back at the submitform.php3 file above. Its function is to put the customer’s name Added to the database, now I want to add something to it. I want to assign a unique user ID to each user, and then put this ID in Cookies, so that every time a user visits my website, I can know who he is through the cookie and the user ID in it. .
MySQL can be set to automatically assign a number to each new record. This number starts from 1 and automatically increases by 1 each time thereafter. With one line of SQL statements, you can easily add such a field to the data table. I call it
USERID:
ALTER TABLE dbname
ADD COLUMN
USERID INT(11) NOT NULL
PRIMARY KEY AUTO_INCREMENT;
We have made some special settings for this field. First, define its type as an 11-bit integer through "INT(11)"; then use the "NOT NULL" keyword to prevent the value of this field from being NULL; then use "PRIMARY KEY" to set it as an index field, so The search will be faster; finally, "AUTO_INCREMENT" defines it as an automatically incremented field.
Once the user's name has been inserted into the database, it's time to set a cookie on their browser. What is used at this time is the value of the USERID field we just talked about:
<ol class="dp-xml"><li class="alt"><span><span class="tag"><</span><span> ?php </span></span></li><li><span>mysql_connect (localhost, username, password); </span></li><li class="alt"><span>mysql_select_db (dbname); </span></li><li><span>mysql_query ("INSERT INTO tablename (first_name, last_name) VALUES ("$first_name", "$last_name")"); </span></li><li class="alt"><span>setcookie("CookieID", </span></li><li><span>mysql_insert_id(), </span></li><li class="alt"><span>time()+94608000, </span></li><li><span>"/"); /* 三年后 cookie 才会失效 */ </span></li><li class="alt"><span class="tag">?></span><span> </span></span></li></ol>
The PHP function mysql_insert_id() returns the value of the field defined by AUTO_INCREMENT after the last INSERT query was executed. In this way, as long as you don’t clear your browser’s Cookies, the website will “remember” you forever
PHP reads Cookies
Let’s write a program like Amazon .com script. First, the PHP script checks to see if the client's browser sent a cookie. If so, the user's name is displayed. If the cookie is not found, display a form to ask the customer to register their name, then add it to the database and set the cookie while the customer is browsing.
First, display the content of the cookie:
<ol class="dp-xml"><li class="alt"><span><span class="tag"><</span><span> ?php </span></span></li><li><span>print $CookieID; </span></li><li class="alt"><span class="tag">?></span><span> </span></span></li></ol>
Then, you can display the name:
<ol class="dp-xml"><li class="alt"><span><span class="tag"><</span><span> ?php </span></span></li><li><span>mysql_connect (localhost, username, password); </span></li><li class="alt"><span>mysql_select_db (dbname); </span></li><li><span>$</span><span class="attribute">selectresult</span><span> = </span><span class="attribute-value">mysql_query</span><span> ("SELECT * FROM tablename WHERE </span><span class="attribute">USERID</span><span> = </span><span class="attribute-value">"$CookieID"</span><span>"); </span></li><li class="alt"><span>$</span><span class="attribute">row</span><span> = </span><span class="attribute-value">mysql_fetch_array</span><span>($selectresult); </span></li><li><span>echo " 欢迎你的光临 ", $row[first_name], "!"; </span></li><li class="alt"><span class="tag">?></span><span> </span></span></li></ol>
The above is how PHP reads Cookies Specific implementation methods.