利用cookie实现用户自动登录的代码

 更新时间:2016年11月25日 15:51  点击:1806

cookie 是由服务器发送到浏览器的变量。cookie 通常是服务器嵌入到用户计算机中的小文本文件。每当计算机通过浏览器请求一个页面,就会发送这个 cookie。

实例

<?php教程

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

?>

<html>

 <head>
  <title>Cookie</title>
 </head>

 <body>

 </body>

</html>


如果要删除 cookie只要设置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.";
?>

我们在开发中经常会用到cookie自动登录

实例

 

<?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.";
  }
?>

php教程 scandir遍历显示所有文件与文件夹下的文件,方法很简单我们只要利用is_dir判断再递归查找一次,这样就可以把遍历目录下所有文件了。

目录遍历

<?php

  function numfilesindir ($thedir){
    if (is_dir ($thedir)){
      $scanarray = scandir ($thedir);
      for ($i = 0; $i < count ($scanarray); $i++){
        if ($scanarray[$i] != "." && $scanarray[$i] != ".."){
          if (is_file ($thedir . "/" . $scanarray[$i])){
            echo $scanarray[$i] . "<br />";
          }
        }
      }
    } else {
      echo "Sorry, this directory does not exist.";
    }
  }
  echo numfilesindir ("sample1");

?>

扫描指定位置的文件

<?php
   print_r(scandir("/usr/local/apache2/htdocs"));
?>

<?
    $files = scandir(".", 1);
    var_dump($files);
?>

读取团购网站的api的php教程程序

$arr = array(
 array("http://www.meituan.com/api/deals/hao123","url","美团网"),

);

class AminoAcid {
    var $name;
    var $symbol;
    var $code;
    var $type;
    function AminoAcid ($aa){
        foreach ($aa as $k=>$v)
            $this->$k = $aa[$k];
    }
}
function readDatabase($filename,$label){
    $data = implode("",file($filename));
    $parser = xml_parser_create();
    xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
    xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
    xml_parse_into_struct($parser, $data, $values, $tags);
    xml_parser_free($parser);
    foreach ($tags as $key=>$val) {
        if ($key == $label) {
            $molranges = $val;
            for ($i=0; $i < count($molranges); $i+=2) {
                $offset = $molranges[$i] + 1;
                $len = $molranges[$i + 1] - $offset;
                $tdb[] = parseMol(array_slice($values, $offset, $len));
            }
        } else {
            continue;
        }
    }
    return $tdb;
}
function parseMol($mvalues){
    for ($i=0; $i < count($mvalues); $i++) {
        $mol[$mvalues[$i]["tag"]] = $mvalues[$i]["value"];
    }
    return new AminoAcid($mol);
}

foreach($arr as $key => $value){
   $r = readDatabase($value[0],$value[1]);
   print_r($r);//打印出来解析出来的信息
 }

php教程 分支结构 条件结构 选择结构

