php 给cookie赋值之setcookie()用法

 更新时间:2016年11月25日 15:02  点击:2177
今天早想做一个功能用户登录之后我把用户的名字保存到cookie中但是我开始使用读取cookie 的方法,但是没效果,后来发现使用setcookie()后面必须带时间才可以,下面我来介绍一下。

语法
setcookie(name,value,expire,path,domain,secure)

参数     描述
name 必需。规定 cookie 的名称。
value 必需。规定 cookie 的值。
expire 可选。规定 cookie 的有效期。
path 可选。规定 cookie 的服务器路径。
domain 可选。规定 cookie 的域名。
secure 可选。规定是否通过安全的 HTTPS 连接来传输 cookie。


例,一个简单给cookie赋值

 代码如下 复制代码

<?php
$value = "my cookie value";

// 发送一个 24 小时候过期的 cookie
setcookie("TestCookie",$value, time()+3600*24);
?>


例,二维数组存储到cookie

a.php

 代码如下 复制代码

<?
$cart_info[0][0] = "1123";
$cart_info[1][0] = "5334521";
$cart_info[1][2] = "df";
$cart_info[4][2] = "fefe";

setcookie("xia",serialize($cart_info));
?>

b.php

 代码如下 复制代码

<?
$other = StripSlashes($_COOKIE['xia']);
print_r(unserialize($other));
?>

在php中数组赋值很简单,如果是一维数组赋值比二维数组或多维数组更简单,下面我来给各位同学介绍给数组赋值各种实例介绍,有需要了解的朋友可参考。

PHP数组赋值呢?如下:

例1,一维数组赋值

 代码如下 复制代码

$My_array=array(); 
$My_array[]=”www”  
$My_array[]=”helpphp”;  
$My_array[]=”cn”;


销毁数组

 代码如下 复制代码

