登陆界面限制到只允许一台机器在线

在线

<?php
ob_start();
session_start();
class CC{
    private $REFURL="http://www.abc.com";        //登陆成功后转换页面
    private $LoginFLAG=false;                //登陆成功标志
    private $loginFILE="loginmsg.txt";            //信息文件

    function setFlag($flag){
        $this->loginFLAG=$flag;
    }
    function check(){
    global $_POST;
        if(file_exists($this->loginFILE)&& (time()-filemtime($this->loginFILE))<60){//用户登陆存在而且有效
            $info=file($this->loginFILE);
            $username=trim($info[0]);    //已在线的登陆用户名
            $password=trim($info[1]);    //已在线密码(可以不保存)
            $ip     =trim($info[2]);    //已在线IP
            $sid     =trim($info[3]);    //已在线PORT
            if(strcmp($_SESSION[LoginUser],$username)==0){
                if(strcmp($_SESSION['LoginPw'],$password)==0){
                    if(strcmp($_SERVER[REMOTE_ADDR],$ip)==0){
                        if(strcmp(session_id(),$sid)==0){
                            $this->setFlag(true);
                            echo "<h3>您的帐户可以确定是唯一的!</h3>";
                            $cf=fopen($this->loginFILE,"a+");
                            fputs($cf,"\r\na");
                            fclose($cf);
                            echo "<meta http-equiv=refresh content=\"10;url=t.php\">";
                            //echo "<iframe src=\"t.php\" frameborder=0 width=0 height=0></iframe>";
                        }else{
                            echo "不允许帐户在局网上同时登陆.. ".$_SERVER[REMOTE_PORT];
                            $this->LoginFLAG=false;
                        }                
                    }else{
                        echo "不允许使用帐户同时登陆..<br>";
                            $this->LoginFLAG=false;
                    }
                }else{
                    echo "密码错误..<br>";
                    $this->LoginFLAG=false;
                }
            }else{
            //这里验证身份如果正确则
                echo "帐户登陆时发生错误!用户名错误<br><pre>";
            }
        }else{
            if(isset($_POST[LoginUser])){
                $_SESSION[LoginUser]=$_POST[LoginUser];
                $_SESSION[LoginPw]=$_POST[LoginPw];
                $fp=fopen($this->loginFILE,"w");
                $msg=$_POST['LoginUser']."\r\n".$_POST['LoginPw']."\r\n".$_SERVER[REMOTE_ADDR]."\r\n".session_id();;
                fputs($fp,$msg);
                fclose($fp);
            }else{
                $outtime=time()-filemtime($this->loginFILE)-60;
                echo "登陆不存在或您已经超时(".$outtime."秒)...";
            }
        }
    }
    function Wfrom(){
    global $_POST;
    if(!file_exists($this->loginFILE) ||(time()-filemtime($this->loginFILE))>60){        //登陆失败
    echo <<<LOGINFORM
    <Form action="$_SERVER[PHP_SELF]" method="post" name="Loginform">
        <table cellpadding=0 border=0>
        <tr><td>
        用户名:<td><input type="text" name="LoginUser"></span><br>
        <tr><td>密码:<td><input type="password" name="LoginPw"></span><br>
        <tr><td> <td><input type="button" value=" Login " onclick="if(this.form.LoginUser.length*this.form.LoginPw.length!=0){this.form.submit();}else{return false;}">
        </table>
    </form>
LOGINFORM;
    }else{
        echo "已有用户登陆";
    }
    }
}
$D=new CC;
$D->check();
$D->Wfrom();
?>

时间: 2024-10-03 10:57:43

登陆界面限制到只允许一台机器在线的相关文章

hadoop多台机器集群的配置

以前也配置过hadoop集群,但是很久没有重新去倒腾配置的细节,导致这次走了不少弯路.为了让后来的人少走弯路,也给我自己留个提醒,于是就有了这篇文章. 首先配置这个集群主要包括三个部分.三个部分各自都有自己的milestone,可以在配置完之后运行相关的测试来校验是否配置成功. 1.准备工作 这之前最好是预先有了几台相同用户名(要特别注意,对于用户名不同的话ssh的时候还需要用户名的信息.)的VM或者主机.我用的三台VM用户名都是hzm 机器的ip分别为192.168.28.130,192.16