<?php
/*
 *    流程控制
 *   
 *     一、顺序结构
 *     二、分支结构--条件结构--选择结构
 *       1.单路分支
 *  //条件bool,true或false,> < == !- & || !
 *  if(条件)
 *   执行下面一条语句
 *  if(条件)
 *  {
 *   代码段;
 *   代码段;
 *  }
 *
 *       2.双路分支
 *          使用else从句
 *
 *      if(条件)
 *       执行一条语句
 *      else
 *       执行一条语句
 *      if(条件){
 *        一条或多条代码
 *      }else{
 *        一条或多条代码
 *      }
 *      
 *       3.多路分支
 *  可以使用 if  else if   和 switch case
 *  //这是一种互斥的关系
 *  if(条件){
 *
 *  }else if(条件){
 *  }else if(条件){
 *  }else{
 *  }
 *       4.嵌套分支
 *  if(){
 *   if(){
 *   }else{
 *    if(){}
 *   }
 *   }
 * 三、循环结构
 *  
 * 
 *
 *
 *
 * 总结:
 *  如果是判断一段范围 则使用elseif
 *  如果是单个匹配,则使用switch case
 */
 //单路执行
 $a=10;
 $b=5;
 if($a > $b)
  echo "$a 是大于 $b 的";

 //双路执行
 $a=10;
 $b=20;
 if($a>$b)
 {
  echo "$a 大于 $b</br>";
 }
 else
 {
  echo "$a 小于 $b</br>";
 }

 //多路执行
 $hour=date("H");
 if($hour > 6 && $hour < 9)
 {
  echo "good morning!":
 }
 else if($hour > 9 && $hour < 12)
 {
  echo "上午好";
 }
 else if($hour > 12 && $hour < 14)
 {
  echo "中午好";
 }
 else if($hour > 14 && $hour < 17)
 {
  echo "下午好";
 }
 else if($hour > 17 && $hour < 19)
 {
  echo "傍晚好";
 }
 else if($hour > 19 && $hour <22)
 {
  echo "晚上好";
 }
 else
 {
  echo "夜晚好";
 }
 //根据互斥性改良代码
 $hour=date("H");
 if($hour < 9)
 {
  echo "good morning!":
 }
 else if($hour < 12)
 {
  echo "上午好";
 }
 else if($hour < 14)
 {
  echo  case " Mon":
  echo "星期一";
  break;"中午好";
 }
 else if($hour < 17)
 {
  echo "下午好";
 }
 else if($hour > 19)
 {
  echo "傍晚好";
 }
 else if($hour < 22)
 {
  echo "晚上好";
 }
 else
 {
  echo "夜晚好";
 }

 //判断当天星期
 $week=date("D");//获取星期几
 switch($week) //switch(变量)  变量只用整型和字符串
 {
 case "Mon":
  echo "星期一";
  break;
 case "Tue"
  echo "星期二";
  break;
 case "Wed":
  echo "星期三";
  break;
 case "Thu":
  echo "星期四";
  break;
 case "Fri":
  echo "星期五";
  break;
 default:
  echo "周末";
 }

 //嵌套类
 $sex=$_GET["sex"];
 $age=$_GET["age"];
 if($sex=="nan")
 {
  if($age >= 60)
  {
   echo "这个$sex 已经退休".($age-60)."年了";
  }
  else
  {
   echo "这个男士还在工作,还有".(60-$age)."年才退休";
  }
 }
 else
 {
  if($age >= 66)
  {
   echo "这个$sex 已经退休".($age-66)."年了";
  }
  else
  {
   echo "这个女士还在工作,还有".(66-$age)."年才退休";
  }
 }
?>

变量用于存储值,比如数字、文本字符串或数组。

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

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

在 PHP 中设置变量的正确方法是:

$var_name = value;PHP 的入门者往往会忘记在变量的前面的 $ 符号。如果那样做的话,变量将是无效的。

让我们试着创建一个存有字符串的变量,和一个存有数值的变量:


如果对于变量和常量的定义,你会注意几个方面呢?你可能会想到:

如何定义变量,它和C# 等语言有什么不同呢?
变量区分大小写吗?
PHP的变量还有其他重要的吗?

常量和变量的定义一样吗?
 分别讲述吧。
1.如何定义变量,它和C# 等语言有什么不同呢?
   PHP 中的变量用一个美元符号后面跟变量名来表示。变量名是区分大小写的。例如:
<?php教程
 $var='Jim';
  $VAR='Kimi;
  echo "$var,$VAR";//输出“Jim,Kimi"
 ?>你可能还关心变量的命名,其实和大多数语言一样。
2. 变量区分大小写吗?
   如 1里说的,区分大小写。
  注意,需要说明的一点是自PHP4以来,引入了引用赋值的概念,其实和多数语言的引用类似,不过我觉得最类似的是C/C++.因为它也用到了"&"符号。例如:  1 <?php
2 $foo = 'Bob';              // 赋值'Bob'给foo
3 $bar = &$foo;              // 通过$bar引用.注意&符号
4 $bar = "My name is $bar";  // 修改 $bar
5 echo $bar;
6 echo $foo;                // $foo 也修改了.
7 ?> 和其他语言一样,只能对有变量名的变量才可以引用。
3. PHP其他重要点
预定义变量
预定义变量在PHP是一个重要的概念。 PHP 提供了大量的预定义变量。由于许多这些变量依赖于运行的服务器的版本和设置,及其它因素,所以并没有详细的说明文档。一些预定义变量在 PHP 以命令行形式运行时并不生效。

