php 简单的登入登出实例程序(session)

关于会话处理

HTTP 是一种无状态的协议,说明每次请求的处理都与之前或之后的 请求无关,但是为了能够调整用户特有的行为和首选项,出现了一种在客户端存储少量信息(常称为cookie)的实践,但由于 cookie 大小的限制、所允许的 cookie 数量以及 cookie 的实现上的各种不一致,出现了另外一种解决方案:会话处理。

会话处理的实现方式是为每位网站访问者分配一个称之为会话 ID(SID)的唯一标识属性,然后将此 SID 与任意数量的数据关联。

开始会话

session_start();

创建会话变量

 代码如下 复制代码

$_SESSION['username'] = “jason”;

删除会话变量

 代码如下 复制代码
unset($_SESSION['username']);

简单的登入登出

 代码如下 复制代码

$supervisor = "admin";
$superpsw = "passwd";

// 检查是否提交表单
if (isset($_POST['superadmin']))
{
if (!($_POST['supername'] == $supervisor) || !($_POST['superpass'] == $superpsw))
{
echo "用户名或密码错误";
exit;
}
else
{
session_start();
$_SESSION["superlogin"] = $_POST['supername'];
}
} else {
session_start();
// 检查是否设置了会话变量,即是否已经登入,如果没有,显示登入页面
if (! isset($_SESSION["superlogin"]) )
{
echo "<form name='form1' method='post' action='$_SERVER[PHP_SELF]'>";
echo "<div align='center'>请输入管理员密码<br />";
echo "管理员";
echo "<input type='text' name='supername'><br />";
echo "密  码";
echo "<input type='password' name='superpass'><br />";
echo "<input type='submit' name='superadmin' value='进入'><br />";
echo "<input type='reset' name='cancel' value='重写'></div>";
echo "</form>";
exit;
}
}
// 由用户销毁会话变量,登出
if (isset($_GET['logout'])) {
unset($_SESSION['superlogin']);
header("Location:index.php");
}

假设将此文件命名为include.php,将其包含到要验证登入的页面即可,例如 index.php

 代码如下 复制代码

    <?php
    require “include.php”;
    ?>
    <html>
    <head>
    <title>管理</title>
    <meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>
    </head>
    <body>
    <p><a href=”index.php?logout=1″>登出</a>
    <p>欢迎进入</p>
    </body>
    </html>

如此访问 index.php 页面时将进入登入页面,登录后显示 index.php 页面内容,这个过程一直持续到用户结束会话,如关闭浏览器或点击注销按钮,但是会话本身在PHP服务器有一个默认的生存期。

有效会话的持续时间由 php.ini 所控制,默认为1440秒,即24分钟

    session.gc_maxlifetime = 1440

PS:本文是个范例,用简单的代码来做说明,实际应用中会采用更加复杂的控制机制。

时间: 2024-10-30 22:35:37

php 简单的登入登出实例程序(session)的相关文章

C#登入实例_C#教程

想成为一名优秀的C#程序设计师吗?首先我们要对一个程序有所了解,了解程序设计的流程.一个程序的登陆是如何实现的呢,大家跟着小编来看下,希望对你们今后的学习有所帮助 C#登入例子--第一个程序 第一步:在数据库创建一个存放账号密码的表单 第二步:创建一个登入项目 拆分成三层: CS层: BLL层: DAL层: Common层: Web.config: 以上所述是本文的全部内容,希望对大家有所帮助!

[Emacs-cgi] 登入页面

最新进展:Emacs-cgi 加入对存取 Cookie 和 Session 的支持,以及页面之间跳转(redirect和forward).项目地址:https://github.com/redraiment/emacs-cgi.下面以一个登入页面作为示例: 首先是首页:如果用户为登入,显示输入框提示用户输入用户名:否则输出欢迎词. #!/usr/local/bin/elisp (require 'cgi) (html (head (title "Hello Session") (met

