提交界面中跟踪式登录并自动跳转到跟踪页面
说明:
1:这里是当点击的页面需要登录状态下才能操作情况下
2:只需要在act=login 中获取 上一界面的url 并传值到登录界面 <input type="hidden" name="back_act" value="{$back_act}" />
3:在act=act_login 接收 $back_act 并做跳转 (要排除http://www.e1617.com/user.html?act=logout)
代码实例:
1: user.php实例
/* 用户登录界面 */ elseif ($action == 'login') { //这个就是读取点击需要登录的url if (empty($back_act)) { if (empty($back_act) && isset($GLOBALS['_SERVER']['HTTP_REFERER'])) { $back_act = strpos($GLOBALS['_SERVER']['HTTP_REFERER'], 'user.php') ? './index.html' : $GLOBALS['_SERVER']['HTTP_REFERER']; } else { $back_act = 'user.php'; } } /*var_dump($back_act); // 例如 http://www.e1617.com/caigou/add.html */ // 排除突出功能的界面,因为这个界面会一直死循环 if($back_act=='http://www.e1617.com/user.html?act=logout'){ $back_act='http://www.e1617.com/'; } /* 1:这个思想用于不同的类型注册,但是要在同一个界面进行展示不同信息进行注册时候 * 2:譬如 点击 成为分销商 成为供应商 的链接分别为 http://www.e1617.com/user.html?act=register&is_suppliers=1 http://www.e1617.com/user.html?act=register&is_suppliers=2 来在界面判断哪些是不显示,哪些显示 */ $user_group=isset($_REQUEST['user_group'])?$_REQUEST['user_group']:0; $smarty->assign("user_group",$user_group);//该值判断是不是医疗会员 $smarty->assign("is_suppliers",$_REQUEST['is_suppliers']);//会员是分销商还是供应商,分销商1供应商2 $smarty->assign('back_act', $back_act);//这个就是用于跳转的传值地方到dwt界面 $smarty->display('user_passport.dwt'); }
2:user_passport.dwt 界面
<form action="user.php" method="post"> <div class="item_fore1 "> <label for="loginname" class="login-label"></label> <input id="username" type="text" class="itxt" name="username" tabindex="1" autocomplete="off"placeholder="邮箱/用户名/已验证手机"> </div> <div class="item_fore2 "> <label for="loginname" class="login-label"></label> <input type="password" id="password" name="password" class="itxt itxt-error" tabindex="2" autocomplete="off" placeholder="密码"> </div> <div class="item_fore3 pt_20"> <input type="hidden" name="act" value="act_login" /> <input type="hidden" name="back_act" value="{$back_act}" /> <div class="login_btn"> <input id="denglu" type="submit" name="submit" class="login_btn1" value="登 录" > </div> </div> </form>
3:user.php 处理代码:
/* 处理会员的登录 */ elseif ($action == 'act_login') { $username = isset($_POST['username']) ? trim($_POST['username']) : ''; $password = isset($_POST['password']) ? trim($_POST['password']) : ''; $back_act = isset($_POST['back_act']) ? trim($_POST['back_act']) : ''; /* 这样用来进行拼接字段的经典方法 */ $back_url = isset($_POST['back_url']) ? trim($_POST['back_url']) : ''; $user_group = isset($_POST['user_group']) ? trim($_POST['user_group']) : ''; $is_suppliers = isset($_POST['is_suppliers']) ? trim($_POST['is_suppliers']) : ''; if($back_url!=""){ $logact.="&back_url=".$back_url; } if($user_group!=""){ $logact.="&user_group=".$user_group; } if($is_suppliers!=""){ $logact.="&is_suppliers=".$is_suppliers; } if ($user->login($username, $password))){ //header("location:$back_act"); show_message($_LANG['login_success'] . $ucdata , array($_LANG['back_up_page'], $_LANG['profile_lnk']), array($back_act,'user.php'), 'info'); }else{ show_message($_LANG['login_failure'], $_LANG['relogin_lnk'], 'user.php?act=login'.$logact, 'error'); } }

浙公网安备 33010602011771号