需要注意的是 在PHP 4.2.0 以及后续版本中,PHP 指令 register_globals 的默认值为 off。这是 PHP 的一个主要变化。让 register_globals 的值为 off 将影响到预定义变量集在全局范围内的有效性。例如,为了得到 DOCUMENT_ROOT 的值,将必须使用 $_SERVER['DOCUMENT_ROOT'] 代替 $DOCUMENT_ROOT,又如,使用 $_GET['id'] 来代替 $id 从 URL http://www.example.com/test.php?id=3 中获取 id 值,亦或使用 $_ENV['HOME'] 来代替 $HOME 获取环境变量 HOME 的值。

从 PHP 4.1.0 开始,PHP 提供了一套附加的预定数组,这些数组变量包含了来自 web 服务器(如果可用),运行环境,和用户输入的数据。这些数组非常特别,它们在全局范围内自动生效,例如,在任何范围内自动生效。因此通常被称为自动全局变量(autoglobals)或者超全局变量(superglobals)。(PHP 中没有用户自定义超全局变量的机制。)超全局变量罗列于下文中;而且,你也将注意到旧的预定义数组($HTTP_*_VARS)仍旧存在。自 PHP 5.0.0 起,长格式的 PHP 预定义变量可以通过设置 register_long_arrays 来屏蔽。
下表是PHP的超全局变量:
超全局变量
 描述
 
$GLOBALS 包含一个引用指向每个当前脚本的全局范围内有效的变量。该数组的键名为全局变量的名称。从 PHP 3 开始存在 $GLOBALS 数组。
$_SERVER 变量由 web 服务器设定或者直接与当前脚本的执行环境相关联。类似于旧数组 $HTTP_SERVER_VARS 数组(依然有效,但反对使用)。
$_GET 经由 URL 请求提交至脚本的变量。类似于旧数组 $HTTP_GET_VARS 数组(依然有效,但反对使用)。
$_POST 经由 HTTP POST 方法提交至脚本的变量。类似于旧数组 $HTTP_POST_VARS 数组(依然有效,但反对使用)。
$_COOKIE 经由 HTTP Cookies 方法提交至脚本的变量。类似于旧数组 $HTTP_COOKIE_VARS 数组(依然有效,但反对使用)。
$_FILES 经由 HTTP POST 文件上传而提交至脚本的变量。类似于旧数组 $HTTP_POST_FILES 数组(依然有效,但反对使用)
$_ENV 执行环境提交至脚本的变量。类似于旧数组 $HTTP_ENV_VARS 数组(依然有效,但反对使用)。
$_REQUEST  经由 GET,POST 和 COOKIE 机制提交至脚本的变量,因此该数组并不值得信任。所有包含在该数组中的变量的存在与否以及变量的顺序均按照 php.ini 中的 variables_order 配置指示来定义。此数组在 PHP 4.1.0 之前没有直接对应的版本。参见 import_request_variables()。
$_SESSION 当前注册给脚本会话的变量。类似于旧数组 $HTTP_SESSION_VARS 数组(依然有效,但反对使用)
变量的应用范围
 每个变量都有应用范围,那么PHP是怎么定义的呢?还是先看看下面代码吧:
 1 <?php
 2  $var=0;
 3  function test($index)
 4  {
 5      $var=$var+1;
 6      echo "The ".$index." number is ".$var."<br>";
 7  }
 8  test(1);
 9  test(2)
10 ?>你认为以上的代码会显示什么结果呢?
如果你认为是下面:
结果1:
The 1 number is 1
The 2 number is 2不好意思,你的结果是错误的。
其实正确的结果应该是:
结果2
The 1 number is 1
The 2 number is 1那么你从其中发现了什么呢?我们可以知道虽然第2行的代码定义在外面,但第5行的变量和它是不一样的。第5行的变量仅在这个函数里使用。进一步的,如果我想调用第一行的变量而显示结果2.代码可以如下:
 1 <?php
 2  $var=0;
 3  function test($index)
 4  {
 5      global $var;
 6      $var=$var+1;
 7      echo "The ".$index." number is ".$var."<br>";
 8  }
 9  test(1);
10  test(2)
11 ?>这个代码段和上面的代码段有何区别呢?注意第5行,多了一个global关键字。明白了吧。
那么还有没有其他方法呢?答案是肯定的。
代码如下:
 1 <?php
 2  $var=0;
 3  function test($index)
 4  {
 5     
 6      $GLOBALS["var"]=$GLOBALS["var"]+1;
 7      echo "The ".$index." number is ".$GLOBALS["var"]."<br>";
 8  }
 9  test(1);
