因为工作的原因.要用到这个,所以研究了一下.
主要思路是模拟COOKIES ..先往Cookies里面插入用户ID和一个SessionID,然后再往数据库中的sessions表里面插入SessionID,和用户ID,如果打开论坛,系统会验证COOKIES的信息跟数据库中的信息是否一样,如果一样的话就可以实现自动登入..登入部份主要代码如下:
(做为现在的主流开发语言)
//获取32位随机的SESSIONID
//初始化各值
$Session_testId=create_sess_id(32);
$SessionIp=192.168.0.100;
$cookie_path=/;
$cookieName=php(做为现在的主流开发语言)bb3_1w36a;
$userBrowserInfo= $_SERVER["HTTP_USER_AGENT"];
$userIpAdd=$_SERVER["REMOTE_ADDR"];
//获取表单的用户名和密码
$cmd_username=$_POST["username"];
$cmd_password=$_POST["password"];
//先跟CMS系统表验证,如果通过.查询相应用户名BBS用户表中的ID
$link=MySQL(和PHP搭配之最佳组合)_connect("localhost","root","");
MySQL(和PHP搭配之最佳组合)_select_db("cms");
$selectUid="select user_id from bbs_users where username=$cmd_username";
$uidResult=MySQL(和PHP搭配之最佳组合)_query($selectUid);
$userId=null;
while($row1 = MySQL(和PHP搭配之最佳组合)_fetch_array($uidResult, MySQL(和PHP搭配之最佳组合)_NUM))
{
$userId=$row1[0];
}
//echo $userId;
MySQL(和PHP搭配之最佳组合)_close($link);
//往Cookies里插入用户ID信息
setcookie($cookieName._u,$userId,time()+100000000,$cookie_path,$SessionIp,false);
//往Cookies里插入SessionID信息
setcookie($cookieName._sid,$Session_testId,time()+100000000,$cookie_path,$SessionIp,false);
//往php(做为现在的主流开发语言)b_sessions表中插入Session信息
$link=MySQL(和PHP搭配之最佳组合)_connect("localhost","root","");
MySQL(和PHP搭配之最佳组合)_select_db("cms");
$sqlcommand="insert into bbs_sessions(session_id,session_user_id,session_last_visit,session_start,session_time,session_ip,session_browser,session_page)";
$sqlcommand.=" values($Session_testId,$userId,".time().",".time().",".time().",$userIpAdd,$userBrowserInfo,index.php(做为现在的主流开发语言))";
//echo $sqlcommand;
MySQL(和PHP搭配之最佳组合)_query($sqlcommand);
MySQL(和PHP搭配之最佳组合)_close($link);
//生成一个32位随机数
function create_sess_id($len=32)
{
// 获取当前时间的微秒
list($u, $s) = eXPlode( , microtime());
$time = (float)$u + (float)$s;
// 产生一个随机数
$rand_num = rand(100000, 999999);
$rand_num = rand($rand_num, $time);
mt_srand($rand_num);
$rand_num = mt_rand();
// 产生SessionID
$sess_id = md5( md5($time). md5($rand_num) );
// 截取指定需要长度的SessionID
$sess_id = substr($sess_id, 0, $len);
return $sess_id;
}
header("location: http://192.168.0.100/bbs/index.php(做为现在的主流开发语言)");
//print_r($_COOKIE);
?>
这样,就可以实现自动登入了.
当然,只有这些还是不够,还要屏蔽php(做为现在的主流开发语言)BB中的用户修改账户信息和注册新用户.比如要修改注册的,可以修改
php(做为现在的主流开发语言)bb3rc2stylesprosilver emplate这个目录下面的.ucp_register.html模版面.把里面的内容的删了.加上这个
这样,当用户点注册,阅读完条款后点注册,就会跳到网站上的注册页面.修改信息的大体一样..
我的作法并没有统一用户表.而是各有各的用户系统..
当在网站上注册用户时,同时往php(做为现在的主流开发语言)BB数据库的users表和user_group表中插入用户信息.记住,一定要看看分组啊,
权限,插入相应的东西,要不然可能不能登入,不改发信息,不能读版块等问题.这部份比较长简单,代码就省了.主要是登入部份..

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.
