php中session实现保存用户登录信息
简单的创建session
代码如下 | 复制代码 |
<? |
在该例子中,我们向 session 注册了一个名为 username 的变量,其值为 nostop 。
读取 session
PHP 内置的 $_SESSION 变量可以很方便的访问设置的 session 变量。
代码如下 | 复制代码 |
例子: |
销毁 session
代码如下 | 复制代码 |
session_unregister() 注销单个 session 变量 |
例子:
代码如下 | 复制代码 |
<?php session_start(); session_unregister("username"); //注销 session 某个变量 session_unset(); //注销 session 会话 ?> |
看一个完整的session使用方法,
使用session来保存用户登录信息
代码如下 | 复制代码 |
|
登录页面:logIn.php
代码如下 | 复制代码 |
//如果用户未登录,即未设置$_SESSION['user_id']时,执行以下代码 if(!empty($user_username)&&!empty($user_password)){ <label for="username">Username:</label> <br/> <label for="password">Password:</label> </fieldset> |
3、登入页面:loged.php
代码如下 | 复制代码 |
|
4、注销session页面:logOut.php(注销后重定向到lonIn.php)
代码如下 | 复制代码 |
<?php |
如果 PHP 的设置选项 register_globals 为 on,则相关的变量名将也会存在。从 PHP 4.2.0 版本开始,register_globals 的默认值被设为 off。
我们假设文件上传字段的名称为 userfile。名称可随意命名。
$_FILES['userfile']['name']
客户端机器文件的原名称。
$_FILES['userfile']['type']
文件的 MIME 类型,需要浏览器提供该信息的支持,例如“image/gif”。
$_FILES['userfile']['size']
已上传文件的大小,单位为字节。
$_FILES['userfile']['tmp_name']
文件被上传后在服务端储存的临时文件名。
$_FILES['userfile']['error']
和该文件上传相关的错误代码。['error'] 是在 PHP 4.2.0 版本中增加的。
处理函数:
move_uploaded_file()
(PHP 4 >= 4.0.3, PHP 5)
move_uploaded_file -- 将上传的文件移动到新位置
说明
bool move_uploaded_file ( string filename, string destination )
本函数检查并确保由 filename 指定的文件是合法的上传文件(即通过 PHP 的 HTTP POST 上传机制所上传的)。如果文件合法,则将其移动为由 destination 指定的文件。
如果 filename 不是合法的上传文件,不会出现任何操作,move_uploaded_file() 将返回 FALSE。
如果 filename 是合法的上传文件,但出于某些原因无法移动,不会出现任何操作,move_uploaded_file() 将返回 FALSE。此外还会发出一条警告。
如果目标文件已经存在,将会被覆盖。
示例:
代码如下 | 复制代码 |
if(move_uploaded_file($_FILES["magfile"]["tmp_name"], $uploaddir)) { echo "Update OK!"; } |
也可用copy(PHP 3, PHP 4, PHP 5)
copy -- 拷贝文件
bool copy ( string source, string dest )
将文件从 source 拷贝到 dest。如果成功则返回 TRUE,失败则返回 FALSE。
提交页:
代码如下 | 复制代码 |
<form action="." method="post" enctype="multipart/form-data" name="UL"> |
处理页:
代码如下 | 复制代码 |
if($_FILES['picurl']['size'] > 0){ |
其它非File类型的表单,可照样用$_POST['name']来接收。
php上传图片简单实现
代码如下 | 复制代码 |
<html> <head> <title>PHP上传图片简单实现 </title> </head> <body> <?php if($_GET['action'] == 'upfile') { $target_path = 'temp_'.$_FILES['photo']['name']; echo '上传的临时文件:' .$_FILES['photo']['tmp_name'] . '<br/>'; echo '上传的目标文件:' .$target_path . '<br/>'; echo $_SERVER["SCRIPT_FILENAME"] . '<br/>'; echo $_SERVER["OS"] . '<br/>'; //测试函数: move_uploaded_file //也可以用函数:copy move_uploaded_file($_FILES['photo']['tmp_name'], $target_path); echo "Upload result:"; if(file_exists($target_path)) { if($_SERVER["OS"]!="Windows_NT"){ @chmod($target_path,0604); } echo '<font color="green">Succeed!</font><br /><a href="http://' .$_SERVER["SERVER_NAME"] . "/" .$target_path .'"><img src=' .$target_path .' border="0">'; } else { echo '<font color="red">Failed!</font>'; } exit; } ?> <h1>Registration</h1> <form action="upload.php?action=upfile" method="post" name="UForm" enctype="multipart/form-data"> <fieldset> <legend>Your information</legend> <ul> <li>Your Phot<input type="file" name="photo"></li> </ul> </fieldset> <button type="submit">上传</button> </form> </body> </html> |
上面代码只适用于学习使用,如果想使用在现在的服务器上我们必须如下写法
代码如下 | 复制代码 |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <?php 参数说明: 使用说明: //上传文件类型列表 $max_file_size=2000000; //上传文件大小限制, 单位BYTE <body> <?php $file = $_FILES["upfile"]; if(!in_array($file["type"], $uptypes)) if(!file_exists($destination_folder)) $filename=$file["tmp_name"]; if(!move_uploaded_file ($filename, $destination)) $pinfo=pathinfo($destination); if($watermark==1) imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]); switch($watertype) switch ($iinfo[2]) //覆盖原上传文件 if($imgpreview==1) |
empty() 与 isset() 的一个简单比较。
代码如下 | 复制代码 |
<?php |
上面的empty与isset判断为没有任何属性的对象都将被认为是空.
var == null
功能:判断变量是否为“空”
说明:值为 0 或 false 或 空字符串”" 或 null的变量、空数组、都将判断为 null
注意:与empty的显著不同就是:变量未初始化时 var == null 将会报错。
代码如下 | 复制代码 |
$a = 0; // Undefined variable: c |
is_null
代码如下 | 复制代码 |
$a = null; // Undefined variable: c 变量==0 或 变量===0 |
例
代码如下 | 复制代码 |
$a ===0 $a ==="" |
在php url传参数时
php页面的 URL 尾部参数出现 id=0 时(比如:test.php?id=0),试比较:
代码如下 | 复制代码 |
if(empty($id)) $id=1; // 若 id=0 ,id 也会为1 if(empty($id)) $id=1; |
总结
在php中NULL与空是两种不同的概念,
isset 主要用来判断变量是否被初始化过
empty 可以将值为 “假”、“空”、“0”、“NULL”、“未初始化” 的变量都判断为TRUE
is_null 仅把值为 “NULL” 的变量判断为TRUE
var == null 把值为 “假”、“空”、“0”、“NULL” 的变量都判断为TRUE
var === null 仅把值为 “NULL” 的变量判断为TRUE
其它一些可能用到php变量判断的函数
isset($ var) : //变量是不是已经声明
empty($ var): //变量是不是为空
defined($ var): //常量是不是已经定义 define()
is_array($ var): //检验测定变量是不是是数组
is_null($ var): //检验测定变量是不是为 null
在php中检查变量类型的方法很简单,利用gettype()函数就可返回当前变量类型的了,下面我来给各位朋友详细介绍如何利用gettype函数检查变量类型,有需要了解的朋友可参考。string gettype ( mixed $var ) 返回 PHP 变量的类型 var.
例
代码如下 | 复制代码 |
<?php |
官方说:不要使用 gettype() 来测试某种类型,因为其返回的字符串在未来的版本中可能需要改变。此外,由于包含
了字符串的比较,它的运行也是较慢的。
使用 is_* 函数代替。
代码如下 | 复制代码 |
<?php |
其它的些变量类型判断收藏
array_key_exists(mixed key, array search) ://检查给定的键名或索引是不是存在于数组中 判断数据类型
is_numeric ( mixed var ): //检验测定变量是不是为数码或数码字符串
is_bool($ var): //检验测定变量是不是是布尔型
is_float($ var): //检验测定变量是不是是浮点型 和is_double,is_real()都同样的用法
is_int($ var): //检验测定变量是不是是整儿is_integer()同样的用法
is_string($ var): //检验测定变量是不是是字符串
is_object($ var): //检验测定变量是不是是一个对象
is_array($ var): //检验测定变量是不是是数组
is_null($ var): //检验测定变量是不是为 null
在php中变量类型我们有常用变量与常量,下面我来给大家介绍如何在php中来判断常量与变量是否己经在存了,有需要了解的朋友可进入参考。defined() 函数检查某常量是否存在。
若常量存在,则返回 true,否则返回 false。
代码如下 | 复制代码 |
|
isset函数是检测变量是否设置。
1.若变量不存在则返回 FALSE
2.若变量存在且其值为NULL,也返回 FALSE
3.若变量存在且值不为NULL,则返回 TURE
4.同时检查多个变量时,每个单项都符合上一条要求时才返回 TRUE,否则结果为
代码如下 | 复制代码 |
<?php $var = ''; if (isset($var)) { // 在后边的例子中,我们将使用 var_dump函数 输出 isset() 的返回值。 $a = "test"; var_dump( isset($a) ); // TRUE unset ($a); var_dump( isset ($a) ); // FALSE $foo = NULL; ?> |
这对于数组中的元素也同样有效:
代码如下 | 复制代码 |
<?php $a = array ('test' => 1, 'hello' => NULL); var_dump( isset ($a['test') ); // TRUE // 'hello' 等于 NULL,所以被认为是未赋值的。 ?> |
function_exists判断函数是否存在
代码如下 | 复制代码 |
<?php |
filter_has_var函数
filter_has_var() 函数检查是否存在指定输入类型的变量。
若成功,则返回 true,否则返回 false。
代码如下 | 复制代码 |
<?php |
输出为. Input type exists
相关文章
PHP session_start()很慢问题分析与解决办法
本文章来给各位同学介绍一下关于PHP session_start()很慢问题分析与解决办法,希望碰到此问题的同学可进入参考。 最近在做东西的时候发现一个问题 有一个接口挂...2016-11-25- php 获取用户IP与IE信息程序 function onlineip() { global $_SERVER; if(getenv('HTTP_CLIENT_IP')) { $onlineip = getenv('HTTP_CLIENT_IP');...2016-11-25
- php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p> </p> <p> </p> <form name="form1...2016-11-25
- 当来访者浏览器语言是中文就进入中文版面,国外的用户默认浏览器不是中文的就跳转英文页面。 <?php $lan = substr( $HTTP_ACCEPT_LANGUAGE,0,5); if ($lan == "zh-cn") print("<meta http-equiv='refresh' c...2015-11-08
PHP分布式框架如何使用Memcache同步SESSION教程
本教程主要讲解PHP项目如何用实现memcache分布式,配置使用memcache存储session数据,以及memcache的SESSION数据如何同步。 至于Memcache的安装配置,我们就不讲了,以前...2016-11-25- 【问题描述】:同一用户在同一时间多次登录如果不能检测出来,是危险的。因为,你无法知道是否有其他用户在登录你的账户。如何禁止同一用户多次登录呢? 【解决方案】 (1) 每次登录,身份认证成功后,重新产生一个session_id。 s...2015-11-24
- 一个用Javascript检测用户输入密码强度的效果代码,以下代码主要是从以下四个方面检测用户输入的密码的强度的,有兴趣的朋友可以自己添加或修改成自己想要的形式! 1. 如果输入的密码位数少于5位,那么就判定为弱。 2. 如果...2015-10-23
- 这篇文章主要为大家详细介绍了vue实现用户登录切换,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-04-22
- 这篇文章主要介绍了C#中的session用法 ,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
Python3使用Selenium获取session和token方法详解
这篇文章主要介绍了Python3使用Selenium获取session和token方法详解,需要的朋友可以参考下...2021-02-17- 这是注册程序是一款当用户输入完用户名是,就会自动去数据库中查询用户要注册的用户名是否己经被注册了,如果是返回提示否则提示可以注册。 conn.php文件 代...2016-11-25
- session和cookie是网站浏览中较为常见的两个概念,也是比较难以辨析的两个概念,但它们在点击流及基于用户浏览行为的网站分析中却相当关键。基于网上一些文章和资料的参阅,及作者个人的应用体会,对这两个概念做一个简单的阐述...2013-09-11
- 这篇文章主要给大家介绍了关于微信小程序用户授权最佳实践的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-05-08
- session在php中是一个非常重要的东西,像我们用户登录一般都使用到session这个东西,相对于cookie来说session 要安全很多,同时我们购物车经常使用session来做临时的记录保存哦。使用session保存页面登录信息1、数据库连接...2015-10-21
- cookie 的用途之一是存储用户在特定网站上的密码和 id。另外,也用于存储起始页的首选项。在提供个人化查看的网站上,将要求阁下的网络浏览器利用阁下计算机硬驱上的少量...2016-11-25
- 这篇文章主要介绍了Vue使用axios引起的后台session不同操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-14
- 知识归纳因为MySQL是使用User和Host两个字段来确定用户身份的,这样就带来一个问题,就是一个客户端到底属于哪个host。 如果一个客户端同时匹配几个Host,对用户的确定将按照下面的优先级来排 基本观点越精确的匹配越优先...2015-11-08
- PHP的session功能,一直为许多的初学者为难。就连有些老手,有时都被搞得莫名其妙。本文,将这些问题,做一个简单的汇总,以便大家查阅。 1. 错误提示 引用 代...2016-11-25
- 这篇文章主要介绍了sqlserver添加sa用户和密码的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-05-07
- 要设置php生存有效时间我们可以利用session_set_cookie_params函数或修改php.ini文件哦,下面小编来介绍一下。 第一种方法:session_set_cookie_params 函数原型 voi...2016-11-25