Home > Backend Development > PHP Tutorial > PHP cookie method study notes sharing_PHP tutorial

PHP cookie method study notes sharing_PHP tutorial

WBOY
Release: 2016-07-13 10:50:18
Original
775 people have browsed it

Cookies in PHP are no different from those in other programs. Cookies are used to store information on the client. They are commonly used in some applications with low security requirements, such as users logging in and remembering passwords. Below I Let me introduce to you the php cookie study notes.

PHP setcookie() function sends an HTTP cookie to the client. A cookie is a variable sent to the browser by the server. Cookies are typically small text files that a server embeds on a user's computer. This cookie is sent each time the computer requests a page through the browser. The name of the cookie is specified as a variable of the same name. For example, if the cookie being sent is named "name", a variable named $user is automatically created containing the cookie's value.

The cookie must be assigned before any other output is sent. The function returns true if successful, false otherwise.

1 setcookie(name, value, expire, path, domain, secure)
•name required. Specifies the name of the cookie.
•value required. Specifies the value of the cookie.
•expire Optional. Specifies the validity period of the cookie.
•path optional. Specifies the server path for cookies.
•domain optional. Specifies the domain name for the cookie.
•secure Optional. Specifies whether cookies are transmitted over a secure HTTPS connection.
The value of the cookie named "user" can be accessed via $HTTP_COOKIE_VARS["user"] or $_COOKIE["user"]. When sending a cookie, the cookie value is automatically URL-encoded. URL decoding is done on reception. If you don't need this, you can use setrawcookie() instead.

Example, php setting and getting cookies

The code is as follows Copy code
 代码如下 复制代码

setcookie('mycookie','value');

//函数原型:int setcookie(string name,string value,int expire,string path,string domain,int secure)
echo($mycookie);
echo($HTTP_COOKIE_VARS['mycookie']);
echo($_COOKIE['mycookie']);

setcookie('mycookie','value');

//Function prototype: int setcookie(string name, string value, int expire, string path, string domain, int secure)

echo($mycookie);
echo($HTTP_COOKIE_VARS['mycookie']);

echo($_COOKIE['mycookie']);
 代码如下 复制代码

setcookie('mycookie');或setcookie('mycookie','');或setcookie("mycookie",false);
//setcookie('mycookie','',time()-3600);
echo($HTTP_COOKIE_VARS['mycookie']);
print_r($_COOKIE);

Delete Cookies

 代码如下 复制代码

setcookie('mycookie','',time()-3600);

(1) Call setcookie() with only name parameter;

(2) Make the expiration time be time() or time-1;

The code is as follows Copy code


setcookie('mycookie'); or setcookie('mycookie',''); or setcookie("mycookie",false);
 代码如下 复制代码

$y2k = mktime(0,0,0,1,1,2000);
setcookie('name','value',$y2k);
setcookie('name', 'value', time+3600);
setcookie('name', 'value', $y2k, '~/myhome', '.domain.com');

//setcookie('mycookie','',time()-3600); echo($HTTP_COOKIE_VARS['mycookie']); print_r($_COOKIE);
Suggested deletion method:
The code is as follows Copy code
setcookie('mycookie','',time()-3600);
PHP provides a very useful function mktime(). You just need to pass to mktime() the hours, minutes, seconds, months, dates, and years you want to represent in order, mktime() will return the total number of seconds since January 1, 1970. So if you need to simulate the Y2K problem:
The code is as follows Copy code
$y2k = mktime(0,0,0,1,1,2000); setcookie('name','value',$y2k); setcookie('name', 'value', time+3600); setcookie('name', 'value', $y2k, '~/myhome', '.domain.com');

How to get COOKIE expiration time

The code is as follows Copy code
 代码如下 复制代码

$expire = time() + 86400; // 设置24小时的有效期
setcookie ("var_name", "var_value", $expire); // 设置一个名字为var_name的cookie,并制定了有效期
setcookie ("var_name_expire", $expire, $expire); // 再将过期时间设置进cookie以便你能够知道var_name的过期时间

$expire = time() + 86400; // Set the validity period of 24 hours

setcookie ("var_name", "var_value", $expire); // Set a cookie named var_name and set the validity period

setcookie ("var_name_expire", $expire, $expire); // Set the expiration time into the cookie so that you can know the expiration time of var_name


Note:

When sending a cookie, the cookie value is automatically URL-encoded. URL decoding is done on reception.
If you don't need this, you can use setrawcookie() instead.

For example, cookie to save user login information

 代码如下 复制代码

//数据库的位置
define('DB_HOST', 'localhost');
//用户名
define('DB_USER', 'root');
//口令
define('DB_PASSWORD', '19900101');
//数据库名
define('DB_NAME','test') ;
?>

1. Database connection configuration page: connectvars.php
The code is as follows Copy code
//Database location<🎜> define('DB_HOST', 'localhost');<🎜> //Username<🎜> define('DB_USER', 'root');<🎜> //Password<🎜> define('DB_PASSWORD', '19900101');<🎜> //Database name<🎜> define('DB_NAME','test') ;<🎜> ?>