前台使用水晶报表的时候弹出数据库登入怎么去除

问题描述 前台使用水晶报表的时候弹出数据库登入怎么去除 新建了水晶报表之后,前台打开页面,一直报要登入数据库,验证,取消掉么又是正常的,要怎么样才可以取消掉这个弹出框呢?

spring mvc-初学spring,想做一个简单的登入验证功能,报404错误,已被困扰一天了,跪求帮助

问题描述 初学spring,想做一个简单的登入验证功能,报404错误,已被困扰一天了,跪求帮助 项目用ecliper ee开发,jdk1.7+mysql+tomcat环境.初学spring,想做一个简单的页面登入验证功能,报404错误,用了spring mvc,在Controller类里打了断点发现程序根本没有执行Controller类,检查了n遍配置文件感觉都是对的.这个bug已经困扰我一天多了,跪求帮助!! 页面错误信息 项目目录结构 web.xml 配置 applicationContex

Xp系统开机输入密码登入后自动注销了怎么办

  Xp系统开机输入密码登入后自动注销了怎么办?这是最近很多使用xp系统的用户向小编反馈的问题.其实,该问题主要是由于系统中userinit文件受损导致的,若要修复,我们要有系统盘或者U盘启动工具能够进入PE,还需要一个可以正常使用的Xp操作系统,若没有一样的Xp操作系统小编推荐重新安装系统. 步骤如下: 1.首先在可以正常运行的Xp操作系统中打开我的电脑,然后展开:CWINDOWSsystem32 在文件夹中找到并复制"userinit.exe"文件到U盘中; 2.使用U盘启动工具进

root-Linux系统,账户密码正确但无法登入

问题描述 Linux系统,账户密码正确但无法登入 ..Oracle账户也登不上去.我想,也许所有的账户都无法登陆吧.. 已重新安装系统..问题关闭..话说..csdn怎么关闭问题.. --------以上为7.15更新------------ 我之前并没有安装图形页面,一直是命令行页面. 不过现在通过远程安装了图形页面. --------以上为7.14更新------------ 密码肯定是正确的,因为,用其他电脑SecureCRT可以远程进去 --------以上为7.10更新--------

初学.NET的小菜鸟求救~~用户登入+信息查询问题………………急~十万火急

问题描述 老师要求做一个简单的住宅区里用的小页面~~~~是用VB.NET和ACCESS来做~~功能要求是--1,住户登入页面(账号为住户的门牌号,密码是户主的身份证号)2,登入后进入查询页面--说白了也就是一张表格--主要是查询住户上月由物业管理收缴的各项费用(卫生费,治安费,车位费等)和代缴的费用(水费电费煤气费等)3,管理员登入界面,登入后可以添加修改用户信息,以及收费信息.刚学.NET~~代码我不太懂,特别是数据库链接的问题~~~~~我同学说不用代码,LOGIN可以直接链接到数据库的--但

java读取用户登入退出日志信息上传服务端_java

本文实例为大家分享了读取用户登入出日志并上传服务端的具体实现代码,供大家参考,具体内容如下 该客户端运行在给用户提供unix服务的服务器上.用来读取并收集该服务器上用户的上下线信息,并进行配对整理后发送给服务端汇总. 具体实现代码: 1. DMSServer.java package com.dms; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.i

ASP.NET在IE10中无法判断用户已登入及Session丢失问题解决方法_实用技巧

今天发现在IE10中登录我公司的一个网站时,点击其它菜单,页面总会自动重新退出到登录页,后检查发现,IE10送出的HTTP头,和.AUTH Cookie都没问题,但使用表单验证机制(FormsAuthentication)却无法判断该用户已登入,保存的Session总会丢失. 后查实这是ASP.NET 2.0,3.5和4.0的Bugs,因这些版本无法识别IE10的User-Agent标头字符串,所以无法识别用户浏览器的版本,从而导至了ASP.NET的特定功能失效,认为游览器不支持Cookies功