【原】实验室签到PHP版本
表单
<html>
<body>
<h1>实验室自动签到测试</h1>
<h2>输入学号和登录密码(建议自己改过密码后再来录入您的数据)</h2>
<form action="mydb.php" method="post">
学号: <input type="text" name="studentid" />
登录密码: <input type="text" name="pw" />
<input type="submit" value="OK" />
</form> </body>
</html>
数据库mydb.php
<html>
<body>
<?php
$host = "localhost";
$user = "test";
$pass = "123456";
$db = "mydb";
function execute_query($query) { $r = mysql_query($query); if (!$r) {
echo "Cannot execute query: $query\n";
trigger_error(mysql_error());
} else {
echo "Query: $query executed\n";
}
} @$r = mysql_connect($host, $user, $pass); if (!$r) {
echo "Could not connect to server\n";
trigger_error(mysql_error(), E_USER_ERROR);
} else {
//echo "Connection established\n";
} $r2 = mysql_select_db($db);
if (!$r2) {
echo "Cannot select database\n";
trigger_error(mysql_error(), E_USER_ERROR);
} else {
//echo "Database selected\n";
}
$query = sprintf("INSERT INTO lab VALUES('%s','%s')",mysql_real_escape_string($_POST["studentid"]),$_POST["pw"]);
//echo $query;
@execute_query($query);
mysql_close(); ?>
</body>
</html>
执行签到签离 loginandout.php
<?php
//签到签离的主要函数$qingdao=1的时候执行签到,为0时执行签离
function lablogin( $user, $password ,$qingdao=1)
{
if ( empty( $user ) || empty( $password ) )
{
return 0;
} // 登录
$ch = curl_init();
define( "COOKIEJAR", tempnam( "/tmp", "cookie" ) );
$url = 'http://www.buptcnc.cn/login/login';
$post_data = 'user.VUserId='.$user.'&user.VUserPassword='.$password.'&x=24&y=16';
curl_setopt( $ch, CURLOPT_REFERER, "http://www.buptcnc.cn/login/login" );
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt( $ch, CURLOPT_COOKIEJAR, COOKIEJAR );
curl_setopt( $ch, CURLOPT_TIMEOUT, 500 );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt( $ch, CURLOPT_USERAGENT, USERAGENT );
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
define( "USERAGENT", $_SERVER['HTTP_USER_AGENT'] );
curl_setopt($ch, CURLOPT_POST, 1); $output = curl_exec($ch);
curl_close($ch);
//echo $output;
// 签到
$urlqingdao='http://10.104.5.63/LabManage/index/addattendance?vStuId='.$user;
$curl2 = curl_init();
curl_setopt($curl2, CURLOPT_URL,$urlqingdao);
curl_setopt($curl2, CURLOPT_HEADER, false);
curl_setopt($curl2, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl2, CURLOPT_COOKIEFILE, COOKIEJAR);
// $content = curl_exec($curl2); // 签离
$urlqingli='http://10.104.5.63/LabManage/index/addattendanceleave.action?vStuId='.$user;
$curl3 = curl_init();
curl_setopt($curl3, CURLOPT_URL,$urlqingli);
curl_setopt($curl3, CURLOPT_HEADER, false);
curl_setopt($curl3, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl3, CURLOPT_COOKIEFILE, COOKIEJAR);
// $content = curl_exec($curl3); if ($qingdao) {
$content = curl_exec($curl2);//$qingdao为真时执行签到,为假时执行签离
}else{
$content = curl_exec($curl3);
} }
$host = "localhost";
$user = "test";
$pass = "123456";
$db = "mydb"; $r = mysql_connect($host, $user, $pass); if (!$r) {
echo "Could not connect to server\n";
trigger_error(mysql_error(), E_USER_ERROR);
} else {
echo "Connection established\n";
} $r2 = mysql_select_db($db); if (!$r2) {
echo "Cannot select database\n";
trigger_error(mysql_error(), E_USER_ERROR);
} else {
echo "Database selected\n";
} $query = "SELECT * FROM lab"; $rs = mysql_query($query); if (!$rs) {
echo "Could not execute query: $query";
trigger_error(mysql_error(), E_USER_ERROR);
} else {
echo "Query: $query executed\n";
} while ($row = mysql_fetch_assoc($rs)) {
// echo $row['Id'] . " " . $row['Name'] . " " . $row['Price'] . "\n";
$hour=date("H");
if (in_array($hour,array(8,9,13,14))) {
// echo $row['stdId']."开始签到".$row['pw']; echo $row['stdId']."开始签到"."\n";
lablogin($row['stdId'],$row['pw'],'1');//执行签到 }else {
// echo $row['stdId']."开始签离".$row['pw']; echo $row['stdId']."开始签离"."\n";
lablogin($row['stdId'],$row['pw'],'0');//执行签离 } }
mysql_close();
linux crontab:
* * - /usr/bin/php /var/www/loginandout.php * * - /usr/bin/php /var/www/loginandout.php * * - /usr/bin/php /var/www/loginandout.php
* * - /usr/bin/php /var/www/loginandout.php
【原】实验室签到PHP版本的更多相关文章
- 007_项目制作拍摄视频篇之_《基于ARM与ZigBee的实验室签到系统》
研究的背景和意义: 随着社会生活节奏的加快,科技日新月异,信息更新迅速,人们之间的交流也变得越来越频繁,社会群体乃至政府之间的交流也朝着轻松.快速.容易管理和控制的方向发展,这种信息交流方式已经逐步得 ...
- Windows下升级Python3.7.7后(原Python3.6.2版本)如何切换Python版本
笔者:风起怨江南 出处:https://www.cnblogs.com/mengjinxiang 笔者原创,文章欢迎转载,如果喜欢请点赞+关注,谢谢! 问题:window系统下,如果升级了最新的Pyt ...
- Linux实战教学笔记03:操作系统发展历程及系统版本选择
标签(空格分隔): Linux实战教学笔记-陈思齐 第1章 Linux简介 1.1 什么是操作系统? 简单讲:操作系统就是一个人与计算机硬件的中介. 操作系统,英文名称Operating System ...
- react和redux版本不匹配
1.页面报错Cannot read property 'shape' of undefined 2. 原因为:react版本与react-redux版本不匹配. 1.package.json文件修改该 ...
- 笔记 : WampServe加装PHP版本(7.2.3)为例
1.由于正在学习Laravel框架,服务器wamp,Composer已搭建完成,但在安装laravel installer之后使用laravel new blog,报错为"This pack ...
- ASP.NET Core 3.0 实战:构建多版本 API 接口
第一次在博客写分享,请多多捧场,如有歧义请多多包含! 因为业务需求发展需要,所以API接口的变更升级是必不可少的事情,而原有的接口是不可能马上停止使用的.例如:Login接口为例,1.0版本之返回用户 ...
- SOAP 版本可能不匹配: 出现意外的 Envelope 命名空间 http://schemas.xmlsoap.org/wsdl/
原错误描述:SOAP 版本可能不匹配: 出现意外的 Envelope 命名空间 http://schemas.xmlsoap.org/wsdl/.应为 http://schemas.xmlsoap.o ...
- mybatis部分版本异常invalid comparison: java.util.Date and java.lang.String
严重: Servlet.service() for servlet [spring] in context with path [] threw exception [Request processi ...
- [AI] 切换cuda版本的万金油
1. 环境 ubuntu16.04 GTX1080Ti x 4 nvidia-418 cuda-10.1 pytorch1.0.0 目标:在最新的显卡驱动下,使用不同版本的cuda和深度学习框架来执行 ...
随机推荐
- Jplayer(转)
Jplayer必须要加载 1.样式 jplayer.blue.monday.css 2.jq jquery.1.6.2.min.js 当前最新版本为1.6.2 3.jplayer的js jquery ...
- 在openwrt上初体验PostgreSQL数据库
要求 请确保在你的路由器shell 中有以下这些命令 adduser, deluser, addgroup, delgroup, su . 还需要熟悉su,chown ,opkg,mkdir,服务操作 ...
- 基于jquery中children()与find()的区别介绍
本篇文章介绍了,基于jquery中children()与find()的区别,需要的朋友参考下 .children(selector) 方法是返回匹配元素集合中每个元素的所有子元素(仅儿子辈).参数可选 ...
- PAT-乙级-1039. 到底买不买(20)
1039. 到底买不买(20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 小红想买些珠子做一串自己喜欢的珠串 ...
- 技术贴 本地代码与svn关联教程 svn upgrade问题解决
背景: 以前从SVN上下载了项目源码,可是SVN抽风了,死活不显示我修改了哪些代码 自己从别人机器上搞来了项目源码,没有svn版本控制,但是svn上面有这些源码 如上两种,我想关联一下,把我本地的代码 ...
- SQL注入中的WAF绕过技术
目录 1.大小写绕过 2.简单编码绕过 3.注释绕过 4.分隔重写绕过 5.Http参数污染(HPP) 6.使用逻辑运算符 or /and绕过 7.比较操作符替换 8.同功能函数替换 9.盲注无需or ...
- DIY时钟类--广州百田笔试之一
2014.05.30 武汉华科大活 题目:(原题不记得,大概回忆)用户输入一个时间,输出下一个时间 这个小题看似不难,实际处理起来对date的处理稍微繁琐,每月有30,31,28,29(闰年的判断)天 ...
- codeforces #313 div1 A
捕获一只野生大水题! 首先我们知道边长为L的正三角形含有边长为1的小正三角形为L^2个 那么我们可以通过在六边形的正上,左下,右下补充正三角形使得原图形变成正三角形 然后再将补充的减去即可 #incl ...
- iOS开发--使用RSA加密
在iOS中使用RSA加密解密,需要用到.der和.p12后缀格式的文件,其中.der格式的文件存放的是公钥(Public key)用于加密,.p12格式的文件存放的是私钥(Private key)用于 ...
- Android:requestWindowFeature应用程序窗体显示状态操作
注意requestWindowFeature必须在 setContentView()之前调用. 1.DEFAULT_FEATURES:系统默认状态,一般不需要指定 2.FEATURE_CONTEXT_ ...