前言

这个其实目的只是为了配合软件用的,昨天帮个朋友写个软件需要这种网络验证的功能,太复杂的没研究过,所以自己写了一个简单的。贴上来共同学习,哪里可以改善欢迎提出。有兴趣的朋友可以参考一下

代码

<?php
header("Content-type: text/html; charset=utf-8");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache");
header("Pragma: no-cache");
date_default_timezone_set("PRC");

//全局变量//
$effect = @$_GET["effect"]; //GET,执行指定动作 1=登陆 2=注册 3=充值 4=生成卡密
$ver = @$_GET["ver"];       //GET,接收软件版本号
$name = @$_GET["name"];     //GET,接收用户名
$pw = @$_GET["pw"];         //GET,接收密码
//$email = @$_GET["email"];   //GET,接收邮箱
$key = @$_GET["key"];       //GET,接收卡密
$day = @$_GET["day"];       //GET,接收卡密天数
$time = date("Y-m-d");      //获取当前时间,用于验证

//数据库//
$mysql = @mysql_connect("localhost","root","123456789");  //服务期地址,数据库账号,数据库密码
$db = @mysql_select_db("demo",$mysql);  //选择要连接的数据库
    
//开始工作//
if($db){
    
    //检查更新
    $update = "SELECT * FROM `update`";     //SQL命令,查询
    $query = mysql_query($update);  //执行SQL命令
    $result = mysql_fetch_array($query);    //储存结果
        if($result['new'] > $ver){
            echo $result['url'];
        }

    //登陆
    if($effect === "1"){
    $login = "SELECT *  FROM `user` WHERE `name` LIKE '".$name."' AND `pw` LIKE '".$pw."'"; //SQL命令,查询
    $query = mysql_query($login);  //执行SQL命令
    $result = mysql_fetch_array($query);    //储存结果
        if($result['name'] == ""){
            ob_end_clean();
            echo '用户不存在或者密码错误';
            exit();
        }elseif($result['time'] <= $time){
            ob_end_clean();
            echo '您的账号已到期,请充值后重试';
            exit();
        }elseif($result['online'] == "1"){
            ob_end_clean();
            echo '该用户正在使用中,请勿重复登陆';
            exit();
        }else{
            $online="UPDATE `user` SET `online` = '1' WHERE `name` = '".$name."'";  //SQL命令,写入用户在线状态
            @mysql_query($online);     //执行SQL命令
            ob_end_clean();
            echo '登陆成功';
            exit();
        }
    }
    
    //注册
    if($effect === "2"){
        $register = "SELECT *  FROM `user` WHERE `name` = '".$name."'";//SQL命令,判断用户名是否存在
        $query = mysql_query($register);  //执行SQL命令
        $result = mysql_fetch_array($query);    //储存结果
            if($result['name'] == ""){
                $register = "INSERT INTO `user` (`name`, `pw`, `time`, `online`) VALUES ('".$name."', '".$pw."', '".$time."', '0');";
                @mysql_query($register);     //执行SQL命令
                ob_end_clean();
                echo '注册成功';
                exit();
            }else{
                ob_end_clean();
                echo '抱歉,这个用户名已经存在';
                exit();
            }
    }
    
    //充值
    if($effect === "3"){
        $recharge = "SELECT *  FROM `key` WHERE `key` = '".$key."'";//SQL命令,判断卡密是否存在
        $query = mysql_query($recharge);  //执行SQL命令
        $result = mysql_fetch_array($query);    //储存结果
            if($result['key'] == ""){
                ob_end_clean();
                echo '抱歉,充值卡密不存在或者错误';
                exit();
            }else{
                $day = $result['day'];//记录卡密天数
                $time = date("Y-m-d",strtotime("+$day day"));      //获取当前时间,用于验证
                @mysql_query("DELETE FROM `key` WHERE `key` = '".$key."'");//删除卡密
                @mysql_query("UPDATE `user` SET `time` = '".$time."' WHERE `name` = '".$name."'");//充值
                ob_end_clean();
                echo '充值成功';
                exit();
            }
    }
    
    //生成卡密
    if($effect === "4"){
        $generate = "SELECT *  FROM `key` WHERE `key` = '".$key."'";//SQL命令,判断卡密是否存在
        $query = mysql_query($generate);  //执行SQL命令
        $result = mysql_fetch_array($query);    //储存结果
            if($result['key'] == ""){
                @mysql_query("INSERT INTO `key` (`key`, `day`) VALUES ('".$key."', '".$day."')");//生成卡密
                ob_end_clean();
                echo '添加充值卡密成功';
                exit();
            }else{
                ob_end_clean();
                echo '抱歉,充值卡密已经存在,请重试';
                exit();
            }
    }

}else{
    echo '服务期维护中,请稍后重试';
}

 ?>

差不多就是这样,数据库的话自己按着代码折腾把...