php setcookie详解用法

 更新时间:2016年11月25日 15:09  点击:1742

cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。通过 php教程,您能够创建并取回 cookie 的值。
如何创建 cookie?
setcookie() 函数用于设置 cookie。

注释:setcookie() 函数必须位于 <html> 标签之前。

语法
setcookie(name, value, expire, path, domain);例子
在下面的例子中,我们将创建名为 "user" 的 cookie,把为它赋值 "alex porter"。我们也规定了此 cookie 在一小时后过期


最简单的cookie创建方法

<?php

  echo( "cookie created? : " . setcookie("cookie_name", "cookie_data" ) );

?>

实例二cookies存数组

<?
setcookie("php[uid]", "1111111111111111", time()+3600);
setcookie("php[color]", "black", time()+3600);
setcookie("php[preference]", "english", time()+3600);

if (isset ($php)) {
   while (list ($name, $value) = each ($php)) {
      echo "$name = $value<br>n";
   }
}
?>

cookie删除

<?php
setcookie ( "cookie_user", "test", time () + 60 * 60 * 24 * 30 );
setcookie ( "cookie_pass", md5 ( "test" ), time () + 60 * 60 * 24 * 30 );

function logout() {
  setcookie ( "cookie_user", "", time () + 60 * 60 * 24 * 30 );
  setcookie ( "cookie_pass", "", time () + 60 * 60 * 24 * 30 );
}
logout ();
echo $_cookie ['cookie_user'] . "<br />";
echo "you have successfully logged out.";
?>


 
下面一个利用cookies记录用户名自动登录函数实例

 

<?php
  $globals['username'] = "test";
  $globals['password'] = "test";
 
  function validatelogin ($username, $password){
    if (strcmp ($username, $globals['username']) == 0 && strcmp ($password, $globals['password']) == 0){
      setcookie ("cookie_user", $username, time()+60*60*24*30);
      setcookie ("cookie_pass", md5 ($password), time()+60*60*24*30);
      return true;
    } else {
      return false;
    }
  }
  if (validatelogin ("test","test")){
    echo "successfully logged in.";
  } else {
    echo "sorry, invalid login.";
  }
?>
 


定义和用法
substr_replace() 函数把字符串的一部分替换为另一个字符串。

语法
substr_replace(string,replacement,start,length)

<?php教程
echo substr_replace("hello world","earth",6);
?>

参数 描述
string 必需。规定要检查的字符串。
replacement 必需。规定要插入的字符串。
start

必需。规定在字符串的何处开始替换。

  • 正数 - 在第 start 个偏移量开始替换
  • 负数 - 在从字符串结尾的第 start 个偏移量开始替换
  • 0 - 在字符串中的第一个字符处开始替换
charlist

可选。规定要替换多少个字符。

  • 正数 - 被替换的字符串长度
  • 负数 - 从字符串末端开始的被替换字符数
  • 0 - 插入而非替换

http_referer 获取用户来路实例
这是个php教程自来全局变量,所以我们不多介绍了,直接看实例

<?php
            if (isset($_server['http_referer'])) {
                    print "the page you were on previously was {$_server['http_referer']}<br />";
            } else {
                    print "you didn't click any links to get here<br />";
            }
    ?>

    <a href="refer.php">click me!</a>
 

上传文件我们少不了move_uploaded_file函数本函数检查并确保由 file 指定的文件是合法的上传文件(即通过 php教程 的 http post 上传机制所上传的)。如果文件合法,则将其移动为由 newloc 指定的文件。

如果 file 不是合法的上传文件,不会出现任何操作,move_uploaded_file() 将返回 false。

如果 file 是合法的上传文件,但出于某些原因无法移动,不会出现任何操作,move_uploaded_file() 将返回 false,此外还会发出一条警告。


先来看一个关于在上传关表单设置

<html>
<head>
<title>a simple file upload form</title>
</head>
<body>
<form enctype="multipart/form-data"
   action="<?print $_server['php_self']?>" method="post">
<p>
<input type="hidden" name="max_file_size" value="102400" />
<input type="file" name="fupload" /><br/>
<input type="submit" value="upload!" />
</p>
</form>
</body>
</html>

这样我们主设置的上传文件最大不能超过102400字节了

在php中要实现文件上传很简单如下代码

if ( $_files['fupload']['type'] == "image/gif" ) {

         $source = $_files['fupload']['tmp_name'];
         $target = "upload/".$_files['fupload']['name'];
         move_uploaded_file( $source, $target );// or die ("couldn't copy");
         $size = getimagesize( $target );

         $imgstr = "<p><img width="$size[0]" height="$size[1]" ";
         $imgstr .= "src="$target" alt="uploaded image" /></p>";

         print $imgstr;
     }


这样就ko了,下面我们总结实例

php
<html>
<form enctype="multipart/form-data" action="" method="post">
<input type="hidden" name="max_file_size" value="6000000" /> <!--设置允许提交表单的最大字节数-->
文件上传: <input name="file" type="file" />
<input type="submit" value="上传"/>
</form>
</html>

 

