表单

<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. iOS9下修改回HTTP模式进行网络请求

    升级为iOS9后,默认请求类型为https,如何使用http进行请求会报错 The resource could not be loaded because the App Transport Sec ...

  2. 提升网站性能之设置gzip

    tomcat如何设置gzip: http://www.tuicool.com/articles/aMRRFre http://blog.csdn.net/xuefeng0707/article/det ...

  3. memcached 在window下的安装与使用

    memcached搭建缓存系统 一.概念 Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提升性能. 二 ...

  4. awk 的一个奇怪异常

    awk: cmd. line:1: (FILENAME=- FNR=192) fatal: print to "standard output" failed (No space ...

  5. [转载]C#中播放背景音乐几种的方法

    最经在写winform程序,其中有用到播放背景音乐 特此收集了一些网上的教程: 1.调用非托管的dll using System.Runtime.InteropServices; //DllImpor ...

  6. PAT-乙级-1026. 程序运行时间(15)

    1026. 程序运行时间(15) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 要获得一个C语言程序的运行时间, ...

  7. Navicat for mysql 远程连接 mySql数据库10061、1045错误问题 (转)

    远程使用Navicat for mysql 客户端软件连接 mySql数据时,连接出现 2003-Can’t connect to MySQL on ’192.168.1.2’(10061)错误时,是 ...

  8. linq集合内部赋值

    linq集合内部赋值 比如将一个列的值,赋值给另一列 有三种方法: 1. e.Result.ToList().ForEach(n => n.IsIntermediarybool = SetIsI ...

  9. Android:Style和Theme

    在Web开发中,Html负责内容,CSS负责表现.同样,在Android开发中,可以使用Theme.Style+UI组件的方式实现内容和形式的分离. Style是针对窗体元素级别的,改变指定控件或者L ...

  10. java:复写equals实例

    class User { String name; int age; /* *比较过程思路: *1.两个对象指向位置相同,那么他们就相等,return后跳出函数,不再往下执行 *2.指向位置不同,有3 ...