点击一个链接就让用户登录,呵呵,MS非常不安全呀.
在用户注册的时候将信息保存在session里,并记录session串.
当然要设置session的失效时间,时间太长不安全.
不过楼主可以在链接里包含一个session串.
然后能过这个session串信息获取用户的信息.
在用户注册的时候将信息保存在session里,并记录session串.
当然要设置session的失效时间,时间太长不安全.
不过楼主可以在链接里包含一个session串.
然后能过这个session串信息获取用户的信息.
初学php呢 希望楼下的高手可以给出可具体例子或做法,谢谢了!
2. update cdb_members set logon_key = md5(rand()); // 为所有用户设置其登录验证码。
3. 发送链接为http://www.mysite.com/index.php?action=instant_login&username=XXX&logon_key=KKK。
4. 修改index.php,增加当$action值为instant_login的处理。 根据用户名选取用户资料,并检查其logon_key是否和数据库中记录的匹配。 是则提取用户名信息,并按login.php中的相关处理进行cookie和session设置。 否则提示出错信息。安全方面确实不建议这么做,如果实在要做,也建议让logon_key一次有效,用后清除或更新为其他值。
2. update cdb_members set logon_key = md5(rand()); // 为所有用户设置其登录验证码。
3. 发送链接为http://www.mysite.com/index.php?action=instant_login&username=XXX&logon_key=KKK。
4. 修改index.php,增加当$action值为instant_login的处理。 根据用户名选取用户资料,并检查其logon_key是否和数据库中记录的匹配。 是则提取用户名信息,并按login.php中的相关处理进行cookie和session设置。 否则提示出错信息。安全方面确实不建议这么做,如果实在要做,也建议让logon_key一次有效,用后清除或更新为其他值。// 发表时提示成功,但居然没发上。 重发一次,若见重复回复勿怪。
//获取session id作为链接的参数<?php
session_start();
$_SESSION['tttt'] = "huo";
echo session_id();
?>//获取session id,重置sessionid,并且读取信息量
//链接串为 xxxx.php?sid=004a3fe87ead03ba870d53ff6334c5d4<?php
$sid = $_GET['sid'];
session_id($sid);
session_start();
echo $_SESSION['tttt'];
?>
然后再注册输入页面中显示出来就可以了。如果需要现实更多注册信息的功能,
需要掌握更多的数据,
并对数据库进行修改,以下是基本的处理步骤:1.在数据库中添加一个表示注册状态的flag,例如,已经正常注册了的是1,没有正常注册的是0
2.将要自动注册的帐户信息用后台程序保存到数据库,注册状态为0“没有正常注册”
3.发送邮件,在地址的GET参数中加入id
4.在用户访问制定链接的注册画面时,自动从数据库提取已经登陆的信息,在要求用户输入密码以及想要注册的ID就可以了
session在服务器上一般过期时间是3个小时内,而一些邮件服务器的用户收到邮件的时间可能都比这个要长 更别提大家都不会频繁的去看自己的邮箱了。 这个方法技术上可行,但实际上应用起来问题很大。
btw:郁闷,加的好友太多了,现在加好友都是非法请求了。连好友页面也打不开。连私信页面也打不开。
btw:CSDN当时没有测试过加好友很多的情况的吗?郁闷。现在一点加好友就出错。
用户都是我们已有的用户,
网站新增了论坛功能,
然后就给用户发了邮件,
点击链接的用户就算再次论坛激活了账号。
依据是uc里面有个lastlogin字段,根据这个判断。
因为我初学php的,所有好多东西都搞不懂,才请教大家的。
我试试上面方法,希望高手们继续回帖,十分感激大家的帮助。
求教!
} elseif($action == 'login') {
... $discuz_uid = 0;
$discuz_user = $discuz_pw = $discuz_secques = $md5_password = '';
$member = array(); $loginperm = logincheck();
if(!$loginperm) {
showmessage('login_strike');
}
... if($member['discuz_uid'] && $member['discuz_pw'] == $md5_password) {
... dsetcookie('cookietime', $cookietime, 31536000);
dsetcookie('auth', authcode("$discuz_pw\t$discuz_secques\t$discuz_uid", 'ENCODE'), $cookietime);
1 找出dz依据什么判断是否登录
2 按照要求生成所有所需要的cookie就可以了
用cookie也一样会有问题,用户可能会清掉cookie其实这只是一个思路,具体实施的时候肯定要考虑多种可能的因素来尽量避免出现问题.