PHP--关于cookie和session

mac2022-06-30  37

1、PHP是一种服务端语言这意味着用PHP编写的代码将在为Web浏览器提供Web页面的主机上运行。 2、客户端和服务端之间进行的处理工作,PHP模块(添加进服务器的一个应用程序,用来增加它的功能)用来向浏览器发回HTML。所有的服务端技术都是在服务器上使用一个第三方模块,用来处理发送回客户端的数据(本地页面不需要服务器处理,但动态生成的页面需要通过服务器访问,因为动态页面要进过服务器处理) 3、使用PHP和直接使用HTML之间重要的不同之处在于,PHP在服务器处理完所有的事情之后向浏览器发送适当的信息。  
关于cookie和session 1、cookie是服务器在用户计算机上保存用户信息的一种方式,一边服务器能够在访问过程中或者多次访问中记住用户。cookie就像一个名称标签:用户计算机告知服务器用户名称,并且给予一个名称标签。然后服务器能够通过名称标签获知用户是谁。 2、cookie:存的东西非常少,有安全隐患。======session:安全,比cookie存储量大。 3、在客户端/服务器之间来回传递cookie

 

4、在PHP中开始使用cooki时,需要了解当问题发生时如何对脚本进行调试。需要考虑三个方面: (1)使用PHP发送cookie; (2)在Web浏览器中接受cookie; (3)在PHP脚本中访问cookie。 5、使用函数setcookie()发送cookie;   setcookie(name, value); setcookie('CookieName', 'This is the cookie value.');   这行代码向浏览器发送了一个名为CookieName的cookie,其值为This is thecookie value。 可以向浏览器用setcookie()发送更多的cookie。 注:当创建cookie时,可以使用一个变量作为cookie的名称或者值属性。   setcookie($cookie_name, $cookie_value); 6、cookie最重要的问题是他们在想web浏览器发送任何信息之前被创建。所有这些脚本位于处理cookie发送的PHP代码之前。同时请确认PHP其实标签之前不要有空格或空行。 7、检验表单是否被提交:   if (isset($_POST['font_size'], $_POST['font_color'])){}: 8、创建cookie:   setcookie('font_size', $_POST['font_size']); setcookie('font_color', $_POST['font_color']);   这两行代码创建了两个单独的cookie:一个名为font_size,另一个名为font_color。他们的值取决于HTML表单中所选的值,这些值被存储在变量 $_POST['font_size'] $_POST['font_ color'] 中。 9、没有文本。HTML或者空白能够在调用setcookie()之前发送至Web浏览器。 10、创建一个PHP代码段以报告cookie已经被发送:   <?php if (isset($msg)) { print $msg; } ?>   如果 cookie 已经被发送,这些代码将会打印出一条消息。用户第一次访问页面时, cookie 不会被发送,因此不会设置 $msg ,这个条件的结果为 FALSE ,并且 print 调用不会运行。一旦提 交表单,就会设置 $msg ,这个条件的结果将为 TRUE 11读取cookie   setcookie('user', 'trout'); //可以使用变量 $_COOKIE['user']。   注:cookie在未被发送前不能立即被脚本访问。 12、向cookie添加参数   setcookie(name, value, expiration, path, domain, secure, httponly);   setcookie(name, value, time()+3600); //将cookie的国旗时间设定为当前事件之后的一小时 path domain 参数用来限制在 Web 站点(路径)中的特定文件夹或者特定域中的 cookie setcookie(name, value, time()+3600, '/subfolder/'); cookie已经被指定给一个域,因此域参数可以用来限制一个子域的cookie,如forum. example.com。 setcookie('cart', '82ABC3012', time()+3600, ', 'shop.example.com', 1); 13、删除cookie 函数 setcookie() 接受 7 个参数,但是只有 name 这个参数是必须的。如果传送一个有名称而 无值的 cookie ,它起的作用同删除一个已经存在的同名 cookie 一样。   setcookie('username', 'Larry'); //删除这个cookie setcookie('username', ''); //或者是 setcookie('username', FALSE);   或者   $.removeCookie('age');     14、session 与cookie的区别:cookie将数据保存在客户端(在Web浏览器中),而session则将数据保存在服务器端。所以,session拥有比cookie更多的优势。 session的优势:(1)session通常情况下更加安全,这是因为数据不会再客户端和服务器端来回重复传输。 (2)session能够存储比cookie更多的信息。 (3)session甚至可以在用户不接受他们浏览器中的cookie时仍然工作。 cookie在以下方面比session有优势: (1)更加易于创建和检索; (2)对服务器造成的处理压力更少; (3)通常情况下能够持续更长的时间。 15、创建session   session_start();   在使用session的页面中,必须在脚本的起始行调用函数session_start(); 一旦启用session,可以通过向数组$_SESSION赋值的方式记录数据   $_SESSION['first_name'] = 'Sam'; $_SESSION['age'] = 4;   这个数组与PHP中使用的其他数组不用,它必须是关联数组。   header ('Location: welcome.php'); 可以通过调用函数 session_start() 以在 session 中保存值。虽然通常必须在脚本中首先调 用此函数(因为它将试图发送一个 cookie ),但是在这里并不是必须的,这是因为该脚本的 header 文件开启了输出缓存 注:跳转页面应用以下代码:   header('location:./php.php');//举个栗子   16、访问session变量:(同引用其他数组的操作差不多)   //类似 $_SESSION['loggedin']   可以使用 isset($_SESSION['var']) 来查看特定的 session 值是否存在,就像用来检验 其他的变量是否被设置那样。 17、删除session(删除session需要这样的3个步骤:开启session,重新设置数组,然后删除session数据) session 的数据在两个地方存在,因此需要在两个地方进行删除操作。但是 首先必须从函数 session_start() 开始,通常像下面这样:   session_start();   然后,再次设置数组 $_SESSION 来删除 session 的值:   $_SESSION = array();   最后,需要从服务器上删除 session 数据(保存在临时文件中)。可以通过下面的方式进行操 作:   session_destroy(); 注意1:直到函数激活session后才能够对session进行删除。 注意2:可以使用unset($_SESSION['var'])来删除一个单独的session值。 18、

转载于:https://www.cnblogs.com/hughman/p/6730930.html

最新回复(0)