表单

<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版本的更多相关文章

  1. 007_项目制作拍摄视频篇之_《基于ARM与ZigBee的实验室签到系统》

    研究的背景和意义: 随着社会生活节奏的加快,科技日新月异,信息更新迅速,人们之间的交流也变得越来越频繁,社会群体乃至政府之间的交流也朝着轻松.快速.容易管理和控制的方向发展,这种信息交流方式已经逐步得 ...

  2. Windows下升级Python3.7.7后(原Python3.6.2版本)如何切换Python版本

    笔者:风起怨江南 出处:https://www.cnblogs.com/mengjinxiang 笔者原创,文章欢迎转载,如果喜欢请点赞+关注,谢谢! 问题:window系统下,如果升级了最新的Pyt ...

  3. Linux实战教学笔记03:操作系统发展历程及系统版本选择

    标签(空格分隔): Linux实战教学笔记-陈思齐 第1章 Linux简介 1.1 什么是操作系统? 简单讲:操作系统就是一个人与计算机硬件的中介. 操作系统,英文名称Operating System ...

  4. react和redux版本不匹配

    1.页面报错Cannot read property 'shape' of undefined 2. 原因为:react版本与react-redux版本不匹配. 1.package.json文件修改该 ...

  5. 笔记 : WampServe加装PHP版本(7.2.3)为例

    1.由于正在学习Laravel框架,服务器wamp,Composer已搭建完成,但在安装laravel installer之后使用laravel new blog,报错为"This pack ...

  6. ASP.NET Core 3.0 实战:构建多版本 API 接口

    第一次在博客写分享,请多多捧场,如有歧义请多多包含! 因为业务需求发展需要,所以API接口的变更升级是必不可少的事情,而原有的接口是不可能马上停止使用的.例如:Login接口为例,1.0版本之返回用户 ...

  7. SOAP 版本可能不匹配: 出现意外的 Envelope 命名空间 http://schemas.xmlsoap.org/wsdl/

    原错误描述:SOAP 版本可能不匹配: 出现意外的 Envelope 命名空间 http://schemas.xmlsoap.org/wsdl/.应为 http://schemas.xmlsoap.o ...

  8. mybatis部分版本异常invalid comparison: java.util.Date and java.lang.String

    严重: Servlet.service() for servlet [spring] in context with path [] threw exception [Request processi ...

  9. [AI] 切换cuda版本的万金油

    1. 环境 ubuntu16.04 GTX1080Ti x 4 nvidia-418 cuda-10.1 pytorch1.0.0 目标:在最新的显卡驱动下,使用不同版本的cuda和深度学习框架来执行 ...

随机推荐

  1. IOS项目集成ShareSDK实现第三方登录、分享、关注等功能(备用)

    (1)官方下载ShareSDK iOS 2.8.8,地址:http://sharesdk.cn/ (2)根据实际情况,引入相关的库,参考官方文档. (3)在项目的AppDelegate中一般情况下有三 ...

  2. ssh scp访问ipv6地址

    从这里学来的.http://blog.mattandanne.org/2012/01/sftpscp-and-ipv6-link-local-addresses.html当采用ipv6的地址去连接另外 ...

  3. Delphi XE5 android 获取电池电量

    uses AndroidAPI.JNI.GraphicsContentViewText, AndroidAPI.JNI.JavaTypes, AndroidAPI.JNI.OS; function B ...

  4. 团体程序设计天梯赛-练习集L1-020. 帅到没朋友

    L1-020. 帅到没朋友 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为 ...

  5. 团体程序设计天梯赛-练习集L1-018. 大笨钟

    L1-018. 大笨钟 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜 ...

  6. CSRF之攻击与防御

    0x01 什么是CSRF攻击 CSRF是Cross Site Request Forgery的缩写(也缩写为XSRF),直译过来就是跨站请求伪造的意思,也就是在用户会话下对某个CGI做一些GET/PO ...

  7. Unity3d大会的部分总结

    原地址:http://blog.csdn.net/sgnyyy/article/details/23775219 一.项目开发,管理和发布策略 1.       四大准则 a.       美术的资源 ...

  8. HDU4628+状态压缩DP

    /* 状态压缩DP dp[ i ]:达到i状态的最小step. 题意:每次可以去掉一个回文串,求最少几步能取完. */ #include<stdio.h> #include<stri ...

  9. linux xxd 命令

    http://www.cnblogs.com/openix/archive/2012/04/23/2466320.html xxd -i dht.jpg dht.h

  10. 212. Word Search II

    题目: Given a 2D board and a list of words from the dictionary, find all words in the board. Each word ...