请选择 进入手机版 | 继续访问电脑版
点点网模板设计大赛 phpchina

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 用悬赏 三天解决问题 解决访问速度慢 论坛支持农历生日 - 地图任务 - 给官方提建议

论坛活动及任务 归纳网站最新活动 更新邮件保护帐号安全 第一季积分兑换活动 - 12周年上海聚会照片

万元奖励等你拿——点点网模板设计大赛 畅销译文征名——让最火的畅销书,印上你的标签 联系招聘客服 蓝色理想帮你找工作!

查看: 1288|回复: 5

PHP 路径问题无法获取session变量 [复制链接]

Kaney 楼主
帖子
23
体力
77
威望
0
居住地
福建省 南平市
发表于 2011-7-19 22:00:57 |显示全部楼层
我做一个验证码刷新的图片
生成验证码的文件是 ../Public/Code.php 生成图片的同时 保存一个session变量$_SESSION['code']
ajax验证验证码的文件是 /Ajax.php
是否因为路径问题 在当前目录的 /Ajax.php 无法获取$_SESSION['code']变量的值

Ajax.php 文件如下
  1. if ($_GET['act']=='code') {
  2.         session_start();
  3.         echo $_SESSION['code']==$_GET['code'] ? 1 : 0 ;
  4.         exit() ;
  5. }
复制代码


登陆页面代码如下
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>E印通订单管理系统 - 登陆</title>
  6. <link href="Template/global.css" rel="stylesheet" type="text/css" />
  7. <link href="Template/style.css" rel="stylesheet" type="text/css" />
  8. </head>
  9. <body><form action="Index.php?act=loginTest">
  10. <blockquote>
  11. <div id="MAIN" style="width:100%;float:none;overflow:hidden;height:366px;">
  12.         <h3>用户登陆</h3>
  13.         <p class="Editor" style="width:60%;margin:60px auto;">
  14.        
  15. 账 号:<br>
  16. <input type="text" class="text" name="User" size="18"><br />
  17. 密 码:<br>
  18. <input type="password" class="text" name="Password" size="18"><br />
  19. 验证码:<br>
  20. <input type="text" class="text" size="6" onchange="testCode(this.value)"> <img src="../Public/Code.php" style="cursor:pointer" alt="看不清?单击更换图片。" onclick="this.src='../Public/Code.php?'+Math.random()"><br>
  21. <input type="submit" id="Submit" value="登 陆" class="button" disabled onclick="this.form.Password.value=md5(this.form.Password.value)">
  22.         </p>
  23. </div>
  24. </blockquote></form>
  25. </body>
  26. </html>
  27. <script src="../Public/Var.js"></script>
  28. <script src="../Public/Function.js"></script>
  29. <script src="../Public/msg.js"></script>
  30. <script type="text/javascript">
  31. function testCode (code ) {
  32.         ajaxUrl = 'Ajax.php?act=code&code=' + escape(code)
  33.         AJAX.open('get',ajaxUrl)
  34.         AJAX.send(null)
  35.         AJAX.onreadystatechange = function(){
  36.                 if ( AJAX.readyState == 4 && AJAX.status == 200) {
  37.                         bSubmit = document.getElementById('Submit')
  38.                         bSubmit.disabled = AJAX.responseText ? true : false
  39.                 }
  40.         }
  41. }
  42. </script>
复制代码

[ 本帖最后由 Kaney 于 2011-7-19 22:02 编辑 ]
alphat 
帖子
814
体力
2101
威望
46
发表于 2011-7-19 22:36:27 |显示全部楼层
session_start永远要放在文件的第一行。
可能是这个原因
关注前端,网站性能优化 我的博客 腾讯微博
Kaney 楼主
帖子
23
体力
77
威望
0
居住地
福建省 南平市
发表于 2011-7-20 07:58:43 |显示全部楼层
测试过了 不是二楼的原因
一个网友告诉我 可能是$_SESSION['code']赋值时出现的问题
该变量赋值的文件是 ../Public/Code.php 内容如下
  1. <?php
  2. session_start();
  3. header('Content-type: image/png');
  4. $codes = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890';
  5. while ( strlen($code) < 4 ) $code .= substr($codes,mt_rand(0,strlen($codes)-1),1);

  6. $_SESSION['code'] = $code;

  7. $img = imagecreatetruecolor(48,18);
  8. $bgRGB = imagecolorallocate($img,204,244,102);
  9. $codeRGB = imagecolorallocate($img,0,51,102);
  10. imagefilledrectangle($img,0,0,48,18,$bgRGB);
  11. imagestring($img,4,8,1,$code,$codeRGB);
  12. imagepng($img);
  13. imagedestroy($img);
  14. session_destroy();
  15. ?>
复制代码
Kaney 楼主
帖子
23
体力
77
威望
0
居住地
福建省 南平市
发表于 2011-7-20 08:10:00 |显示全部楼层
问题解决
../Public/Code.php 最后一行的session_destroy();必须删除
同时每次点击 必须给$code变量初始化: $code=''
帖子
735
体力
859
威望
0
发表于 2011-7-20 09:32:49 |显示全部楼层
我昨天也被。。。session_start 这个给折腾了一个小时。。
ypd007 
帖子
268
体力
567
威望
0
发表于 2011-7-20 19:56:00 |显示全部楼层
destroy方法是重置session,存储的变量自然也会被清空
您需要登录后才可以回帖 登录 | 注册

Archiver|手机版|安久科技提供CDN|blueidea.com ( 京ICP备05002321号 )  

GMT+8, 2012-1-15 01:26 , Processed in 0.299760 second(s), 9 queries , Gzip On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部