2. Login page: logIn.php

The code is as follows Copy code

//Insert relevant information about connecting to the database
require_once 'connectvars.php';

$error_msg = "";
//Determine whether the user has set a cookie. If $_COOKIE['user_id'] is not set, execute the following code
if(!isset($_COOKIE['user_id'])){
If(isset($_POST['submit'])){//Determine whether the user has submitted the login form, if so, execute the following code
          $dbc = mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME);
          $user_username = mysqli_real_escape_string($dbc,trim($_POST['username']));
         $user_password = mysqli_real_escape_string($dbc,trim($_POST['password']));

if(!empty($user_username)&&!empty($user_password)){
​​​​​​ //The SHA() function in MySql is used to perform one-way encryption of strings
                $query = "SELECT user_id, username FROM mismatch_user WHERE username = '$user_username' AND "."password = SHA('$user_password')";
//Query with username and password
                $data = mysqli_query($dbc,$query);
//If the found record is exactly one, set COOKIE and redirect the page at the same time
If(mysqli_num_rows($data)==1){
                      $row = mysqli_fetch_array($data);
                  setcookie('user_id',$row['user_id']);
                   setcookie('username',$row['username']);
                     $home_url = 'loged.php';
header('Location: '.$home_url);
               }else{//If the found record is incorrect, set the error message
                       $error_msg = 'Sorry, you must enter a valid username and password to log in.';
            }
         }else{
                $error_msg = 'Sorry, you must enter a valid username and password to log in.';
}
}
}else{//If the user is already logged in, jump directly to the logged in page
$home_url = 'loged.php';
header('Location: '.$home_url);
}
?>


              Mismatch - Log In
          



                                                                                                                    & Lt;!-Through the $ __Cookie ['user_id'], it is judged. If the user fails to log in, the login form is displayed so that the user enters the username and password-& gt;
                                                                                  If(empty($_COOKIE['user_id'])){
echo '

'.$error_msg.'

';
          ?>
           
           

& Lt; Fieldset style = "width: 250px;" & gt;
                                                                                                                                                          

               
               
                                value="" />
               

               
               
               
           

           
       


                }
        ?>
   

3、登入页面:loged.php

 

 代码如下
 代码如下 复制代码
//已登录页面,显示登录用户名
if(isset($_COOKIE['username'])){
    echo 'You are Logged as '.$_COOKIE['username'].'
';
    //点击“Log Out”,则转到logOut.php页面进行cookie的注销
    echo ' Log Out('.$_COOKIE['username'].')';
}
/**在已登录页面中,可以利用用户的cookie如$_COOKIE['username']、
 * $_COOKIE['user_id']对数据库进行查询,可以做好多好多事情*/
?>
复制代码

//已登录页面,显示登录用户名

if(isset($_COOKIE['username'])){
代码如下 复制代码
/**cookies注销页面*/
if(isset($_COOKIE['user_id'])){
//将各个cookie的到期时间设为过去的某个时间,使它们由系统删除,时间以秒为单位
setcookie('user_id','',time()-3600);
setcookie('username','',time()-3600);
}
//location首部使浏览器重定向到另一个页面
$home_url = 'logIn.php';
header('Location:'.$home_url);
?>
    echo 'You are Logged as '.$_COOKIE['username'].'
';     //点击“Log Out”,则转到logOut.php页面进行cookie的注销     echo ' Log Out('.$_COOKIE['username'].')'; } /**In the logged in page, you can use the user's cookies such as $_COOKIE['username'], * $_COOKIE['user_id'] queries the database and can do many things*/ ?> 4、注销cookie页面:logOut.php(注销后重定向到lonIn.php)  
 代码如下 复制代码
/**cookies logout page*/<🎜> if(isset($_COOKIE['user_id'])){<🎜>     //将各个cookie的到期时间设为过去的某个时间,使它们由系统删除,时间以秒为单位<🎜>     setcookie('user_id','',time()-3600);<🎜>     setcookie('username','',time()-3600);<🎜> }<🎜> //location首部使浏览器重定向到另一个页面<🎜> $home_url = 'logIn.php';<🎜> header('Location:'.$home_url);<🎜> ?>

Finally, we summarize three points that everyone must pay attention to

1: Things to note when setting cookies

Setting cookies on the same page is actually done in order from back to front. If you want to delete a cookie first and then write a cookie, you must write the write statement first and then the delete statement. Otherwise, an error will occur.

2: setcookie example

Simple: setcookie("mycookie","value_of_mycookie");
With expiration time: setcookie("withExpire","Expire_in_1_hour",time()+3600);
It has everything: setcookie("FullCookie","Full_cookie_value",time+3600,"/forum","www.bKjia.c0m",1);

3: Some characteristics of cookies

Cookies are path-oriented. With the default path attribute, the WEB server page will automatically pass the current path to the browser. Specifying the path will force the server to use the set path.
Cookies set in one directory page cannot be seen in another directory page.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/632661.htmlTechArticleCookies in php are no different from other programs. Cookies are used to store information on the client and are commonly used. In some applications with low security requirements, such as users logging in and remembering passwords...
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template