<?
//处理程序
function extend($file_name) //定义获取文件的扩展名函数
{$extend =explode("." , $file_name);
$va=count($extend)-1;
return strtolower($extend[$va]);}

$dirname="../";//是否启用上一层路径,格式为:$dirname="../";或$dirname="http://www.cnblogs.com/";等等与$dir组合使用,注意不要溢出根路径
$dir='upload/aa/bb';//设定上传目录,与上面的$dirname组合
$file=$_files['file'];//从文件域表单获取文件
$filename=$file['name'] ;//获取文件全名
$c_filesize=$file['size'] ;//获取本地的文件大小
$extendname=extend($filename);//获取文件扩展名
if($c_filesize>200000000000)die("文件太大");//限制上传文件大小, 单位字节

//if($extendname!="jpg")die("只允许上传jpg格式的图片");//限制上传文件格式,去掉语句开头的两斜杠生效

if(!file_exists($dir));//检查目录文件夹是否存在,不存在则建立新文件夹
{
$v=split ('[/.-]', $dir);
for ( $i=0 ; $i <count($v) ; $i++)
{$dirname=$dirname.$v[$i];
if(!file_exists($dirname))mkdir($dirname);
$dirname=$dirname."/";}
} //目录创建完毕
?>

<?
$dest=$dirname.date("ymdhis", time()).rand(100000,999999).".".$extendname; //设置文件名为日期加上从100000到999999的随机数和扩展名
if(file_exists($dest))die("该文件已经存在");
if(move_uploaded_file($file['tmp_name'],$dest)) //调用文件上传函数
{$s_filesize=filesize($dest);//获取服务器端的文件大小
echo "文件上传成功,<a href=".$dest.">查看文件地址</a>";
echo "<br>本地文件名:".$filename;
echo "<br>远端文件名:".$dest;
echo "<br>大 小:".ceil($s_filesize/1024)." kb";
echo "<br>扩展名:".$extendname;
echo "<br>大 小:".$c_filesize." byte";}
else
{echo "还未进行文件上传";}
?>


总结了文件上传的错误代码

  upload_err_ok没有错误。
  
  upload_err_ini_size的上传的文件超过最高价值存在中指定的文件。
  
  upload_err_form_size的上传的文件超过最高价值所指定的max_file_size隐藏的部件。
  
  upload_err_partial的文件上传被取消了,只有部分的文件被上传。
  
  upload_err_nofile没有文件被上传。

 

php教程 trim() 表单验证不为空实例,应该算是入门级的实例了,告诉你如何利用trim函数来删除空格然后判断用户提交的数据是否为空。

<html>
<body>
<form method="post" action="formerrorcheck.php">
<h1>contact information</h1>
<table>

<tr>
  <td><b>nickname:</b></td>
  <td><input type="text" name="nickname"></td>
</tr>

<tr>
  <td>title:</td>
  <td><input type="text" name="title"></td>
</tr>

<tr>
  <td><b>first name:</b></td>
  <td><input type="text" name="firstname"></td>
</tr>

<tr>
  <td>middle name:</td>
  <td><input type="text" name="middlename"></td>
</tr>

<tr>
  <td><b>last name:</b></td>
  <td><input type="text" name="lastname"></td>
</tr>

<tr>
  <td><b>primary email:</b></td>
  <td><input type="text" name="email"></td>
  <td width="20">&nbsp;</td>
  <td>secondary email:</td>
  <td><input type="text" name="secondaryemail"></td>
</tr>

<tr>
  <td>company name:</td>
  <td><input type="text" name="companyname"></td>
</tr>

<tr>
  <td>office address:</td>
  <td><input type="text" name="officeaddres1"></td>
  <td width="20">&nbsp;</td>
  <td>home address:</td>
  <td><input type="text" name="homeaddress"></td>
</tr>

<tr>
  <td></td>
  <td><input type="text" name="officeaddress2"></td>
</tr>

<tr>
  <td>city:</td>
  <td><input type="text" name="officecity"></td>
  <td width="20">&nbsp;</td>
  <td>&nbsp;</td>
  <td><input type="text" name="homecity"></td>
</tr>

<tr>
  <td>state:</td>
  <td><input type="text" name="officestate"></td>
  <td width="20">&nbsp;</td>
  <td>&nbsp;</td>
  <td><input type="text" name="homestate"></td>
</tr>

<tr>
  <td>zip:</td>
  <td><input type="text" name="officezip"></td>
  <td width="20">&nbsp;</td>
  <td>&nbsp;</td>
  <td><input type="text" name="homezip"></td>
</tr>

<tr>
  <td>phone:</td>
  <td><input type="text" name="officephone"></td>
  <td width="20">&nbsp;</td>
  <td>&nbsp;</td>
  <td><input type="text" name="homephone"></td>
