php登录与退出登录实例代码
login.htm
代码如下 | 复制代码 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <body> |
login.php
代码如下 | 复制代码 |
function showPage() //判断是否登录 未登录直接跳转至登录页面 |
退出登录
out.php
代码如下 | 复制代码 |
function loginOut() //登出函数 |
代码如下 | 复制代码 |
<?php // 定义提示函数 function alert($msg){ return '<script type="text/javascript">alert("'.$msg.'");window.history.back(-1);</script>'; }
$allowType = array('image/jpeg','image/gif','image/jpg');
$filePath = './uploadFileDir/';
// 接收表单信息 其中里边写的 file 值是 静态页form表单里的name值 $file = $_FILES['file'];
// 第一步,判断上传的文件是否有错误 if( $file['error'] !== 0 ){ exit(alert('文件上传错误')); }
// 第二步,判断文件大小,这里的102400是字节,换算为kb就是100kb if( $file['size'] > 102400 ){ exit(alert('文件过大')); }
// 第三步,判断文件类型 if( !in_array(mime_content_type($file['tmp_name']),$allowType) ){ exit(alert('文件类型错误')); }
// 第四步,判断路径是否存在,如果不存在则创建 if( !file_exists($filePath) && !mkdir($filePath,0777,true) ){ exit(alert('创建目录错误')); }
// 第五步,定义上传后的名字及路径 $filename = time().'_'.$file['name'];
// 第六步,复制文件 if( !copy($file['tmp_name'],$filePath.$filename) ){ exit(alert('上传文件出错,请稍候重试')); }
// 第七步,删除临时文件 unlink($file['tmp_name']);
// 提示上传成功 echo alert('恭喜,上传文件['.$filename.']成功!'); |
如果 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) |
简单的创建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 |
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
相关文章
- 在很多网站用户先访问一个要登录的页面,但当时没有登录后来登录了,等待用户登录成功之后肯定希望返回到上次访问的页面,下面我就来给大家介绍登录后跳转回原来要访问的页...2016-11-25
- 有一种方法,可以不打开网站而直接查看到这个网站的源代码.. 这样可以有效地防止误入恶意网站... 在浏览器地址栏输入: view-source:http://...2016-09-20
- <?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实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
- 本文章完美的利用了php的curl功能实现模拟登录discuz以及模拟发帖,本教程供参考学习哦。 代码如下 复制代码 <?php $discuz_url = ‘ht...2016-11-25
- 本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
- 本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
- php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
- php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p> </p> <p> </p> <form name="form1...2016-11-25
- 公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例...2015-10-23
- 本文实例讲述了JS实现双击屏幕滚动效果代码。分享给大家供大家参考,具体如下:这里演示双击滚屏效果代码的实现方法,不知道有觉得有用处的没,现在网上还有很多还在用这个特效的呢,代码分享给大家吧。运行效果截图如下:在线演...2015-10-30
- 其实挺简单的就是if(navigator.userAgent.indexOf('UCBrowser') > -1) {alert("uc浏览器");}else{//不是uc浏览器执行的操作}如果想测试某个浏览器的特征可以通过如下方法获取JS获取浏览器信息 浏览器代码名称:navigator...2015-11-08
- 一、日期减去天数等于第二个日期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
- 微信支付,即便交了保证金,你还是处理测试阶段,不能正式发布。必须到你通过程序测试提交订单、发货通知等数据到微信的系统中,才能申请发布。然后,因为在微信中是通过JS方式调用API,必须在微信后台设置支付授权目录,而且要到...2014-05-31
Ruby on Rails实现最基本的用户注册和登录功能的教程
这里我们主要以has_secure_password的用户密码验证功能为中心,来讲解Ruby on Rails实现最基本的用户注册和登录功能的教程,需要的朋友可以参考下...2020-06-30- 本文实例讲述了PHP常用的小程序代码段。分享给大家供大家参考,具体如下:1.计算两个时间的相差几天$startdate=strtotime("2009-12-09");$enddate=strtotime("2009-12-05");上面的php时间日期函数strtotime已经把字符串...2015-11-24
- 本文介绍了如何延迟javascript代码的加载,加快网页的访问速度。 当一个网站有很多js代码要加载,js代码放置的位置在一定程度上将会影像网页的加载速度,为了让我们的网页加载速度更快,本文总结了一下几个注意点...2013-10-13
- 小编分享了一段简单的php中文转拼音的实现代码,代码简单易懂,适合初学php的同学参考学习。 代码如下 复制代码 <?phpfunction Pinyin($_String...2017-07-06
- 什么是SSO?单点登录SSO(Single Sign-On)是身份管理中的一部分。SSO的一种较为通俗的定义是:SSO是指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护...2015-11-08
- 【问题描述】:同一用户在同一时间多次登录如果不能检测出来,是危险的。因为,你无法知道是否有其他用户在登录你的账户。如何禁止同一用户多次登录呢? 【解决方案】 (1) 每次登录,身份认证成功后,重新产生一个session_id。 s...2015-11-24