前言
这个其实目的只是为了配合软件用的,昨天帮个朋友写个软件需要这种网络验证的功能,太复杂的没研究过,所以自己写了一个简单的。贴上来共同学习,哪里可以改善欢迎提出。有兴趣的朋友可以参考一下
代码<?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 '服务期维护中,请稍后重试';
}
?>
差不多就是这样,数据库的话自己按着代码折腾把...