</tr>

<tr>
  <td>birthday:</td>
  <td><input type="text" name="birthday"></td>
</tr>

<tr>
  <td>spouse name:</td>
  <td><input type="text" name="spousename"></td>
  <td width="20">&nbsp;</td>
  <td>childrens' names:</td>
  <td><input type="text" name="children"></td>
</tr>

<tr>
  <td>anniversary:</td>
  <td><input type="text" name="anniversary"></td>
</tr>

</table>

<br>
<br>
<br>
<input type="submit" value="submit">
<br>
<br>
<input type="reset"  value="clear the form">

</form>
</body>
</html>

<!-- formerrorcheck.php
<html>
<body>
<?php

  $errors=0;
  if (!trim($nickname)) {
      echo "<br><b>nickname</b> is required.";
     $errors++;
  }
 
  if (!trim($firstname)) {
      echo "<br><b>first name</b> is required.";
     $errors++;
  }
 
  if (!trim($lastname)) {
      echo "<br><b>last name</b> is required.";
      $errors++;
  }
 
  if (!trim($email)) {
      echo "<br><b>primary email address</b> is required.";
      $errors++;
  }

  if ($errors > 0)
      echo "<br><br><br>please use your browser's back button " .
        "to return to the form, and correct error(s)";
 
?>

</body>
</html>


这是个简单的验证函数

 

<?php
    function phone_validate($data, $desc) {
        $regex = "/^([2-9][0-9]{2})[2-9][0-9]{2}-[0-9]{4}/i";
        if(preg_match($regex, $data) != 1) {
            return "the '$desc' field isn't valid!";
        }
        return true;
    }
?>
 
[!--infotagslink--]

相关文章

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

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

    using 指令有两个用途: 允许在命名空间中使用类型,以便您不必限定在该命名空间中使用的类型。 为命名空间创建别名。 using 关键字还用来创建 using 语句 定义一个范围,将在此...2020-06-25
  • 源码分析系列之json_encode()如何转化一个对象

    这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
  • php中去除文字内容中所有html代码

    PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
  • JS使用cookie实现DIV提示框只显示一次的方法

    本文实例讲述了JS使用cookie实现DIV提示框只显示一次的方法。分享给大家供大家参考,具体如下:这里运用JavaScript的cookie技术,控制网页上的提示DIV只显示一次,也就是当用户是第一次打开网页的时候才显示,第二次自动隐藏起...2015-11-08
  • index.php怎么打开?如何打开index.php?

    index.php怎么打开?初学者可能不知道如何打开index.php,不会的同学可以参考一下本篇教程 打开编辑:右键->打开方式->经文本方式打开打开运行:首先你要有个支持运行PH...2017-07-06
  • PHP中SSO Cookie登录分析和实现

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

    复制代码 代码如下:<?php function jb51(){ print_r(func_get_args()); echo "<br>"; echo func_get_arg(1); echo "<br>"; echo func_num_args(); } jb51("www","j...2013-10-04
  • PHP中SSO Cookie登录分析和实现

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

    这篇文章主要介绍了PHP编程 SSO详细介绍及简单实例的相关资料,这里介绍了三种模式跨子域单点登陆、完全跨单点域登陆、站群共享身份认证,需要的朋友可以参考下...2017-01-25
  • vue项目中js-cookie的使用存储token操作

    这篇文章主要介绍了vue项目中js-cookie的使用存储token操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-14
  • PHP实现创建以太坊钱包转账等功能

    这篇文章主要介绍了PHP实现创建以太坊钱包转账等功能,对以太坊感兴趣的同学,可以参考下...2021-04-20
  • iscroll.js 用法介绍

    最新版下载: http://www.csdn123.com/uploadfile/2015/0428/20150428062734485.zip 概要 iScroll 4 这个版本完全重写了iScroll这个框架的原始代码。这个项目的产生...2016-05-19
  • C#中的try catch finally用法分析

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

    这篇文章主要介绍了C++中cin的用法详细,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-25
  • php微信公众账号开发之五个坑(二)

    这篇文章主要为大家详细介绍了php微信公众账号开发之五个坑,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-02
  • ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单

    首先是数据库的设计。分类表叫cate.我做的是分类数据的二级联动,数据需要的字段有:id,name(中文名),pid(父id). 父id的设置: 若数据没有上一级,则父id为0,若有上级,则父id为上一级的id。数据库有内容后,就可以开始写代码,进...2014-05-31
  • PHP如何通过date() 函数格式化显示时间

    这篇文章主要介绍了PHP如何通过date() 函数格式化显示时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-11-13
  • PHP+jQuery+Ajax实现多图片上传效果

    今天我给大家分享的是在不刷新页面的前提下,使用PHP+jQuery+Ajax实现多图片上传的效果。用户只需要点击选择要上传的图片,然后图片自动上传到服务器上并展示在页面上。...2015-03-15
  • 什么是cookie?js手动创建和存储cookie

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