Home  >  Article  >  Backend Development  >  Introduction to the basic use of sessions and cookies

Introduction to the basic use of sessions and cookies

PHP中文网
PHP中文网Original
2017-03-19 10:15:37923browse

Introduction to Cookies and Sessions

Many times, we need to track visitors’ activities throughout the website and automatically or semi-automatically identify their identities (which is commonly referred to as website login and other functions) , at this time, we often use Cookie and Session to track and judge.

Session information is stored on the server side, but the session id is stored in the client cookie. Of course, PHP's session storage methods are diverse, so it can be tracked even if cookies are disabled.

Cookie is a mechanism that stores data on a remote browser to track and identify users. Cookies are completely kept on the client side, such as IE firefox. When the client disables cookies, they can no longer be used.

Cookie configuration and application

Setcookie(string name, string value, int expire,string path, string domain, int secure);

where name is the cookie variable name identifier. You will be able to use it to reference the cookie variable in PHP just like using ordinary variable names. value is the initial value of the cookie variable, expire represents the validity time of the cookie variable; path represents the relevant path of the cookie variable; domain represents the website of the cookie variable; secure is valid only when https is securely transmitted.

For example:

SetCookie("Cookie", "cookievalue", time()+3600, "/librarys", ".nowamagic.net", 1);

1. Receiving and processing Cookies

PHP has very good support for receiving and processing Cookies. It is completely automatic and similar to FORM variables. The principle is the same, very simple.

For example, if you set a cookie named MyCookier, PHP will automatically analyze it from the HTTP header received by the WEB server and form a variable like an ordinary variable named $myCookie. The value of this variable It is the value of the cookie. The same applies to arrays. Another way is to reference PHP's global variable $HTTP_COOKIE_VARS array.

Examples are as follows: (assuming these have been set in previous pages and are still valid)

echo $MyCookie;
echo $CookieArray[0];
echo $_COOKIE["MyCookie"]; 
echo $HTTP_COOKIE_VARS["MyCookie"];

2. Delete Cookies

To delete an already There are two methods for existing cookies:

  • SetCookie("Cookie", "");

  • SetCookie("Cookie", " value", time()-1 / time() );

3. Restrictions on using cookies

  1. must be in the content of the HTML file Set before output;

  2. Different browsers handle cookies inconsistently, and sometimes incorrect results will occur.

  3. The limit is on the client side. The maximum number of cookies that can be created by a browser is 30, and each cookie cannot exceed 4KB. The total number of cookies that can be set by each WEB site cannot exceed 20.

Session configuration and application

session_start();		//初始化session.需在文件头部

$_SESSION[name]=value;	//配置Seeeion
echo $_SESSION[name];	//使用session
isset($_SESSION[name]);	// 判断
unset($_SESSION[name]);	//删除

session_destroy(); 		//消耗所有session

Note: session_register(), session_unregister, session_is_registered are no longer used under php5.

Cookie usage examples:

if($_GET['out'])
{   //用于注销cookies
    setcookie('id',"");
    setcookie('pass',"");
    echo "<script>location.href=&#39;login.php&#39;</script>"; //因为cookies不是及时生效的,只有你再次刷新时才生效,所以,注销后让页面自动刷新。
}

if($_POST[&#39;name&#39;]&&$_POST[&#39;password&#39;]) //如果变量用户名和密码存在时,在下面设置cookies
{   //用于设置cookies
    setcookie(&#39;id&#39;,$_POST[&#39;name&#39;],time()+3600);
    setcookie(&#39;pass&#39;,$_POST[&#39;password&#39;],time()+3600);
    echo "<script>location.href=&#39;login.php&#39;</script>"; //让cookies及时生效
   
}
if($_COOKIE[&#39;id&#39;]&&$_COOKIE[&#39;pass&#39;])
{   //cookies设置成功后,用于显示cookies
    echo "登录成功!<br />用户名:".$_COOKIE[&#39;id&#39;]."<br/>密码:".$_COOKIE[&#39;pass&#39;];
    echo "<br />";
    echo "<a href=&#39;login.php?out=out&#39;>注销cookies</a>";  //双引号内,如果再有引号,需要用单引号。
}

?>
<form action="" method="post">
用户ID:
<input type="text" name="name" /><br/><br/>
密码:
<input type="password" name="password" /><br/><br />
<input type="submit" name="submit">
</form>

session usage examples:

<?php
//session用法实例
session_start();//启动session,必须放在第一句,否则会出错。
if($_GET[&#39;out&#39;])
{
      

    unset($_SESSION[&#39;id&#39;]);
    unset($_SESSION[&#39;pass&#39;]);
}

if($_POST[&#39;name&#39;]&&$_POST[&#39;password&#39;])
{   
   //用于设置session
    $_SESSION[&#39;id&#39;]=$_POST[&#39;name&#39;];
    $_SESSION[&#39;pass&#39;]=$_POST[&#39;password&#39;];
}

if($_SESSION[&#39;id&#39;]&&$_SESSION[&#39;pass&#39;])
{
    echo "登录成功!<br/>用户ID:".$_SESSION[&#39;id&#39;]."<br />用户密码:".$_SESSION[&#39;pass&#39;];
    echo "<br />";
    echo "<a href=&#39;login.php?out=out&#39;>注销session</a>";
}


?>
<form action="login.php"  method="post">
用户ID:
<input type="text" name="name" /><br/><br/>
密码:
<input type="password" name="password" /><br/><br />
<input type="submit" name="submit">
</form>
Statement:
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