php session页面间传递变量的问题

 更新时间:2016年11月25日 16:02  点击:1681

SESSION的情况:
  如果窗口A 是已经登陆了的,有SESSION,那么在A 中点击任何一个连接新打开的窗口都是有SESSION。
  从窗口A中,采用window.open()等js方法打开的窗口也都拥有SESSION.
  从窗口A中,点击 文件(F)->新建窗口,这样新建的窗口也有SESSION.
  MyIE中的创建窗口都类似 IE中的在同一窗口点击文件->新建窗口,所以只要输入正确的地址都能取到SESSION
新开窗口取不到SESSION。
  IE,自己手动开启一个新窗口(点击图标,新开一个窗口).这种情况下,即使输入正确的和窗口A一样的地址也取不到SESSION.
  在IE中,打开WebFolder,或者MsOffice等支持HTTP1.1扩展协议的在线编辑的软件,也是取不到SESSION。
总结一下:
  SESSIOn取不到的主要原因是因为http是无状态的通信协议,所以在不同的进程之间无法共享SESSIOn,因为虽然你双击打开的新窗口且输入了同一地址,但是http协议的无状态特性,客户端和服务器都不会主动的去记录他们之间的连接状态.SESSION和COOKIE正是为了明确客户端和服务器之间通信的记录,或者说表明他们之间的关系的这么一种机制..
  你可以把SESSION / COOKIE的这种机制想象成为 京客隆超市 的会员卡. 你有这张会员卡,售货员就能知道你是什么级别的会员,商品应该按照什么样的会员价格卖给你.
  SESSION的处理方式比较多. PHP默认的处理机制是采用在服务器段保存以SESSION_ID的方式保存SESSION.  
  可以这么理解,超市只给了你一个ID卡,你的所有信息都是存放在超市的电脑里,而不是一张IC卡,信息存在卡片里.因为超市的分店之间没有联网,所以你的ID卡,就不能在其他分店里用了

php定时自动生成html静态页面
"ob_start()、ob_end_clean()、ob_get_contents()"
ob_start():是打开缓冲区的,就是要把您需要生成的静态文件的内容缓存在这里;
ob_get_contents():是读出缓冲区里的内容,下面有代码为例;
ob_end_clean():这个比较重要,只有使用了这个函数后,缓冲区里的内容才会读取出来;
[复制此代码]CODE:
if(file_exists("./index.htm"))//看静态index.htm文件是否存在
{
time=time();
//文件修改时间和现在时间相差?的话,直接导向htm文件,否则重新生成htm
if(time-filemtime("./index.htm")< 600)
{
header("Location:classhtml/main.htm");
}
}
//在你的开始处加入ob_start();
ob_start();
//首页内容,就是你的动态部分了
//在结尾加入ob_end_clean(),并把本页输出到一个变量中
temp=ob_get_contents();
ob_end_clean();
//写入文件
fp=fopen("./index.htm",'w');
fwrite(fp,temp) or die('写文件错误');
//echo"生成HTML完成!";

php 入门篇-如何判断mysql数据库连接成功

<?php
$cn = mysql_connect('localhost','root','root');
if( $cn )
{
 die('数据库连接成功');
}
else
{
 die('连接失败');
}
?>

