<?php
ob_start();
session_start();
$num=0;
$dirpt = "online";
$reftime = 1;
if (is_dir($dirpt) && $dir = opendir($dirpt)) {
while (($file = readdir($dir)) !== false) {
if(strcmp($file,"..")==0 || strcmp($file,".")==0){
continue;
}
$D_[date("Y-m-d H:i:s",filemtime($dirpt."/".$file))]=$file;
$num++;
unset($cum);
}
closedir($dir);
$filename = session_id();
$fp = fopen($dirpt."/".$filename,"w");
fputs($fp,"");
fclose($fp);
$ntime = date("Y-m-d H:i:s",mktime(date("...
很多开发中涉及到用户的Session验证很保留的问题,这个问题比较有意思,总结了几种方案,只供参考。
[ 问题提出 ]
为了满足足够大的应用,满足更多的客户,于是我们架设了N台Web服务器(N>=2),在多台Web服务器的情况下,我们会涉及到一个问题:用户登陆一台服务器以后,如果在跨越到另一台服务器的时候能够继续使用客户的Session?
(以下描述方案只是针对Linux/Unix + Apache + Mysql + PHP的开发架构,当然,也可以扩展到其他平台。)
[ 问题解决方案 ]
既然我们的问题已经摆在面前了,那么就要从技术角度去解决问题,给我们的客户更好的体验,总结了几个方案。
1. 写客户...
PHP的session功能,一直为许多的初学者为难。就连有些老手,有时都被搞得莫名其妙。本文,将这些问题,做一个简单的汇总,以便查阅。
1.
错误提示
Warning: Cannot send session cookie - headers already sent
Warning: Cannot send session cache limiter - headers already sent
分析及解决办法
这一类问题,的原因是你在程序中使用session_start()时,之前已经有实际的html内容输出了。或许你说,我没有啊,我只不过是echo或print一条消息了。很抱歉,你的echo或print语句所产生的输出,就是实际的html内容输出。解决此类问题的办法是,将你的session_start()调到程序的第一行。
2.
错误提示
Warning: open(F:/689\php...
<?
$DB_SERVER = "server"; /* database server hostname */
$DB_NAME = "dbname"; /* database name */
$DB_USER = "root"; /* database user */
$DB_PASS = "*************"; /* database password */
$DB_SELECT_DB = "";
$SESS_LIFE = get_cfg_var("session.gc_maxlifetime");
function sess_open($save_path, $session_name) {
global $DB_SERVER, $DB_NAME, $DB_USER, $DB_PA...
日前因为测试版Linux核心更新失败,系统整个重新安装,更新网页伺服器为Apache 2.2.6,并更新PHP 5.2.4后,自己忘了把一项设定做修改,以至于只要访客每次开启浏览器上网,「初次」拜访本站时,系统会自动修改访客阅读页面中的连结,在网址后面加上一串「PHPSESSID=xxxxxxxxxxxxxxxxxxxxxx」的字样,点选之后,会被传导到网站首页,之后点选任何连结就不会有网址包含php session id的现象。 这是因为php在提供访客浏览页面时,碰到浏览器不支援cookie或关闭cookes功能的访客,会透过自动重写网址,加上php session id来支援session。而网路访客不论是用什么浏览器,连结本站打开第一个页面时,Apache网页伺服器搭配php的系统收到你...
Session的中文译名叫做“会话”,其本来的含义是指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个session。目前社会上对session的理解非常混乱:有时候我们可以看到这样的话“在一个浏览器会话期间,...”,这里的会话是指从一个浏览器窗口打开到关闭这个期间;也可以看到“用户(客户端)在一次会话期间”这样一句话,它可能指用户的一系列动作(一般情况下是同某个具体目的相关的一系列动作,比如从登录到选购商品到结账登出这样一个网上购物的过程;然而有时候也可能仅仅是指一次连接;其中的差别只能靠上下文来推断了。 然而当session 一词与网络协议相关联时,它又往往隐含了“面向...
本文不敢说非常好,但是笔者相信大多数PHPer都曾经想过这些问题。 使用无限生命期Session的方法 在PHP4.0中加入了对Session的支持,方便了我们很多程序,比如购物车等等! 在很多论坛中,Session也用于处理用户的登陆,记录下用户名和密码,使得用户不必每次都输入自己的用户名和密码!但是一般的Session的生命期有限,如果用户关闭了浏览器,就不能保存Session的变量了!那么怎么样可以实现Session的永久生命期呢? 大家知道,Session储存在服务器端,根据客户端提供的SessionID来得到这个用户的文件,然后读取文件,取得变量的值,SessionID可以使用客户端的Cookie或者Http1.1协议的Query_String(...
在很多时候,我们需要跟踪浏览者在整个网站的活动,对他们身份进行自动或半自动的识别(也就是平时常说的网站登陆之类的功能),这时候,我们常采用一组变量来"追随"访客。实现变量"追随"有很多种方法,比较用得多的是cookie和session。下面我们用时下很流行的PHP为大家讲解一下它们的使用。 一.Cookie的使用 Cookie是网站保存在浏览器客户端的信息,也就是说保存在访客的机器里的变量,一般随着HTTP 头发送到客户端。在Cookie生效之后及失效之前,客户每次发出页面请求的时候,都会把Cookie一块发送到服务器,只要我们针对它进行相应的处理,就可以实现变量"追随"。 1. 设置一个Cookie变量 设置一个Cookie变量,...
在很多时候,我们都要对某些Web 页面进行安全保护。典型的例子就是前台浏览页面与后台管理页面的安全性。这也是 WEB 上用得最多的一种页面安全模式。在用PHP4 开发一个小型的书籍管理系统中,我也遇到了这个安全问题。于是我想到了PHP4 的新特性----Session .. 要求目的:同一站点,无权用户,一般授权用户和超级用户能看到和使用不同的页面。 实现办法:在要保护的页面 include 不同级别的安全检验摸板。 注意事项: 1 > 要避免用户浏览器不使用 cookie 而不能浏览受保护的页面(session 默认使用客户端的 cookie). 2 > 要防止权限被盗用。( PHP 4 的 session 的默认存活期间是从建立 session 开始到关闭浏览器为止。) 如...
一、问题起源 稍大一些的网站,通常都会有好几个服务器,每个服务器运行着不同功能的模块,使用不同的二级域名,而一个整体性强的网站,用户系统是统一的,即一套用户名、密码在整个网站的各个模块中都是可以登录使用的。各个服务器共享用户数据是比较容易实现的,只需要在后端放个数据库服务器,各个服务器通过统一接口对用户数据进行访问即可。但还存在一个问题,就是用户在这个服务器登录之后,进入另一个服务器的别的模块时,仍然需要重新登录,这就是一次登录,全部通行的问题,映射到技术上,其实就是各个服务器之间如何实现共享 SESSION 数据的问题。二、PHP SESSION 的工作原理 在...
累啊,终于找到了如何将数据表绑定到DateGrid的方法了。不过这次犯了经验主义错误,一开始就是去Google找的,找了半天没找到,后来还是在CSDN社区上找到了。呵呵,笨啊。这是Oracle版的。 private void button1_Click(object sender, System.EventArgs e) { string ConnectionString="Data Source=sky;user=diamond;password=diamond;"; //写连接串 OracleConnection conn=new OracleConnection(ConnectionString); //创建一个新连接 OracleCommand cmd= new OracleCommand("select * from ETAM_USERS",conn); DataS...
mysql_insert_id – 取得上一步 INSERT 操作产生的 ID
int mysql_insert_id ( [resource link_identifier])
mysql_insert_id() 返回给定的 link_identifier 中上一步 INSERT 查询中产生的 AUTO_INCREMENT 的 ID 号。如果没有指定 link_identifier,则使用上一个打开的连接。
如果上一查询没有产生 AUTO_INCREMENT 的值,则 mysql_insert_id() 返回 0。如果需要保存该值以后使用,要确保在产生了值的查询之后立即调用 mysql_insert_id()。
注: MySQL 中的 SQL 函数 LAST_INSERT_ID() 总是保存着最新产生的 AUTO_INCREMENT 值,并且不会在查询语...
很多人都在论坛里问,如何实现DATAGRID的打印预览和打印,现在我就把这方面的源代码告诉大家。这段代码也花费了我1个晚上的时间,呵呵!数据库是基于sql server2000自带的northwind。源代码如下: [newsad][/newsad]using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Data.OleDb; namespace DataGridPrint { /// <summary> /// Summary description for Form1. /// </summary> public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.Panel panel1; priv...
基于 Java 的 Web 服务和无线 Java 开发是 JavaOne 2002 的两个最突出的主题。它们代表普及计算领域中未来的后端和前端 Java 技术。Web 服务是基于标准 XML 通信协议的松耦合的可互操作的软件组件。Web 服务的使用使供应商能够在其核心竞争力所在的特定市场中提供服务。然后,客户可以根据其不同需要,从多个供应商选择采购服务。这种便利意味着 Web 服务完全适合于为无线前端提供服务。无线信息设备的便利和动态本质允许移动用户利用模块化的且动态可重新配置的后端服务。Java 平台可以在无线 Web 服务应用程序开发中扮演几个重要角色。在无线端,Java 2 Micro Edition(J2ME)为所有无线设备(从蜂窝电话到复杂的家用无线信...
1 web.xml 设置WEB应用程序描述符web.xml里的<session-timeout>元素。这个值以分钟为 单位,并覆盖weblogic.xml中的TimeoutSecs属性 <session-config> <session-timeout>24</session-timeout> </session-config> 此例表示Session将在24分钟后过期 当<session-timeout>设置为-2,表示将使用在weblogic.xml中设置的 TimeoutSecs这个属性值。 当<session-timeout>设置为-1,表示Session将永不过期,而忽略在 weblogic.xml中设置的TimeoutSecs属性值。 该属性值可以通过console控制台来设置 2 weblogic.xml 设置WebLogic特有部署描述符weblogic.xml的<session-descriptor>元素的 Ti...
我们看一下如下的程序代码Test.java 以下是JAVA代码:【复制】
class Base { public Base newInstance() { return new Base(); } public Base newInstance2() { return new Base(); } } class Test extends Base { // 返回值不同 public Test newInstance() { return new Test(); } // 返回值相同 public Base newInstance2() { return new Test(); } } class Base { public Base newInstance() { return new Base(); } public Base newInstance2() { return new Base(); } } class Test extends Base { // 返回值不同 public Test newInstance() { return new Test(); } // 返回值相同 public Base newIns...