我的网站受到别人捣乱,但是我还不知道他从哪里可以进入别的会员的管理后台,唉 我在session_start()上面加了一句session_name('ss');不知道这样有没有用? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没有多大用的,你不过是把session变成了ss. 好象加了session_name()以后,其下的session和别的页面的session内容就不一样了,可以防止session的混淆?----------------你不过是把session变成了ss. 这是什么意思啊?------------ 每次都变一下session_id也有作用 有什么用啊,我建议你把sql语句过滤好一点。 大家在判断登录用户时,是怎么判断的?看看我这样写有什么不对?大家帮我看看,应该怎么写才合理?===========================================================以下是login.php的先几行,描述功能。//通过$_POST['admin']查询数据库//如果没查到,退出。//如果查到了,再判断$_POST['pass']与数据库中该用户的密码//如果不等,退出。如果相等,继续。//给SESSION附值,比如$_SESSION['admin'],$_SESSION['pass']----------------------------------------------以下是后台其它页面//先session_start();//如果$_SESSION['admin']为空,退出,反则,继续。 //先session_start();//如果$_SESSION['admin']为空,退出,反则,继续。这个正确 后台名字改一下,改成大小写混合的,呵呵,还有查询用户和密码时为什么要分开写呢,应该是一句SQL就能完成的吧。 最好就是密码用MD5加密过.我看国内很多个人作的密码都不经加密就存入数据库,而老外习惯用MD5(). //用户检测函数 function checkuser(){ $db = $this->db; $sid = session_id(); $username = $_SESSION['username']; $password = $_SESSION['password']; if(!$username || !$password ): $_SESSION['username'] = ""; $_SESSION['password'] = ""; $message = "<center>您尚未登陆,请先登陆!</cneter>"; return $message; exit; endif; $rs = $db->Execute("select password from " . $this->tablepre . "user where username = '$username'"); $row = &$rs->FetchRow(); if($row['password'] != $password): $_SESSION['username'] = ""; $_SESSION['password'] = ""; $message = "<center>您尚未登陆,请先登陆!</cneter>"; return $message; exit; endif; $rs = $db->Execute("select * from " . $this->tablepre . "user_login where sid = '$sid'"); $row = &$rs->FetchRow(); $time = time(); $onlinetime = $row['onlinetime'] + ($time - $row['time']); if($row['uid'] != $username): $_SESSION['username'] = ""; $_SESSION['password'] = ""; $message = "<center>您尚未登陆,请先登陆!</cneter>"; return $message; exit; endif; $ip = ip2long(getenv("REMOTE_ADDR")); if($row['ip'] != $ip): $_SESSION['username'] = ""; $_SESSION['password'] = ""; $message = "<center>您尚未登陆,请先登陆!</cneter>"; return $message; exit; endif; if($time - $row['time'] > $this->outtime): $_SESSION['username'] = ""; $_SESSION['password'] = ""; $message = "<center>您尚未登陆,请先登陆!</cneter>"; return $message; exit; endif; $row = &$rs->FetchRow(); $db->Execute("UPDATE " . $this->tablepre . "user_login set `time`='$time', `onlinetime`='$onlinetime' where uid = '$username'"); } 我的检测函数思路是这样:1.判断session,seesion不存在,函数有返回值.2.根据session记录的用户名和MD5过的密码,在数据表里面验证,不同则有返回值.3.判断登陆表中的登陆IP,不同则有返回值(防止同账号多处登陆).4.判断间隔时长,超过15分钟,有返回值.函数有返回值时为非法用户,无返回值为登陆用户,用户名为session中记录的. 求救啊。minibb怎么安装啊? php 正则表达式 php代码求解,高手请进 求把下面apache .htaccess 转换到IIS ISAPI_Rewrite的 httpd.ini [问题]用户数据的处理与备份 php中flush和header同时使用报错问题 php5.1.2中我想在oci_fetch中再写一个数据库表的分析和执行可以吗? 请教个问题 frame把窗口问题? mysql在windows和unix下的问题!!!!!! php数组的白菜问题 请教php大型程序的效率问题
----------------
你不过是把session变成了ss. 这是什么意思啊?
------------
大家帮我看看,应该怎么写才合理?
===========================================================以下是login.php的先几行,描述功能。//通过$_POST['admin']查询数据库
//如果没查到,退出。
//如果查到了,再判断$_POST['pass']与数据库中该用户的密码
//如果不等,退出。如果相等,继续。
//给SESSION附值,比如$_SESSION['admin'],$_SESSION['pass']----------------------------------------------
以下是后台其它页面//先session_start();
//如果$_SESSION['admin']为空,退出,反则,继续。
//如果$_SESSION['admin']为空,退出,反则,继续。
这个正确
我看国内很多个人作的密码都不经加密就存入数据库,而老外习惯用MD5().
function checkuser(){
$db = $this->db;
$sid = session_id();
$username = $_SESSION['username'];
$password = $_SESSION['password'];
if(!$username || !$password ):
$_SESSION['username'] = "";
$_SESSION['password'] = "";
$message = "<center>您尚未登陆,请先登陆!</cneter>";
return $message;
exit;
endif; $rs = $db->Execute("select password from " . $this->tablepre . "user where username = '$username'");
$row = &$rs->FetchRow();
if($row['password'] != $password):
$_SESSION['username'] = "";
$_SESSION['password'] = "";
$message = "<center>您尚未登陆,请先登陆!</cneter>";
return $message;
exit;
endif; $rs = $db->Execute("select * from " . $this->tablepre . "user_login where sid = '$sid'");
$row = &$rs->FetchRow();
$time = time();
$onlinetime = $row['onlinetime'] + ($time - $row['time']);
if($row['uid'] != $username):
$_SESSION['username'] = "";
$_SESSION['password'] = "";
$message = "<center>您尚未登陆,请先登陆!</cneter>";
return $message;
exit;
endif; $ip = ip2long(getenv("REMOTE_ADDR"));
if($row['ip'] != $ip):
$_SESSION['username'] = "";
$_SESSION['password'] = "";
$message = "<center>您尚未登陆,请先登陆!</cneter>";
return $message;
exit;
endif; if($time - $row['time'] > $this->outtime):
$_SESSION['username'] = "";
$_SESSION['password'] = "";
$message = "<center>您尚未登陆,请先登陆!</cneter>";
return $message;
exit;
endif;
$row = &$rs->FetchRow();
$db->Execute("UPDATE " . $this->tablepre . "user_login set `time`='$time', `onlinetime`='$onlinetime' where uid = '$username'"); }
1.判断session,seesion不存在,函数有返回值.
2.根据session记录的用户名和MD5过的密码,在数据表里面验证,不同则有返回值.
3.判断登陆表中的登陆IP,不同则有返回值(防止同账号多处登陆).
4.判断间隔时长,超过15分钟,有返回值.函数有返回值时为非法用户,无返回值为登陆用户,用户名为session中记录的.