本帖最后由 nbjsnb 于 2014-09-17 15:54:33 编辑

解决方案 »

  1.   

    PHP点击登录方案实现示例
    //登录页面设置
    <?php session_start(); include("conn/conn.php"); ?>//引入数据库连接
    <form action="enter_ok.php" method="post" name="form1" id="form1" onSubmit="return check_user(this)">//设置表单
     <div id="yonghu"><span>用户名:</span></div>
      <div id="yonghu1"><input id="tb_forum_name" type="text" name="tb_user"  /></div>//用户名输入框
      <div id="mima">密码:</div> 
      <div id="mima1"><input id="tb_passwd1" type="password" name="tb_pass" /></div>
      <div id="yanzhengma">验证码:</div>//密码输入框
      <div id="yanzhengma1"><input id="tb_validate" type="text" name="tb_validate"/></div>
      <div id="tubiao"><?php
       $num=intval(mt_rand(1000,9999));
       for($i=0;$i<4;$i++)
       {
        echo "<img src=images/code/".substr(strval($num),$i,1).".gif>";
       }
    ?>
          <input type="hidden" value="<?php echo $num;?>" name="num" /></div>
      <div id="anniu">
        <input name="imageField" type="submit" id="imageField" value="登陆" src="images/index_1.jpg" />//登录处理程序页
    <?php session_start();
    class check_user{
       var $tb_user;
       var $tb_pass;
      function check_user($x,$y){
        $this->tb_user=$x;
        $this->tb_pass=$y;
       }
       function check_input(){  
         include_once("conn/conn.php");
     $sql=mysql_query("select tb_forum_name from tb_forum_user where tb_forum_name='".$this->tb_user."'",$conn);
     $info=mysql_fetch_array($sql);
     if($info==false){
        echo "<script>alert('对不起,不存在该用户!');history.back();</script>";
        exit;//CodeGo.net/
      }else{ 
        $sql=mysql_query("select tb_forum_name from tb_forum_user where tb_forum_name='".$this->tb_user."' and tb_passwd1='".$this->tb_pass."'",$conn);
        $info=mysql_fetch_array($sql);
        if($info==false){
       echo "<script>alert('对不起,密码输入错误!');history.back();</script>";
       exit;
     }else{ 
                 if($_SESSION["tb_forum_name"]!=""){
      session_unregister("tb_forum_name");
     }   
                 session_register("tb_forum_name");
     
                 $_SESSION["tb_forum_name"]=$this->tb_user; 
         echo "<script>alert('登录成功!');history.back();</script>";
     } 
       } 
           mysql_close($conn);   
       } 
     }
     $chk=new check_user($_POST[tb_user],md5($_POST[tb_pass]),$tb_validate);
     $chk->check_input();
    ?>
      

  2.   

    你这种需要跟硬件结合的建议还是采用C或者是Py这些可以编写脚本的语言去写脚本进行sso单点登录,如果是纯系统的话可以采用接口来进行交互判断。
      

  3.   

    针对你的方案提的建议:
    1、建议Applet+证书的方式
    2、服务器上有个守护程序(C/Python/Java)监听在指定本地端口上(安全原因不要监听外网),每次客户提交登陆请求之后,PHP使用socket通知该守护程序来验证。