Using cookies in php to track and identify users

Source: Internet
Author: User
Tags php3 file
: This article describes how to use cookies in php to track and identify users. For more information about PHP tutorials, see. Let's take a look at the content saved in the browser. This is the cookie used by the browser to save the value. In earlier versions of IE, the content of cookies can be viewed, but now the content has been encoded. Before the browser obtains a Web page, it first looks at the domain name of the page and determines whether it exists in the cookie. if there is a matched cookie, the browser first delivers the matching cookie to the server, then accept the page sent by the processing server.

Here is an example of a cookie application: when I connect to Amazon.com, the browser sends the previously set cookies to Amazon before accepting the first page. Then, Amazon.com checks the transmitted content to see if there is any relevant information in the database. after matching, a custom page is created for me and sent to it.
Assign values to cookies

Cookies must be assigned a value before the server sends any content to the client browser. To do this, the cookie settings must be placed inLabel:
   Setcookie ("CookieID", $ USERID );
?>
  
  
  
  
The setcookie function has six parameters separated by commas:

Cookie name, which is a string such as "CookieID ". Colon, comma, and space are not allowed. This parameter is required, and all other parameters are optional. If only this parameter is provided, the cookie will be deleted.

Cookie value, usually a string variable, for example, $ USERID. You can also assign a question mark (?) to it ?? To skip the value setting.

The time when the cookie expires. If it is omitted (or assigned to zero value), the cookie will expire after the session ends. This parameter can be an absolute time, represented by DD-Mon-YYHH: MM: SS, for example, "24-Nov-9908: 26: 00 ". It is more commonly used to set a relative time. This is implemented through the time () function or the mktime function. For example, time () + 3600 will invalidate the cookie after one hour.

A path used to match the cookie. When multiple cookie settings with the same name exist on a server, this parameter is required to avoid confusion. The effect of using the "/" path is the same as that of omitting this parameter. Note that the cookie definition of Netscape places the domain name in front of the path, while PHP is opposite.

The server domain name is also used to match the cookie. Note that a point (.) must be placed before the domain name of the server (.). For example, ".friendshipcenter.com ". Because the parameter is unacceptable unless more than two vertices exist.

Cookie security level, which is an integer. 1 indicates that the cookie can only be transmitted over a "secure" network. 0 or omitted indicates that any type of network can be used.

Cookies and variables

After the PHP script extracts a cookie from the client browser, it automatically converts it into a variable. For example, a cookie named CookieID becomes the variable $ CookieID.

The content of Cookies is reported to exist in the HTTP_COOKIE_VARS array. you can also use this array and cookie name to access the specified cookie value:

PRint $ HTTP_COOKIE_VARS [CookieID];

Remember every user

Let's look back at the submitform. php3 file above. It adds the customer's name to the database. now I want to add something for it. I want to assign a unique user flag to each user and put it in Cookies so that every time a user accesses my website, the cookie and the user logo are used, I will be able to know who he is.

MySQL can be set to automatically allocate a number for each new record. this number starts from 1 and is automatically added to 1 each time. With a single SQL statement, you can easily add such a field to the data table. I call it USERID:
ALTERTABLEdbname
ADDCOLUMN
USERIDINT (11) NOTNULL
PRIMARYKEYAUTO_INCREMENT;

We have made some special settings for this field. First, use "INT (11)" to define an integer of 11 digits. Then, use the "NOTNULL" keyword to make the value of this field not NULL; use "PRIMARYKEY" to set it as an index field, so that the search will be faster. finally, "AUTO_INCREMENT" defines it as a field automatically added.

After the user name is inserted into the database, the cookie should be set in their browser. In this case, the value of the USERID field we just talked about is used:

   Mysql_connect (localhost, username, passWord );
Mysql_select_db (dbname );
Mysql_query ("INSERTINTOtablename (first_name, last_name)
VALUES ('$ first_name', '$ last_name ')
");
Setcookie ("CookieID ",
Mysql_insert_id (),
Time () + 94608000,
"/");/* The cookie will expire after three years */
?>

The PHP function mysql_insert_id () returns the value of the field defined by AUTO_INCREMENT after the last INSERT query is executed. In this way, as long as you do not know how to remove the Cookies of the browser, the website will always "remember" you.

Read cookie

Let's write a script like Amazon.com. First, the PHP script checks whether the client browser has sent the cookie. if so, the user's name will be displayed. If the cookie is not found, a form is displayed, asking the customer to register their name, add it to the database, and set the cookie in the customer's browser.

First, display the cookie content:
   Print $ CookieID;
?>
Then, you can display the name:
   Mysql_connect (localhost, username, password );
Mysql_select_db (dbname );
$ Selectresult = mysql_query ("SELECT * FROMtablename
WHEREUSERID = '$ CookieID'
");
$ Row = mysql_fetch_array ($ selectresult );
Echo "welcome", $ row [first_name], "! ";
?>
That's it. I did not make any judgment in it. I will give it to you to complete it.


The above section describes how to use cookies in php to track and identify users, including related content, and hope to help friends who are interested in PHP tutorials.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.