通过环境变量设置将外部参数传递到qooxdoo应用系统内部

来源:互联网 发布:淘宝到家 编辑:程序博客网 时间:2024/06/01 13:04

在我使用qooxdoo设计应用系统时,通过需要设计制作系统的登录入口,如果直接使用qooxdoo来制作有两个缺点,一个是登录界面个性化设计不太好做,另一个就是登录时加载速度问题,所以我在使用qooxdoo系统时通常将登录界面单位做成一个html文件,然后通过ajax来进行用户名称及密码的验证工作,如果验证通过使用js将页面地址指向qooxdoo的入口文件。通过这种方式就需要将登录的用户名称、用户ID等系统传递到qooxdoo中。我使用的方法如下:

<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>股份有限公司</title><style type="text/css">body {margin-left: 0px;margin-top: 0px;margin-right: 0px;margin-bottom: 0px;overflow:hidden;}.STYLE3 {color: #528311; font-size: 12px; }.STYLE4 {color: #42870a;font-size: 12px;}</style>    <!--[if lte IE 10]><script type="text/javascript" src="script/json2.js"></script><![endif]-->    <script type="text/javascript" src="script/ajax.js"></script><script type="text/javascript" language="javascript"> window.onload = function() {document.getElementById('LoginName').focus();}function AdminLogin() {if (document.getElementById('LoginName').value=="") { alert('用户登录名称不能为空');  document.getElementById('LoginName').focus(); }if (document.getElementById('LoginPWD').value=="") { alert('用户登录密码不能为空'); document.getElementById('LoginPWD').focus(); }var ajax = Ajax('json');ajax.post('./DataServices/common/VerifyLogin.php', {username:document.getElementById('LoginName').value,userpwd:document.getElementById('LoginPWD').value}, function(data) {var json=JSON.parse(data);if (json.status == 1) {switch (json.role) {  //根据用户角色的不同登录到不同的qooxdoo系统中case "1":  //管理员location.href='./Application.php';break;case "2":  //普通用户location.href='./common.php';break;default:location.href='./index.php';break;}} else {alert(json.msg);}    });}function ClearLoginInfo() {document.getElementById('LoginName').value="";document.getElementById('LoginPWD').value="";document.getElementById('LoginName').focus();}function PwdKeypress(e) {var keynum;if(window.event) { //IEkeynum = e.keyCode} else if(e.which) { // Netscape/Firefox/Operakeynum = e.which} if (keynum == 13) { AdminLogin(); }}</script></head><body><table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">  <tr>    <td bgcolor="#e5f6cf"> </td>  </tr>  <tr>    <td height="608" background="./resource/link//login/login_03.gif"><table width="862" border="0" align="center" cellpadding="0" cellspacing="0">      <tr>        <td height="266" background="./resource/link//login/login_04.gif"> </td>      </tr>      <tr>        <td height="95"><table width="100%" border="0" cellspacing="0" cellpadding="0">          <tr>            <td width="424" height="95" background="./resource/link//login/login_06.gif"> </td>            <td width="183" background="./resource/link//login/login_07.gif"><table width="100%" border="0" cellspacing="0" cellpadding="0">              <tr>                <td width="21%" height="30"><div align="center"><span class="STYLE3">用户</span></div></td>                <td width="79%" height="30"><input type="text" name="LoginName" id="LoginName"  style="height:18px; width:130px; border:solid 1px #cadcb2; font-size:12px; color:#81b432;"></td>              </tr>              <tr>                <td height="30"><div align="center"><span class="STYLE3">密码</span></div></td>                <td height="30"><input type="password" name="LoginPWD" id="LoginPWD"  style="height:18px; width:130px; border:solid 1px #cadcb2; font-size:12px; color:#81b432;" onkeypress="PwdKeypress(event)"></td>              </tr>              <tr>                <td height="30"> </td>                <td height="30"><img src="./resource/link//login/dl.gif" width="81" height="22" border="0" usemap="#Map"></td>              </tr>            </table></td>            <td width="255" background="./resource/link//login/login_08.gif"> </td>          </tr>        </table></td>      </tr>      <tr>        <td height="247" valign="top" background="./resource/link//login/login_09.gif"><table width="100%" border="0" cellspacing="0" cellpadding="0">          <tr>            <td width="22%" height="30"> </td>            <td width="56%"> </td>            <td width="22%"> </td>          </tr>          <tr>            <td> </td>            <td height="30"><table width="100%" border="0" cellspacing="0" cellpadding="0">              <tr>                <td width="44%" height="20"> </td>                <td width="56%" class="STYLE4">版本 2014 V1.0 </td>              </tr>            </table></td>            <td> </td>          </tr>        </table></td>      </tr>    </table></td>  </tr>  <tr>    <td bgcolor="#a2d962"> </td>  </tr></table><map name="Map"><area shape="rect" coords="3,3,36,19" href="javascript:void(0)" onClick="AdminLogin()"><area shape="rect" coords="40,3,78,18" href="javascript:void(0)" onClick="ClearLoginInfo()"></map></body></html>

后台登录信息处理如下:

<?phpsession_start();include "../options/db_settings.php";$UserName = $_POST['username'];$UserPWD  = $_POST['userpwd'];$rs=$DBConn->Execute("select user_id,login_pwd,user_name,user_role,lk_department.dept_id,dept_name,dept_kind from lk_user_info,lk_department where lk_user_info.dept_id = lk_department.dept_id and login_name='" . $UserName . "'");if (!$rs->EOF) {if ($rs->fields['login_pwd'] == strtoupper(md5($UserPWD))) {if (($rs->fields['dept_kind'] == 1) || ($rs->fields['dept_kind'] == 2)) {$arr['status'] = 1;$arr['role']=$rs->fields['user_role'];$arr['msg'] = '';$_SESSION['Logined']  =true;$_SESSION['user_id']  =$rs->fields['user_id'];$_SESSION['user_name']=$rs->fields['user_name'];$_SESSION['user_role']=$rs->fields['user_role'];$_SESSION['dept_id']  =$rs->fields['dept_id'];$_SESSION['dept_name']=$rs->fields['dept_name'];} else {$arr['status'] = 0;$arr['role']=0;$arr['msg'] = '用户所在单位没有权限登录!';}} else {$arr['status'] = 0;$arr['role']=0;$arr['msg'] = '登录密码错误,请重新输入!';}} else {$arr['status'] = 0; $arr['role']=0;$arr['msg'] = '用户名称错误,请重新输入!';}echo json_encode($arr);?>

而application.php是qooxdoo的入口文件index.html进行修改得到的,具体内容如下:

<?phpsession_start();if (isset($_SESSION['Logined']) && ($_SESSION['Logined'] == true)) {?><!DOCTYPE html><html><head>  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  <title>林克(秦皇岛)供应链股份有限公司</title>  <script type="text/javascript">window.onload = function() {document.getElementById('DivWaiting').style.visibility = 'hidden';}window.qx ={$$environment : { "UserID"  : "<?php echo $_SESSION['user_id'];   ?>","UserName": "<?php echo $_SESSION['user_name']; ?>","UserRole": "<?php echo $_SESSION['user_role']; ?>","DeptID"  : "<?php echo $_SESSION['dept_id'];   ?>","DeptName": "<?php echo $_SESSION['dept_name']; ?>"}}  </script>  <script type="text/javascript" src="script/mqttws31.js"></script>  <script type="text/javascript" src="script/link.js"></script></head><body bgcolor="#e6ffce"><div id='DivWaiting' style='Z-INDEX: 12000; LEFT: 0px; WIDTH: 100%; POSITION: absolute; TOP: 0px; HEIGHT: 100%'><table width='100%' height='100%'><tr align='center' valign='middle'><td><img src="./resource/link/RLoading.gif"><br><b><font size="2" color="red">正在加载页面,请等待...</font></b></td></tr></table></div></body></html><?php     } else {Header("Location: ./index.html");}?>

在这个文件中使用的php的session时行是否登录的判断,以及登录后使用 $$environment参数将用户用户的有关信息传给qooxdoo系统。在qooxdoo系统中得参数的代码如下:
this.setUserID(qx.core.Environment.get("UserID"));this.setUserName(qx.core.Environment.get("UserName"));this.setDeptID(qx.core.Environment.get("DeptID"));this.setDeptName(qx.core.Environment.get("DeptName"));this.setUserRole(parseInt(qx.core.Environment.get("UserRole")));

0 0
原创粉丝点击