<?php
 mysql_connect('localhost','root','root') or die('remote server cant' connect');
 mysql_select_db('www.111cn.net') or('selected not exists!');
 $sql = "Select borough_thumb,id from fke_borough where borough_thumb<>'' and isnew =1 ";
 $result = mysql_query( $sql ) or die(mysql_error());
 $_path ='../upfile/';
 //批量查询数据库中图片不为空的记录,并用file_exists与is_file进行图片进行分析是否存在网站指定目录
 while( $rs = mysql_fetch_array( $result ) )
 {
  $t_file = $_path.$rs['borough_thumb'];
 echo "<a href=$t_file target=_blank>查看</a>";
 
 if( isFile($t_file) )
 {
  echo '存在<br/>';
 }
 else
 {
  updateSql($rs['id']);
  echo '<br>',$rs['id'];
 }
 }
 //更新数据库
 function updateSql($fid)
 {
  mysql_query("Update fke_borough set borough_thumb='' where id='$fid' ") or die('update fail');
 }
 //用户判断文章是否存 is_file file_exists函数实现
 function isFile($path)
 {
  if( file_exists($path) && is_file($path))
 {
  return true;
 }
 else
 {
  return false;
 }
 }
 //注意is_file 与 file_exists函数不能判断绝对路径如我上面的$_path ='/upfile/'就会显示找不到文件,如果用../upfile/就OK了,
?>

<?php
class mysqlquery
{
 var $sql;//sql语句执行结果
 var $query;//sql语句
 var $num;//返回记录数
 var $r;//返回数组
 var $id;//返回数据库id号
 //执行mysql_query()语句
 function query($query)
 {
  $this->sql=mysql_query($query) or die(mysql_error()."<br>".$query);
  return $this->sql;
 }
 //执行mysql_query()语句2
 function query1($query)
 {
  $this->sql=mysql_query($query);
  return $this->sql;
 }
 //执行mysql_fetch_array()
 function fetch($sql)//此方法的参数是$sql就是sql语句执行结果
 {
  $this->r=mysql_fetch_array($sql);
  return $this->r;
 }
 //执行fetchone(mysql_fetch_array())
 //此方法与fetch()的区别是:1、此方法的参数是$query就是sql语句
 //2、此方法用于while(),for()数据库指针不会自动下移,而fetch()可以自动下移。
 function fetch1($query)
 {
  $this->sql=$this->query($query);
  $this->r=mysql_fetch_array($this->sql);
  return $this->r;
 }
 //执行mysql_num_rows()
 function num($query)//此类的参数是$query就是sql语句
 {
  $this->sql=$this->query($query);
  $this->num=mysql_num_rows($this->sql);
  return $this->num;
 }
 //执行numone(mysql_num_rows())
 //此方法与num()的区别是:1、此方法的参数是$sql就是sql语句的执行结果。
 function num1($sql)
 {
  $this->num=mysql_num_rows($sql);
  return $this->num;
 }
 //执行numone(mysql_num_rows())
 //统计记录数
 function gettotal($query)
 {
  $this->r=$this->fetch1($query);
  return $this->r['total'];
 }
 //执行free(mysql_result_free())
 //此方法的参数是$sql就是sql语句的执行结果。只有在用到mysql_fetch_array的情况下用
 function free($sql)
 {
  mysql_free_result($sql);
 }
 //执行seek(mysql_data_seek())
 //此方法的参数是$sql就是sql语句的执行结果,$pit为执行指针的偏移数
 function seek($sql,$pit)
 {
  mysql_data_seek($sql,$pit);
 }
 //执行id(mysql_insert_id())
 function lastid()//取得最后一次执行mysql数据库id号
 {
  $this->id=mysql_insert_id();
  return $this->id;
 }
}
?>

[!--infotagslink--]

相关文章

  • PHP session_start()很慢问题分析与解决办法

    本文章来给各位同学介绍一下关于PHP session_start()很慢问题分析与解决办法,希望碰到此问题的同学可进入参考。 最近在做东西的时候发现一个问题 有一个接口挂...2016-11-25
  • PHP成员变量获取对比(类成员变量)

    下面本文章来给大家介绍在php中成员变量的一些对比了,文章举了四个例子在这例子中分别对不同成员变量进行测试与获取操作,下面一起来看看。 有如下4个代码示例,你认...2016-11-25
  • C#变量命名规则小结

    本文主要介绍了C#变量命名规则小结,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-09
  • R语言 如何删除指定变量或对象

    这篇文章主要介绍了R语言删除指定变量或对象的操作方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
  • 解决vue的router组件component在import时不能使用变量问题

    这篇文章主要介绍了解决vue的router组件component在import时不能使用变量问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-27
  • PHP传值到不同页面的三种常见方式及php和html之间传值问题

    在项目开发中经常见到不同页面之间传值在web工作中,本篇文章给大家列出了三种常见的方式。接触PHP也有几个月了,本文总结一下这段日子中,在编程过程里常用的3种不同页面传值方法,希望可以给大家参考。有什么意见也希望大...2015-11-24
  • jQuery实现切换页面过渡动画效果

    直接为大家介绍制作过程,希望大家可以喜欢。HTML结构该页面切换特效的HTML结构使用一个<main>元素来作为页面的包裹元素,div.cd-cover-layer用于制作页面切换时的遮罩层,div.cd-loading-bar是进行ajax加载时的loading进...2015-10-30
  • Vue select 绑定动态变量的实例讲解

    这篇文章主要介绍了Vue select 绑定动态变量的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-23
  • 深入理解PHP变量的值类型和引用类型

    在PHP中,大部分变量类型,如字符串,整型,浮点,数组等都是值类型的,而类和对象是引用类型,在使用的时候,需要注意这一点。看到网友在讨论PHP的&符号,要彻底理解它的用法,就有必要讨论一下变量的两种形式。PHP的变量在内存中是这样...2015-10-23
  • 解决vue刷新页面以后丢失store的数据问题

    这篇文章主要介绍了解决vue刷新页面以后丢失store的数据问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-12
  • PHP分布式框架如何使用Memcache同步SESSION教程

    本教程主要讲解PHP项目如何用实现memcache分布式,配置使用memcache存储session数据,以及memcache的SESSION数据如何同步。 至于Memcache的安装配置,我们就不讲了,以前...2016-11-25
  • 解决vuex数据页面刷新后初始化操作

    这篇文章主要介绍了解决vuex数据页面刷新后初始化操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-26
  • java中String类型变量的赋值问题介绍

    下面小编就为大家带来一篇java中String类型变量的赋值问题介绍。小编觉得挺不错的。现在分享给大家,给大家一个参考。...2016-03-28
  • PHP页面转UTF-8中文编码乱码的解决办法

    对于乱码这个问题php开发者几乎都会有碰到过,我们下面主要是介绍了php文件乱码和页面乱码。PHP页面转UTF-8编码问题 1.在代码开始出加入一行: header("Content-Type: text/html;charset=utf-8"); 2.PHP文件编码问题...2015-10-21
  • 详解ES6实现类的私有变量的几种写法

    这篇文章主要介绍了详解ES6实现类的私有变量的几种写法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-10
  • 详解C#中的session用法

    这篇文章主要介绍了C#中的session用法 ,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • Python3使用Selenium获取session和token方法详解

    这篇文章主要介绍了Python3使用Selenium获取session和token方法详解,需要的朋友可以参考下...2021-02-17
  • C#不同类型的成员变量(字段)的默认值介绍

    虽然C#编译器为每个类型都设置了默认类型,但作为面向对象的设计原则,我们还是需要对变量进行正确的初始化。实际上这也是C#推荐的做法...2020-06-25
  • JavaScript 获取滚动条位置并将页面滑动到锚点

    这篇文章主要介绍了JavaScript 获取滚动条位置并将页面滑动到锚点的的相关资料,帮助大家更好的理解和学习使用JavaScript,感兴趣的朋友可以了解下...2021-02-09
  • java后台实现js关闭本页面,父页面指定跳转或刷新操作

    这篇文章主要介绍了java后台实现js关闭本页面,父页面指定跳转或刷新操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-16