【原】实验室签到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和深度学习框架来执行 ...
随机推荐
- 机器学习基石的泛化理论及VC维部分整理(第六讲)
第六讲 第五讲主要讲了机器学习可能性,两个问题,(1)\(E_{in} 要和 E_{out}\) 有很接近,(2)\(E_{in}\)要足够小. 对于第一个假设,根据Hoefding's Inequa ...
- Oralce11 客户端的安装和 PlSql Developer 的配置
关于Oracle11服务器端安装时的配置问题我就不讲了,就是要安装DataBase1和DataBase2. 现在我来讲的是Oralce11 客户端的安装和PlSql的配置问题: 步骤一:选择图示,wi ...
- 深层解析:构建facebook应用商店推荐引擎
Under the Hood: Building the App Center recommendation engine As more apps on Facebook Platform ha ...
- linux命令useradd添加用户详解
1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起始目录,使用权限是超级用户. 2.格式 useradd [-d home] [-s shell] [-c comment] [ ...
- (转)基于即时通信和LBS技术的位置感知服务(三):搭建Openfire服务器+测试2款IM客户端
主要包含4个章节: 1. Java 领域的即时通信的解决方案 2. 搭建 Openfire 服务器 3. 使用客户端测试我们搭建的 Openfire 服务器 4. Smack 和 ASmack 一.J ...
- unity3d学习笔记(十九)--ngui制作3d人物头顶的头像和血条
原地址:http://blog.csdn.net/lzhq1982/article/details/18793479 本系列文章由Aimar_Johnny编写,欢迎转载,转载请标明出处,谢谢. htt ...
- SQL注入file导入常用手段
在注入过程中,如果存在注入点,可以直接导入一句话或者上传页面.过程中我们主要是利用into outfile函数进行上传.此处介绍两种关于into outfile利用的方式. 第一种直接将select内 ...
- PHP 7 值得期待的新特性(上)
这是我们期待已久的 PHP 7 系列文章的第一篇. 或许你已经知道了,我在 PHP 5.0.0 时间轴 提的 RFC (Request For Comments)通过了, PHP 7 成为 PHP 下 ...
- 【leetcode】Palindrome Number (easy)
Determine whether an integer is a palindrome. Do this without extra space. Some hints: Could negativ ...
- (转)eclipse快捷键
Eclipse常用快捷键 Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率.Eclipse中有如下一些和编辑相关的快捷键. 1. [ALT+/] 此快捷键为用户编 ...