unset($My_array[0];
unset($My_array); 


例2,二维数组赋值

 代码如下 复制代码

$data_array=array($total,2);//其中$datarows为查询得到的记录数 
$data_array[$i][2]=$Area;//提示错误:Cannot use a scalar value as an array 


具体的循环如下

 代码如下 复制代码

$i=0;
 while($result=$db->fetch_array($query))
 {  $Area=$result["Area"];
 $data_array[$i][2]=$Area; //出错! 
$i=$i+1;    
}  

变量用于存储值,比如数字、字符串或函数的结果,这样我们就可以在脚本中多次使用它们了变量用于存储值,比如数字、文本字符串或数组。

一旦设置了某个变量,我们就可以在脚本中重复地使用它。

PHP 中的所有变量都是以 $ 符号开始的。

PHP的代码插入很直观,"<?php" 开始 "?>" 结束。

 
所有的变量以"$"开头,例如"$money"。(定义符容易让人遐想)需要使用时,定义即可,可以省略对变量类型的定义,php的编译器会自动为我们选择的。

 
对于条件判断语句,php和c差不多。if(条件A){过程A}即可,还有就是else和elseif。else用于运行条件A以外的过程,elseif(条件N....)则是其他条件为真时运行的代码。

下面是自己写的代码:

 代码如下 复制代码

if.php
<html>  
<body>  
<center>  
<form action="if.php" method="post">  
<input type="radio" name="sex" value="male" /> 男性  
</br>  
<input type="radio" name="sex" value="female" /> 女性  
</br>  
<input type="submit" value="提交" />  
</form>  
<?php  
$sex = $_POST["sex"];  
if($sex=="male")  
{  
    echo "男性";  
}  
elseif($sex=="female")  
{  
    echo "女性";  
}  
else  
{  
    echo "未知性别";  
}  
  
?>  
</center>  
</body>  
</html>  

代码的意思就是通过表单以POST方式提交性别选项,分别是男性和女性,然后交给php接收post上来的数据,并传给sex变量。最后进行判断,如果是male则输出男性,female输出女性,其它情况输出未知。

提交后

文中提到的if.php可以到这里测试


然后就是switch,这个也很好理解,类似于if和elseif的组合,只不过遇到很多种条件需要判断时,switch回把代码变得很简洁直观。

PHP代码

 代码如下 复制代码
switch (变量名)  
{  
case 值1:  
  code to be executed if e­xpression = label1;  
  break;    
case 值2:  
  code to be executed if e­xpression = label2;  
  break;  
default:  
  code to be executed  
  if e­xpression is different   
  from both label1 and label2;  
}  

当变量中的值满足“值1”或者“值2”时,分别执行两个case下面的代码,然后千万记住每个“case”之间都要用“break;”分开。当变量中的值既不是“值1”也不是“值2”时就执行“default”下面的代码。

相信不少和我一样的php新人在学习PHP的时候和我一样,都郁闷过这个问题。@(at)这个记号到底是做什么的呢?


一次,下载别人的源码来看,看到无数@记号,开始以为是注释;后来发现@后面的语句也是会执行的。纳闷了,这个记号究竟是做什么的呢.....

随着学习的不断深入,总算是明白了。这个记号的作用有点类似于asp中的忽略错误"on error resume next "。他们的作用是一样的,当php解释器遇到@开头的语句时候,无论本行的语句是否执行成功,都会继续执行后续的语句,而且不会报错。但特别注意,@(at)记号只对当前行起作用哦。

 
 
希望关于@(at)的问题就在这打住把。
 

eg.下面这句话肯定报错

报错代码

 代码如下 复制代码

<?php  
$sql = mysql_connect(*);  
?>  

 

 

然而,如果我们加上@(at)记号,就不会报错了,而且继续执行。

不报错代码

 代码如下 复制代码

<?php   
@$sql = mysql_connect(*);  
echo "我一直在执行";  
?>  


继续执行下边的代码。

 代码如下 复制代码

 @$page=$_GET['page']?intval($_GET['page']):1;

这句是从URL中获取page关键字的值,比如"index.php?page=5",则$page就会取到5。

但是如果有error,比如"index.php"后没有page关键字了,如果去取$_GET['page']不存在就会报错,这时有@就可以忽视这个小错误了。

又比如:

 代码如下 复制代码

 $conn = mysqli_conncet("q","w","e","r");

这样会输入错误信息,关于连接数据库方面的。

 代码如下 复制代码

 @$conn = mysqli_conncet("q","w","e","r");

如果$conn前面加@的话就可以不让他输出错误信息了。

今天做的是个简单的表明表页面,前端我用的是Bootstrap。没办法,自己不懂美工,也只有用别人的工具。BS真的很漂亮,而且插件丰富,不愧是twitter工程师弄出来的东西。

(中文官网:http://www.bootcss.com)好的东西大家都喜欢,但是它对IE6-9的兼容几乎是0。大家也懂的,国外基本是不使用这几款浏览器了。不过在中国,IE依然占有很高的市场份额。所以,有人开发了一款叫做BSIE的Bootstrap插件,美其名曰鄙视IE,使用方法也相当简单。好像有点跑题,后端我用的是CodeIgniter,它是基于PHP的开源框架。CI是今天的正题。

 

  因为CI对于数据的过滤函数只有xss_clean(),(不知道是不是自己才疏学浅,总之没有找到其他的过滤函数)而今天的项目涉及到接收用户数据,然后提交数据库的操作。没有针对SQL语句的过滤,使得这一操作变得很危险。有点蛋蛋的忧桑,我想到的方法是改写CI的xss_clean()函数,使之具备过滤SQL注入语句的功能;一来改起来方便,二来过滤数据的时候不用嵌套两个函数。说干就干,在CI/system/core/目录下找到secure.php文件,找到xss_clean()函数的申明位置,在最后加上这么一段东西。

PHP代码

 代码如下 复制代码
$str = str_replace("_","x",$str);    
$str = str_replace("%","x",$str);    
$str = str_replace(""","x",$str);    
$str = str_replace("'","x",$str);    
$str = str_replace("select","x",$str);    
$str = str_replace("update","x",$str);    
$str = str_replace("insert","x",$str);   
$str = str_replace("set","x",$str);   
$str = str_replace("where","x",$str);   
$str = str_replace("from","x",$str);   
$str = str_replace("alert","x",$str);    
$str = str_replace("like","x",$str);   
return $str;  

 

  这样差不多能避免一般的SQL注入了。

[!--infotagslink--]

相关文章

  • phpems SQL注入(cookies)分析研究

    PHPEMS(PHP Exam Management System)在线模拟考试系统基于PHP+Mysql开发,主要用于搭建模拟考试平台,支持多种题型和展现方式,是国内首款支持题冒题和自动评分与教师评分相...2016-11-25
  • C#中using的三种用法

    using 指令有两个用途: 允许在命名空间中使用类型,以便您不必限定在该命名空间中使用的类型。 为命名空间创建别名。 using 关键字还用来创建 using 语句 定义一个范围,将在此...2020-06-25
  • php数组操作 键名比较 差集 交集赋值

    本文章提供在量的数据中级操作实例有如对键名比较计算数组的差集 计算差集 给指定数组中插入一个元素 反转数组 交集赋值新的数组实例。 //定义回调函数 funct...2016-11-25
  • JS使用cookie实现DIV提示框只显示一次的方法

    本文实例讲述了JS使用cookie实现DIV提示框只显示一次的方法。分享给大家供大家参考,具体如下:这里运用JavaScript的cookie技术,控制网页上的提示DIV只显示一次,也就是当用户是第一次打开网页的时候才显示,第二次自动隐藏起...2015-11-08
  • c# 判断是否为空然后赋值的4种实现方法

    下面小编就为大家分享一篇c# 判断是否为空然后赋值的4种实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-06-25
  • PHP中SSO Cookie登录分析和实现

    什么是SSO?单点登录SSO(Single Sign-On)是身份管理中的一部分。SSO的一种较为通俗的定义是:SSO是指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护...2015-11-08
  • vue 数据(data)赋值问题的解决方案

    这篇文章主要介绍了vue 数据(data)赋值问题的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-29
  • PHP中SSO Cookie登录分析和实现

    什么是SSO?单点登录SSO(Single Sign-On)是身份管理中的一部分。SSO的一种较为通俗的定义是:SSO是指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护...2015-11-08
  • java中String类型变量的赋值问题介绍

    下面小编就为大家带来一篇java中String类型变量的赋值问题介绍。小编觉得挺不错的。现在分享给大家,给大家一个参考。...2016-03-28
  • vue项目中js-cookie的使用存储token操作

    这篇文章主要介绍了vue项目中js-cookie的使用存储token操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-14
  • iscroll.js 用法介绍

    最新版下载: http://www.csdn123.com/uploadfile/2015/0428/20150428062734485.zip 概要 iScroll 4 这个版本完全重写了iScroll这个框架的原始代码。这个项目的产生...2016-05-19
  • python 实现循环定义、赋值多个变量的操作

    这篇文章主要介绍了python 实现循环定义、赋值多个变量的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
  • C#中的try catch finally用法分析

    这篇文章主要介绍了C#中的try catch finally用法,以实例形式分析了try catch finally针对错误处理时的不同用法,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • C++中cin的用法详细

    这篇文章主要介绍了C++中cin的用法详细,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-25
  • react使用antd表单赋值,用于修改弹框的操作

    这篇文章主要介绍了react使用antd表单赋值,用于修改弹框的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-29
  • 什么是cookie?js手动创建和存储cookie

    什么是cookie? cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。你可以使用 JavaScript 来创建和取回 cookie 的值。 有关cookie的例子: 名字 cookie 当访...2014-05-31
  • postgresql 补齐空值、自定义查询字段并赋值操作

    这篇文章主要介绍了postgresql 补齐空值、自定义查询字段并赋值操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-16
  • 示例详解react中useState的用法

    useState 通过在函数组件里调用它来给组件添加一些内部 state,React 会在重复渲染时保留这个 state,接下来通过一个示例来看看怎么使用 useState吧...2021-06-04
  • AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值

    这篇文章主要介绍了AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值的相关资料,本文介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下...2016-01-26
  • python爬虫用request库处理cookie的实例讲解

    在本篇内容里小编给大家整理的是一篇关于python爬虫用request库处理cookie的实例讲解内容,有需要的朋友们可以学习参考下。...2021-02-21