10  test(2)
11 ?>代码有什么特殊的吗?那就是用到了$GLOBALS这个超全局变量。
PHP也有静态变量的说法。不过静态变量一般用在函数里,只能是局部变量了。看看下面代码吧:
 1 <?php
 2 function Test()
 3 {
 4    static $a = 0;
 5    echo $a."<br>";
 6    $a++;
 7 }
 8 Test();
 9 Test();
10 ?> 结果为
1
2
PHP还有一个相当令人兴奋的特性:可变变量
所谓可变变量,就是一个变量的变量名可以动态的设置和使用。
看看下面的例子:
1 <?php
2  $a="hello";
3  $hello="world";
4  echo $a." ".$$a;
5 ?> 输出的结果居然是hello,world.太神奇了。$$a其实就是$hello,因为$a的值是hello。
变量就这多了。下面看看常量。

常量
 PHP的常量是不是前面加const呢?让我们看一看。
不是的。在PHP必须用下面的方式定义。
bool define ( string name, mixed value [, bool case_insensitive] )
name 为常量名,value为常量的值。case_insensitive]为大小写敏感。默认为敏感。例如:
 1 <?php
 2 define("CONSTANT", "Hello world.");
 3 echo CONSTANT; // outputs "Hello world."
 4 echo Constant; // outputs "Constant" and issues a notice.
 5
 6 define("GREETING", "Hello you.", true);
 7 echo GREETING; // outputs "Hello you."
 8 echo Greeting; // outputs "Hello you."
 9
10 ?>

常量和变量不同:

常量前面没有美元符号($);

常量只能用 define() 函数定义,而不能通过赋值语句;

常量可以不用理会变量范围的规则而在任何地方定义和访问;

常量一旦定义就不能被重新定义或者取消定义;

常量的值只能是标量。

实例

<?php
$txt = "Hello World!";
$number = 16;
?>PHP 是一门松散类型的语言(Loosely Typed Language)
在 PHP 中,不需要在设置变量之前声明该变量。

在上面的例子中,您看到了,不必向 PHP 声明该变量的数据类型。

根据变量被设置的方式,PHP 会自动地把变量转换为正确的数据类型。

在强类型的编程语言中,您必须在使用前声明变量的类型和名称。

在 PHP 中,变量会在使用时被自动声明。


<?php
 //引用
 $one="test";
 two=&amp;$one;//相当于传地址,两个变量指向一个地址

//动态变量
$one="######";
$two="one";
$three="two";

echo $three."&lt;br&gt;";//输出"two"
echo $$three."&lt;br&gt;";//输出"one"
echo $$$three."&lt;br&gt;";//输出"######"

//php中有8个类型
//4种标量:   int integer
//     bool boolean
//     float,double,real
//     string
//2种复合类型: array
//  object
//2种特殊类型:  资源类型 resource
//   空类型   null

  
//整数的声明  
$int=10; //十进制声明
$int=045;//八进制声明
$int=0xff;//十六进制声明
$float=3.14E+5;//科学计数法
$float=3.14E-5;

//一下都是false的情况
$bool=false;
$bool=0;
$bool=0.000;
$bool=null;
$bool="";
$bool=" ";
$bool="0";
$bool=array();

//字符串的声明
//1.单引号和双引号都可以声明字符串
//2.声明的字符串没有长度限制
//3.在双引号的字符串中,既可以直接解析变量,又可以直接使用转义字符(可以转义单引号本身,也可以转义转义字符"")
//4.在单引号的字符串中,不可以直接解析变量,也不可以使用转义字符
//5.在双引号中不能再使用双引号,在单引号中不能再使用单引号
//6.最好使用单引号,
$str='aaaaa';
$str="aaaa";
//定界符声明字符串,大量字符串
//test是自定义的一个字符串,后面不能有任何字符,空格也不可以
//也要以test这个自定义的字符串结束,结束前不能有任何字符
$str=&lt;&lt;&lt;test
this write content......
test;
?>

[!--infotagslink--]