登陆界面要显示密码

  在2012年,我曾介绍过为什么要让大家在登陆应用,特别是移动设备应用时能够看到密码.现在,两年过去了,很多大规模的新设计也出现了,下面我就来概括一下显示密码的重要意义和方法,以及后续的发展趋势. 显示密码意义何在? 密码想来充斥着实用性的问题.由于过度复杂的安全性要求(最低字符数.标点等等)以及输入框的使用不够简便,密码输入经常会让客户反感甚至走人. 大约有82%的人有过忘记密码的经历.企业内部网络服务台所最频繁收到的请求就是恢复密码,而在浏览电子商务类网站时,如果需要先恢复密码,会有75%

asp.net做的登录后总是跳回登陆界面

问题描述 asp.net做的登录后总是跳回登陆界面 登录代码: <div id="loginButton"> <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="images/login.gif" OnClick="ImageButton1_Click" /> <asp:ImageButton ID="

mac登陆界面不显示客人用户解决方法

  mac登陆界面显示"客人用户"这是一个老问题了,不过还是经常会有朋友问到这个问题,今天小编就跟新手朋友分享下解决这个问题的方法吧~问题如下图所示: 其实很简单,大家只需进行一个简单的设置就可以了. 设置方法如下:在系统偏好设置--安全与隐私--通用里面把红圈处勾掉. 但是又有人说不知道在哪里找到这个选项,那么,如下图所示: 在icloud里面,把这个"查找我的Mac"勾掉,这样也可以解决哦! 以上就是mac登陆界面不显示客人用户的解决方法了,但愿能对新入手Mac

求救啊!为什么总是会跳回登陆界面?

问题描述 求救啊!为什么总是会跳回登陆界面? 登录代码: protected void ImageButton1_Click(object sender, ImageClickEventArgs e) { //只写了一个 Response.Redirect("main/111.aspx"); } 解决方案 你的111.aspx有没有再次跳转. 解决方案二: 这一句有问题吗?,, 相关文章 asp.net做的登录后总是跳回登陆界面 easyui跳回登录界面-.net中 easyui在mv

access-求登陆界面代码,vb实现

问题描述 求登陆界面代码,vb实现 数据库是用access做的,用vb做的界面设计,怎么实现登陆界面的啊,只需要登陆和确认. 解决方案 VB的form里面加几个编辑框.几个按钮的事情 代码则需要加一个访问access的实现 随便百度一下都一堆

C#,跪求:退出主程序直接跳到登陆界面,该怎么办?

问题描述 如题所述,把退出程序了,怎么把登陆界面显示出来??谢谢各位大神了 解决方案 解决方案二:不好意思...上述说的有点问题:应该是退出程序了,怎么显示登陆界面?解决方案三:]你这个是不是像QQ的那种切换用户呀,退出当前用户然后显示登录窗,这样即可privatevoidmnuReLogin_Click(objectsender,EventArgse){if(Utility.ShowQuestionMessage("是否切换用户?")==System.Windows.Forms.Di

捕获 Linux 图形化登陆界面的截图

前些日子出于某些原因,我在 ThinkPad 笔记本上重新安装了 Linux Mint,然后发现 Linux Mint 17.2 的登陆界面比之前的要好看不少.为了作为佐证,我需要一张登陆界面的截图. 在日常使用中,我们的截图操作都是在登陆系统之后进行的,比如捕获一个窗口,捕获指定区域,或者捕获整个网页.要给登陆界面截图,那是在登陆之前就要做的操作,这可难倒我了. 之前没有这样的截图需求,这次不妨各种手段都拿来尝试一下. 首先想到的是延时截图,比如在 kscreenshot 设置 10s 之后截

jQuery+Pdo编写login登陆界面_jquery

Jquery是继prototype之后又一个优秀的Javascript库.而且它是轻量级的js库.共有两个版本的 jQuery 可供下载:一份是精简过的,另一份是未压缩的(供调试或阅读).这两个版本都可从 jQuery.com 下载.所以开发学习建议使用压缩的. 当然啦,除了直接下载jquery.js文件外,还可以在html头中插入Google或者Microsoft的CDN来在网页加载时直接从网上获取库文件支持. 使用 Google 的 CDN: <head> <script type=