
利用主站校验,跳转回来
<span class="token php language-php"><span class="token delimiter important"><?</span><span class="token class-name type-declaration">php</span><span class="token variable">$action</span> <span class="token operator">=</span> <span class="token function">param</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token keyword keyword-if">if</span><span class="token punctuation">(</span><span class="token variable">$action</span> <span class="token operator">==</span> <span class="token string single-quoted-string">'login'</span><span class="token punctuation">)</span> <span class="token punctuation">{</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'referer'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token function">http_referer</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">// 发起的 token</span><span class="token variable">$token</span> <span class="token operator">=</span> <span class="token function">xn_encrypt</span><span class="token punctuation">(</span><span class="token variable">$time</span><span class="token operator">.</span><span class="token string double-quoted-string">"\t"</span><span class="token operator">.</span><span class="token variable">$useragent</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token variable">$s</span> <span class="token operator">=</span> <span class="token function">xn_decrypt</span><span class="token punctuation">(</span><span class="token variable">$token</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token variable">$return_url</span> <span class="token operator">=</span> <span class="token function">xn_urlencode</span><span class="token punctuation">(</span><span class="token function">http_url_path</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">.</span><span class="token function">url</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'user-synlogin'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token function">http_location</span><span class="token punctuation">(</span><span class="token constant">BBS_URL</span><span class="token operator">.</span><span class="token string double-quoted-string">"user-synlogin.htm?token=<span class="token interpolation"><span class="token variable">$token</span></span>&return_url=<span class="token interpolation"><span class="token variable">$return_url</span></span>"</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">// 接受跳转回来的 token} elseif($action == 'synlogin') {</span><span class="token variable">$token</span> <span class="token operator">=</span> <span class="token function">param</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'token'</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token variable">$s</span> <span class="token operator">=</span> <span class="token function">xn_decrypt</span><span class="token punctuation">(</span><span class="token variable">$token</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token variable">$arr</span> <span class="token operator">=</span> <span class="token function">xn_json_decode</span><span class="token punctuation">(</span><span class="token variable">$s</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token keyword keyword-empty">empty</span><span class="token punctuation">(</span><span class="token variable">$arr</span><span class="token punctuation">)</span> <span class="token keyword keyword-AND">AND</span> <span class="token function">message</span><span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">'TOKEN 有错误'</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'uid'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token variable">$arr</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'uid'</span><span class="token punctuation">]</span><span class="token punctuation">;</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'user'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token variable">$arr</span><span class="token punctuation">;</span><span class="token variable">$referer</span> <span class="token operator">=</span> <span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'referer'</span><span class="token punctuation">]</span><span class="token punctuation">;</span><span class="token keyword keyword-unset">unset</span><span class="token punctuation">(</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'referer'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token function">message</span><span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token function">jump</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'登陆成功'</span><span class="token punctuation">,</span> <span class="token variable">$referer</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token punctuation">}</span> <span class="token keyword keyword-elseif">elseif</span><span class="token punctuation">(</span><span class="token variable">$action</span> <span class="token operator">==</span> <span class="token string single-quoted-string">'create'</span><span class="token punctuation">)</span> <span class="token punctuation">{</span><span class="token function">http_location</span><span class="token punctuation">(</span><span class="token constant">BBS_URL</span><span class="token operator">.</span><span class="token function">url</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"user-create"</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token punctuation">}</span> <span class="token keyword keyword-elseif">elseif</span><span class="token punctuation">(</span><span class="token variable">$action</span> <span class="token operator">==</span> <span class="token string single-quoted-string">'logout'</span><span class="token punctuation">)</span> <span class="token punctuation">{</span><span class="token variable">$uid</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span><span class="token keyword keyword-unset">unset</span><span class="token punctuation">(</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'uid'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token keyword keyword-unset">unset</span><span class="token punctuation">(</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'user'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token function">message</span><span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token function">jump</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'退出成功'</span><span class="token punctuation">,</span> <span class="token function">http_referer</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token punctuation">}</span><span class="token delimiter important">?></span></span><span class="token php language-php"><span class="token delimiter important"><?</span><span class="token class-name type-declaration">php</span><span class="token variable">$action</span> <span class="token operator">=</span> <span class="token function">param</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token keyword keyword-if">if</span><span class="token punctuation">(</span><span class="token variable">$action</span> <span class="token operator">==</span> <span class="token string single-quoted-string">'login'</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'referer'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token function">http_referer</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 发起的 token</span> <span class="token variable">$token</span> <span class="token operator">=</span> <span class="token function">xn_encrypt</span><span class="token punctuation">(</span><span class="token variable">$time</span><span class="token operator">.</span><span class="token string double-quoted-string">"\t"</span><span class="token operator">.</span><span class="token variable">$useragent</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$s</span> <span class="token operator">=</span> <span class="token function">xn_decrypt</span><span class="token punctuation">(</span><span class="token variable">$token</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$return_url</span> <span class="token operator">=</span> <span class="token function">xn_urlencode</span><span class="token punctuation">(</span><span class="token function">http_url_path</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">.</span><span class="token function">url</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'user-synlogin'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">http_location</span><span class="token punctuation">(</span><span class="token constant">BBS_URL</span><span class="token operator">.</span><span class="token string double-quoted-string">"user-synlogin.htm?token=<span class="token interpolation"><span class="token variable">$token</span></span>&return_url=<span class="token interpolation"><span class="token variable">$return_url</span></span>"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 接受跳转回来的 token} elseif($action == 'synlogin') {</span> <span class="token variable">$token</span> <span class="token operator">=</span> <span class="token function">param</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'token'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$s</span> <span class="token operator">=</span> <span class="token function">xn_decrypt</span><span class="token punctuation">(</span><span class="token variable">$token</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$arr</span> <span class="token operator">=</span> <span class="token function">xn_json_decode</span><span class="token punctuation">(</span><span class="token variable">$s</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword keyword-empty">empty</span><span class="token punctuation">(</span><span class="token variable">$arr</span><span class="token punctuation">)</span> <span class="token keyword keyword-AND">AND</span> <span class="token function">message</span><span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">'TOKEN 有错误'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'uid'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token variable">$arr</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'uid'</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'user'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token variable">$arr</span><span class="token punctuation">;</span> <span class="token variable">$referer</span> <span class="token operator">=</span> <span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'referer'</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword keyword-unset">unset</span><span class="token punctuation">(</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'referer'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">message</span><span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token function">jump</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'登陆成功'</span><span class="token punctuation">,</span> <span class="token variable">$referer</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword keyword-elseif">elseif</span><span class="token punctuation">(</span><span class="token variable">$action</span> <span class="token operator">==</span> <span class="token string single-quoted-string">'create'</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token function">http_location</span><span class="token punctuation">(</span><span class="token constant">BBS_URL</span><span class="token operator">.</span><span class="token function">url</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"user-create"</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword keyword-elseif">elseif</span><span class="token punctuation">(</span><span class="token variable">$action</span> <span class="token operator">==</span> <span class="token string single-quoted-string">'logout'</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token variable">$uid</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> <span class="token keyword keyword-unset">unset</span><span class="token punctuation">(</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'uid'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword keyword-unset">unset</span><span class="token punctuation">(</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'user'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">message</span><span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token function">jump</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'退出成功'</span><span class="token punctuation">,</span> <span class="token function">http_referer</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span><span class="token delimiter important">?></span></span><?php$action = param(1);if($action == 'login') { $_SESSION['referer'] = http_referer(); // 发起的 token $token = xn_encrypt($time."\t".$useragent); $s = xn_decrypt($token); $return_url = xn_urlencode(http_url_path().url('user-synlogin')); http_location(BBS_URL."user-synlogin.htm?token=$token&return_url=$return_url"); // 接受跳转回来的 token} elseif($action == 'synlogin') { $token = param('token'); $s = xn_decrypt($token); $arr = xn_json_decode($s); empty($arr) AND message(-1, 'TOKEN 有错误'); $_SESSION['uid'] = $arr['uid']; $_SESSION['user'] = $arr; $referer = $_SESSION['referer']; unset($_SESSION['referer']); message(-1, jump('登陆成功', $referer, 2)); } elseif($action == 'create') { http_location(BBS_URL.url("user-create")); } elseif($action == 'logout') { $uid = 0; unset($_SESSION['uid']); unset($_SESSION['user']); message(-1, jump('退出成功', http_referer(), 2)); }?>
内容看完了
© 版权声明
请登录后发表评论
注册