首頁 >後端開發 >php教程 >单点登录

单点登录

WBOY
WBOY原創
2016-06-23 13:27:141626瀏覽

发送一个链接   让后面带有的参数不走登陆的页面直接走登陆的后台方法然后跳转到php项目的首页,应该怎么操作    




这是后台登陆的方法、
function user_login($username, $password, $code = null, $login_type = 0,$is_oauth=null) {
global $_lang,$_K;

$username=$_GET['username']
$password=$_GET['password']

$_SESSION ['username'] = $user_info ['username'];
$_SESSION['password'] = $user_info['password'];


$this->account_init ( $username );
$this->password_init ( md5($password ));
$this->login_type ( $login_type );
if($this->_login_times){
$this->check_code ( $code );
}
$accout_type = $this->get_login_type ();
switch ($this->_sys_config ['user_intergration']) {
case "1" :
switch ($accout_type) {
case 'mobile' :
$user_info = $this->valid_moble_auth ();
break;
case 'email' :
$user_info = $this->valid_email_auth ();
break;
case 'username' :
$user_info = $this->valid_username ();
break;
}
elseif ($user_info ['status'] == 2) {
$this->show_msg ( '

 '.$_lang ['account_has_freeze_or_unactivate'].'
', 4,'index.php?do=login' );
} elseif ($user_info ['status'] == 3 && $login_type!=1) {
$this->show_msg ('
 '.$_lang ['account_has_not_excited'].'
', 6,'index.php?do=login' );
}
return $user_info;
}
function login_freeze(){
if($this->check_black()){
$db_times = $this->get_login_times($this->_login_uid);
$db_times!=0 and db_factory::execute(sprintf('update %switkey_member_black set `login_times`=`login_times`-1 where `uid`= %d',TABLEPRE,$this->_login_uid));
}else{
 $expire =time()+24*3600;
 db_factory::execute(sprintf('insert into %switkey_member_black (`b_id`,`uid`,`expire`,`on_time`,`login_times`) values(NULL,%d,%d,%d,4)',TABLEPRE,$this->_login_uid,$expire,time()));
}
$db_times = $this->get_login_times($this->_login_uid);
return $db_times['login_times'];
}
function check_black(){
$rs = db_factory::get_one(sprintf('select `uid` from %switkey_member_black where `uid`=%d ',TABLEPRE,$this->_login_uid));
if($rs['uid']){
return true;
}else {
return false;
}
}

function valid_username() {
$username=$_GET['username']
$password=$_GET['password']
global $_lang;
$user_info = kekezu::get_user_info ( $this->_account, 1 );
if ($user_info) {
$user_info ['login_type'] = 'username';
header('Location:index.php')
return $user_info;
} else {
$this->add_login_time();
$this->show_msg ( '用户名或密码错误,请检查账号是否输入正确', 3 ,'index.php',1);
}
}

跪求大神   ,   我怎么做才能实现需求的功能









解决了在追加50


回复讨论(解决方案)

你可以把你登录用户的信息包含在链接中 比如
用户名为yyyy 密码为XXXXX 用0123456789做区分 
则链接构造成  xx.php?LoginString=yyyy0123456789XXXXX
至于你对 LoginString 怎么加个密解个密就自由发挥了

你可以把你登录用户的信息包含在链接中 比如
用户名为yyyy 密码为XXXXX 用0123456789做区分 
则链接构造成  xx.php?LoginString=yyyy0123456789XXXXX
至于你对 LoginString 怎么加个密解个密就自由发挥了




我现在为了简单  先自己整了个登陆页面     链接那块我也出来了 但是我在后台get请求获取不到啊   获取到不是应该链接后面 的参数起作用吗  但是现在还是表单里的起作用

你可以把你登录用户的信息包含在链接中 比如
用户名为yyyy 密码为XXXXX 用0123456789做区分 
则链接构造成  xx.php?LoginString=yyyy0123456789XXXXX
至于你对 LoginString 怎么加个密解个密就自由发挥了



1.可以post 2或者通过get 提交整张表

1.可以post 2或者通过get 提交整张表



现在就是在用get  但是为什么还是表单提交起作用啊


你可以把你登录用户的信息包含在链接中 比如
用户名为yyyy 密码为XXXXX 用0123456789做区分 
则链接构造成  xx.php?LoginString=yyyy0123456789XXXXX
至于你对 LoginString 怎么加个密解个密就自由发挥了




额  表单还是用post , url 则get  但是如果你没有重写路由规则的话  你的 login.html#username=xx#password=xx是不对的。。
Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接



你可以把你登录用户的信息包含在链接中 比如
用户名为yyyy 密码为XXXXX 用0123456789做区分 
则链接构造成  xx.php?LoginString=yyyy0123456789XXXXX
至于你对 LoginString 怎么加个密解个密就自由发挥了




额  表单还是用post , url 则get  但是如果你没有重写路由规则的话  你的 login.html#username=xx#password=xx是不对的。。
Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接



我现在肯定是必须要用到get请求的   没接触过php    听我那经理的意思是     直接获取get传值放入后台的session里走登陆的后台方法然后跳转到登陆成功的页面并显示        我开始使用的&链接   但是因为这是个html页面   我用&链接报错啊   用#号就过来了   难道我应该先获取url吗    还有重写路由的话应该怎么写啊




你可以把你登录用户的信息包含在链接中 比如
用户名为yyyy 密码为XXXXX 用0123456789做区分 
则链接构造成  xx.php?LoginString=yyyy0123456789XXXXX
至于你对 LoginString 怎么加个密解个密就自由发挥了




额  表单还是用post , url 则get  但是如果你没有重写路由规则的话  你的 login.html#username=xx#password=xx是不对的。。
Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接



我现在肯定是必须要用到get请求的   没接触过php    听我那经理的意思是     直接获取get传值放入后台的session里走登陆的后台方法然后跳转到登陆成功的页面并显示        我开始使用的&链接   但是因为这是个html页面   我用&链接报错啊   用#号就过来了   难道我应该先获取url吗    还有重写路由的话应该怎么写啊
新人太新了。。  这些问题还是问你同事吧。。。  毕竟网络上回复不及时效率也低





你可以把你登录用户的信息包含在链接中 比如
用户名为yyyy 密码为XXXXX 用0123456789做区分 
则链接构造成  xx.php?LoginString=yyyy0123456789XXXXX
至于你对 LoginString 怎么加个密解个密就自由发挥了




额  表单还是用post , url 则get  但是如果你没有重写路由规则的话  你的 login.html#username=xx#password=xx是不对的。。
Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接



我现在肯定是必须要用到get请求的   没接触过php    听我那经理的意思是     直接获取get传值放入后台的session里走登陆的后台方法然后跳转到登陆成功的页面并显示        我开始使用的&链接   但是因为这是个html页面   我用&链接报错啊   用#号就过来了   难道我应该先获取url吗    还有重写路由的话应该怎么写啊
新人太新了。。  这些问题还是问你同事吧。。。  毕竟网络上回复不及时效率也低


正是因为同事都没有会php的啊    就我一个人在做这个    麻烦大神大致说一下怎么弄    我快要愁疯了

你们讨论的很热闹,但都没有说到点上!

所谓单点登录就是:在一处登录后,通过传递已登录信息,使得其他地方不再判为未登录

你们讨论的很热闹,但都没有说到点上!

所谓单点登录就是:在一处登录后,通过传递已登录信息,使得其他地方不再判为未登录




麻烦问下    那具体做的话   这样可以吗     第一处登陆成功    页面有一个按钮点击发送一个超链接     后面带上用户名        发送到第二个登陆的登陆界面   然后第二个页面后台获取他传过来的值  走完登陆的方法后直接跳转到登陆成功的首页   

你们讨论的很热闹,但都没有说到点上!

所谓单点登录就是:在一处登录后,通过传递已登录信息,使得其他地方不再判为未登录



主要两个项目  一个是java的另一个是php的     会不会有什么冲突


你们讨论的很热闹,但都没有说到点上!

所谓单点登录就是:在一处登录后,通过传递已登录信息,使得其他地方不再判为未登录




麻烦问下    那具体做的话   这样可以吗     第一处登陆成功    页面有一个按钮点击发送一个超链接     后面带上用户名        发送到第二个登陆的登陆界面   然后第二个页面后台获取他传过来的值  走完登陆的方法后直接跳转到登陆成功的首页   
假设你A页面登录成功 生成的是B.php?Token=fsadfads其中Token包含某用户的登录信息,至于怎么验明该用户合法的身份, 就看你自己了。。至于你说html不能带参数。。。  最简单的就是在B,php验明身份后header location一下不就好了。。。



你们讨论的很热闹,但都没有说到点上!

所谓单点登录就是:在一处登录后,通过传递已登录信息,使得其他地方不再判为未登录




麻烦问下    那具体做的话   这样可以吗     第一处登陆成功    页面有一个按钮点击发送一个超链接     后面带上用户名        发送到第二个登陆的登陆界面   然后第二个页面后台获取他传过来的值  走完登陆的方法后直接跳转到登陆成功的首页   
假设你A页面登录成功 生成的是B.php?Token=fsadfads其中Token包含某用户的登录信息,至于怎么验明该用户合法的身份, 就看你自己了。。至于你说html不能带参数。。。  最简单的就是在B,php验明身份后header location一下不就好了。。。


就是因为开始用用户名验证然后在后面加header location 没出来  项目本身又代码太多  所以我才自己建了个新的在网上找了个能用的登陆方法,  我和同事研究了一下    同事说现在最主要的就是让我发的那个链接可以走我后台的那个登陆方法 然后再按您说的+个header location
麻烦您再受累帮我看看




你们讨论的很热闹,但都没有说到点上!

所谓单点登录就是:在一处登录后,通过传递已登录信息,使得其他地方不再判为未登录




麻烦问下    那具体做的话   这样可以吗     第一处登陆成功    页面有一个按钮点击发送一个超链接     后面带上用户名        发送到第二个登陆的登陆界面   然后第二个页面后台获取他传过来的值  走完登陆的方法后直接跳转到登陆成功的首页   
假设你A页面登录成功 生成的是B.php?Token=fsadfads其中Token包含某用户的登录信息,至于怎么验明该用户合法的身份, 就看你自己了。。至于你说html不能带参数。。。  最简单的就是在B,php验明身份后header location一下不就好了。。。


就是因为开始用用户名验证然后在后面加header location 没出来  项目本身又代码太多  所以我才自己建了个新的在网上找了个能用的登陆方法,  我和同事研究了一下    同事说现在最主要的就是让我发的那个链接可以走我后台的那个登陆方法 然后再按您说的+个header location
麻烦您再受累帮我看看
你先理清自己思路   然后写代码  不通过再让我们帮你检查。。。 





你们讨论的很热闹,但都没有说到点上!

所谓单点登录就是:在一处登录后,通过传递已登录信息,使得其他地方不再判为未登录




麻烦问下    那具体做的话   这样可以吗     第一处登陆成功    页面有一个按钮点击发送一个超链接     后面带上用户名        发送到第二个登陆的登陆界面   然后第二个页面后台获取他传过来的值  走完登陆的方法后直接跳转到登陆成功的首页   
假设你A页面登录成功 生成的是B.php?Token=fsadfads其中Token包含某用户的登录信息,至于怎么验明该用户合法的身份, 就看你自己了。。至于你说html不能带参数。。。  最简单的就是在B,php验明身份后header location一下不就好了。。。


就是因为开始用用户名验证然后在后面加header location 没出来  项目本身又代码太多  所以我才自己建了个新的在网上找了个能用的登陆方法,  我和同事研究了一下    同事说现在最主要的就是让我发的那个链接可以走我后台的那个登陆方法 然后再按您说的+个header location
麻烦您再受累帮我看看
你先理清自己思路   然后写代码  不通过再让我们帮你检查。。。 





你们讨论的很热闹,但都没有说到点上!

所谓单点登录就是:在一处登录后,通过传递已登录信息,使得其他地方不再判为未登录




麻烦问下    那具体做的话   这样可以吗     第一处登陆成功    页面有一个按钮点击发送一个超链接     后面带上用户名        发送到第二个登陆的登陆界面   然后第二个页面后台获取他传过来的值  走完登陆的方法后直接跳转到登陆成功的首页   
假设你A页面登录成功 生成的是B.php?Token=fsadfads其中Token包含某用户的登录信息,至于怎么验明该用户合法的身份, 就看你自己了。。至于你说html不能带参数。。。  最简单的就是在B,php验明身份后header location一下不就好了。。。


就是因为开始用用户名验证然后在后面加header location 没出来  项目本身又代码太多  所以我才自己建了个新的在网上找了个能用的登陆方法,  我和同事研究了一下    同事说现在最主要的就是让我发的那个链接可以走我后台的那个登陆方法 然后再按您说的+个header location
麻烦您再受累帮我看看
你先理清自己思路   然后写代码  不通过再让我们帮你检查。。。 



我现在就是在链接发送过去那卡住了       我一个同事他写过一个类似的     他是通过把java的那个后台方法的路径给拼接起来,就让那个链接走后台的方法了   ,    但是在php里   我试着拼他的url   但是没用啊    麻烦您再帮我看看怎么才能让链接走后台的登陆方法       好几天了    先给您分       解决了在追加50   






你们讨论的很热闹,但都没有说到点上!

所谓单点登录就是:在一处登录后,通过传递已登录信息,使得其他地方不再判为未登录




麻烦问下    那具体做的话   这样可以吗     第一处登陆成功    页面有一个按钮点击发送一个超链接     后面带上用户名        发送到第二个登陆的登陆界面   然后第二个页面后台获取他传过来的值  走完登陆的方法后直接跳转到登陆成功的首页   
假设你A页面登录成功 生成的是B.php?Token=fsadfads其中Token包含某用户的登录信息,至于怎么验明该用户合法的身份, 就看你自己了。。至于你说html不能带参数。。。  最简单的就是在B,php验明身份后header location一下不就好了。。。


就是因为开始用用户名验证然后在后面加header location 没出来  项目本身又代码太多  所以我才自己建了个新的在网上找了个能用的登陆方法,  我和同事研究了一下    同事说现在最主要的就是让我发的那个链接可以走我后台的那个登陆方法 然后再按您说的+个header location
麻烦您再受累帮我看看
你先理清自己思路   然后写代码  不通过再让我们帮你检查。。。 





你们讨论的很热闹,但都没有说到点上!

所谓单点登录就是:在一处登录后,通过传递已登录信息,使得其他地方不再判为未登录




麻烦问下    那具体做的话   这样可以吗     第一处登陆成功    页面有一个按钮点击发送一个超链接     后面带上用户名        发送到第二个登陆的登陆界面   然后第二个页面后台获取他传过来的值  走完登陆的方法后直接跳转到登陆成功的首页   
假设你A页面登录成功 生成的是B.php?Token=fsadfads其中Token包含某用户的登录信息,至于怎么验明该用户合法的身份, 就看你自己了。。至于你说html不能带参数。。。  最简单的就是在B,php验明身份后header location一下不就好了。。。


就是因为开始用用户名验证然后在后面加header location 没出来  项目本身又代码太多  所以我才自己建了个新的在网上找了个能用的登陆方法,  我和同事研究了一下    同事说现在最主要的就是让我发的那个链接可以走我后台的那个登陆方法 然后再按您说的+个header location
麻烦您再受累帮我看看
你先理清自己思路   然后写代码  不通过再让我们帮你检查。。。 



我现在就是在链接发送过去那卡住了       我一个同事他写过一个类似的     他是通过把java的那个后台方法的路径给拼接起来,就让那个链接走后台的方法了   ,    但是在php里   我试着拼他的url   但是没用啊    麻烦您再帮我看看怎么才能让链接走后台的登陆方法       好几天了    先给您分       解决了在追加50   


刚发现  给分帖子就不能回复了      我在等等  抱歉啊   

不能用session么? 判断下当前状态

播放黄色片马上安装及播放列表:

http协议,301重定向,header('lo');

http协议,301重定向,header('lo');

当成功时,重定向到header('location:index.php');

抱歉啊   忘了结贴了    谢谢大家的帮忙    虽然问题没有解决   不过现在这都不重要了

都搞不懂了,单点登陆跟同步登陆,2个应该是不同概念吧

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn