首 页   · 站长博客 · 用户注册 · 会员登陆  · 会员排行  ·最新主题  ·最近回复  精华区  版权声明  ·论坛管理
  当前登录身份:游客,请先登录。  笔名: 口令: 验证码:   
楼 主  index »  PHP与模板与代码加密/优化 » [求助]session登陆问题  


  作者:danssion
  注册时间:2005-06-30
  主题/回复:43/107
  积分:723
  等级:★★★(六级)
  称号:声名鹊起

用户联系方式已设置为保密

 

 发表:2005-07-20 00:52:20 阅读 2242 次 回复 5 次 得分2  |   字号 字色
[求助]session登陆问题
抄袭了个session验证的程序,结果注册用户不能登陆。出现以下提示信息:

Forbidden
You don't have permission to access /bbs/bbs/ on this server.

显示的登陆地址是:http://localhost/bbs/bbs/?PHPSESSID=c2pd9fnm4gk892j54jvavs8jt2


登陆页面是


<form action="bbsauth.php<?php @session_start(); $sid = session_id(); echo "?

PHPSESSID=",$sid;?>" method="POST" name="planform" >
.
.
.
.
.
.
</form>


这是登陆验证页面
bbsauth.php
<?

session_start();
 
$username=$_POST["username"];
$password=$_POST["password"];

$prefix = "http://localhost/bbs/bbs";

//用户身份检查函数

function AuthCheck()
{
if(!session_is_registered("nickname"))
{
$sid=session_id();
header("Location:bbslogin.php?PHPSESSID=$sid");
exit;
}
}


 $query="select * from userinfo where nickname='$username'";
 $result=mysql_query($query);

 if(mysql_num_rows($result)==0)
 {
 echo "<h3><div align=center>此用户不存在!</div></h3>";
 }
 else
 {

 $pass=mysql_result($result,0,"password");   
 $name=mysql_result($result,0,"nickname");

 if($password!=$pass)
 {
 echo "密码有误 !";
 }

 else
 {
 $nickname = $username;
 $sid = session_id();
 session_register("nickname");
 if(!session_is_registered("position"))
 header("Location: $prefix/bbslist.php?PHPSESSID=$sid");
 else
 header("Location: $prefix/$position?PHPSESSID=$sid");
 }
 }

?>



它也不提示什么,就是禁止等入.
用户名密码都没有问题呢.

是什么没有设置对么?


 
 1#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 1#楼 发表于2005-07-20 01:50:46  评分:1 

错误提示是 APACHE报的吧?
PHP不会抱这样的错误。
IIS也不会。

Forbidden
You don't have permission to access /bbs/bbs/ on this server.

禁止:
 你没有权限访问 /bbs/bbs/ 在这台服务器上。


目录权限可能不足。
 2#楼  
 
  回复人:danssion
  注册时间:2005-06-30
  主题/回复:43/107
  积分:723
  等级:★★★(六级)
  称号:声名鹊起

用户联系方式已设置为保密
 2#楼 发表于2005-07-20 16:12:13  评分:× 

我是在windows下试验的,应该不存在这个问题吧!

????
 3#楼  
 
  回复人:海天旭日
  注册时间:2004-04-06
  主题/回复:69/145
  积分:1508
  等级:★★★★(八级)
  称号:论坛才子

   
 3#楼 发表于2005-07-20 20:15:58  评分:1 

登陆的地址是http://localhost/bbs/bbs/?PHPSESSID=c2pd9fnm4gk892j54jvavs8jt2  ?
还是:
http://localhost/bbs/bbs/bbsauth.php?PHPSESSID=c2pd9fnm4gk892j54jvavs8jt2 ?
检查检查登陆后返回到哪一个页面了??

在windows下试验的,怎么就应该不存在这个问题?
比如你的权限没有设置好就会出现这种情况
一般是在没有目录浏览权限的情况下没有设置默认主页造成的,或者如果
ntfs权限设置不对,也会提示拒绝访问,如果你的磁盘格式是fat32
基本上就是第一种情况,同意站长:错误提示可能是 APACHE报的
PHP不会抱这样的错误。
IIS也不会
 4#楼  
 
  回复人:danssion
  注册时间:2005-06-30
  主题/回复:43/107
  积分:723
  等级:★★★(六级)
  称号:声名鹊起

用户联系方式已设置为保密
 4#楼 发表于2005-07-21 03:07:24  评分:× 

问题找到了

出在这里:
if(!session_is_registered("position"))

这个position 本来是没有值的

但是我同时运行的另外一个网页中对它设置了值

所以
header("Location: $prefix/$position?PHPSESSID=$sid");
就引用了错误位置



做事要专心啊

浪费了好久时间啊

想哭
 5#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 5#楼 发表于2005-07-21 16:49:32  评分: 

........................................
  页数1/1首页 « 1 » 末页
  发表回复:您还没有登陆,无法发表回复。请先[登陆]

一起PHP技术联盟 主办:一起PHP 联系方式:站长QQ:4304410 QQ群:8423742 20159565 站长博客 E-mail: nqp@nqp.me 执行时间:0.008sec
SimsmaBBS 2008 (v6.0) Developed by 17php.com,Copyright(C)2003-2010 All rights reserved. 副本授权:一起PHP官方专用版