相关文章

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

    PHPEMS(PHP Exam Management System)在线模拟考试系统基于PHP+Mysql开发,主要用于搭建模拟考试平台,支持多种题型和展现方式,是国内首款支持题冒题和自动评分与教师评分相...2016-11-25
  • php 获取用户IP与IE信息程序

    php 获取用户IP与IE信息程序 function onlineip() { global $_SERVER; if(getenv('HTTP_CLIENT_IP')) { $onlineip = getenv('HTTP_CLIENT_IP');...2016-11-25
  • 不打开网页直接查看网站的源代码

      有一种方法,可以不打开网站而直接查看到这个网站的源代码..   这样可以有效地防止误入恶意网站...   在浏览器地址栏输入:   view-source:http://...2016-09-20
  • php 调用goolge地图代码

    <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
  • JS基于Mootools实现的个性菜单效果代码

    本文实例讲述了JS基于Mootools实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
  • JS+CSS实现分类动态选择及移动功能效果代码

    本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
  • JS实现自定义简单网页软键盘效果代码

    本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
  • php 取除连续空格与换行代码

    php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
  • php简单用户登陆程序代码

    php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p>&nbsp;</p> <p>&nbsp;</p> <form name="form1...2016-11-25
  • JS使用cookie实现DIV提示框只显示一次的方法

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

    公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例...2015-10-23
  • JS实现双击屏幕滚动效果代码

    本文实例讲述了JS实现双击屏幕滚动效果代码。分享给大家供大家参考,具体如下:这里演示双击滚屏效果代码的实现方法,不知道有觉得有用处的没,现在网上还有很多还在用这个特效的呢,代码分享给大家吧。运行效果截图如下:在线演...2015-10-30
  • js识别uc浏览器的代码

    其实挺简单的就是if(navigator.userAgent.indexOf('UCBrowser') > -1) {alert("uc浏览器");}else{//不是uc浏览器执行的操作}如果想测试某个浏览器的特征可以通过如下方法获取JS获取浏览器信息 浏览器代码名称:navigator...2015-11-08
  • JS日期加减,日期运算代码

    一、日期减去天数等于第二个日期function cc(dd,dadd){//可以加上错误处理var a = new Date(dd)a = a.valueOf()a = a - dadd * 24 * 60 * 60 * 1000a = new Date(a)alert(a.getFullYear() + "年" + (a.getMonth() +...2015-11-08
  • PHP开发微信支付的代码分享

    微信支付,即便交了保证金,你还是处理测试阶段,不能正式发布。必须到你通过程序测试提交订单、发货通知等数据到微信的系统中,才能申请发布。然后,因为在微信中是通过JS方式调用API,必须在微信后台设置支付授权目录,而且要到...2014-05-31
  • PHP常用的小程序代码段

    本文实例讲述了PHP常用的小程序代码段。分享给大家供大家参考,具体如下:1.计算两个时间的相差几天$startdate=strtotime("2009-12-09");$enddate=strtotime("2009-12-05");上面的php时间日期函数strtotime已经把字符串...2015-11-24
  • php根据用户语言跳转相应网页

    当来访者浏览器语言是中文就进入中文版面,国外的用户默认浏览器不是中文的就跳转英文页面。 <&#63;php $lan = substr(&#8194;$HTTP_ACCEPT_LANGUAGE,0,5); if ($lan == "zh-cn") print("<meta http-equiv='refresh' c...2015-11-08
  • 几种延迟加载JS代码的方法加快网页的访问速度

    本文介绍了如何延迟javascript代码的加载,加快网页的访问速度。 当一个网站有很多js代码要加载,js代码放置的位置在一定程度上将会影像网页的加载速度,为了让我们的网页加载速度更快,本文总结了一下几个注意点...2013-10-13
  • php怎么用拼音 简单的php中文转拼音的实现代码

    小编分享了一段简单的php中文转拼音的实现代码,代码简单易懂,适合初学php的同学参考学习。 代码如下 复制代码 <?phpfunction Pinyin($_String...2017-07-06
  • js检测用户输入密码强度

    一个用Javascript检测用户输入密码强度的效果代码,以下代码主要是从以下四个方面检测用户输入的密码的强度的,有兴趣的朋友可以自己添加或修改成自己想要的形式! 1. 如果输入的密码位数少于5位,那么就判定为弱。 2. 如果...2015-10-23