使用ai thinker esp32-cam制作一个局域网可登录服务器(网页控制esp32响应)----自动车之网页操控

代码更改WiFi账号密码后,写入ai thinker esp32-cam 板即可运行。登录调试串口输出的IP地址即可

#include <WiFi.h>
#include <WiFiClient.h>
#include <WebServer.h>

const char* ssid     = "iamMT";
const char* password = "meet2009";

WebServer server(80);

//Check if header is present and correct 检查收割台是否存在并正确
bool is_authentified() {    //authentified 认证的
  Serial.println("Enter is_authentified");
  if (server.hasHeader("Cookie")) {
    Serial.print("Found cookie: ");
    String cookie = server.header("Cookie");
    Serial.println(cookie);
    if (cookie.indexOf("ESPSESSIONID=1") != -1) {
      Serial.println("Authentification Successful");
      return true;
    }
  }
  Serial.println("Authentification Failed");
  return false;
}

//login page, also called for disconnect 登录页面,也称为断开连接
void handleLogin() {  //第一个网页显示及事件响应函数
  String msg = " \t\t";String msg_ = " \t\t";
  if (server.hasHeader("Cookie")) {   //网页请求事件判断
    Serial.print("Found cookie: ");
    String cookie = server.header("Cookie");
    Serial.println(cookie);
  }
  if (server.hasArg("DISCONNECT")) {    //点击超链接判断值
    Serial.println("Disconnection");
    server.sendHeader("Location", "/login");//定位到登录界面
    server.sendHeader("Cache-Control", "no-cache");//清空文本框
    server.sendHeader("Set-Cookie", "ESPSESSIONID=0");
    server.send(301);//是用于在 Web 服务器上发送一个 HTTP 301 响应的代码。HTTP 301 响应表示页面已被永久移动到另一个位置,浏览器会自动跳转到新位置
    return;
  }
  if(server.hasArg("SUBMIT")){ //登录按钮事件判断
    if (server.hasArg("USERNAME") && server.hasArg("PASSWORD")) {
      if (server.arg("USERNAME") == "admin" &&  server.arg("PASSWORD") == "admin") {    //server.arg("PASSWORD")获取文本框值
        server.sendHeader("Location", "/");   //定位到主界面
        server.sendHeader("Cache-Control", "no-cache");
        server.sendHeader("Set-Cookie", "ESPSESSIONID=1");
        server.send(301);//是用于在 Web 服务器上发送一个 HTTP 301 响应的代码。HTTP 301 响应表示页面已被永久移动到另一个位置,浏览器会自动跳转到新位置
        Serial.println("Log in Successful");
        return;
      }
      msg = "Wrong username/password! try again.";
      Serial.println("Log in Failed");      //调试串口显示
    }
  }
  if(server.hasArg("SUBMIT_test")){ //异登录按钮事件判断
    if (server.hasArg("USERNAME") && server.hasArg("PASSWORD")) {
      if (server.arg("USERNAME") == "admin" &&  server.arg("PASSWORD") == "admin") {    //server.arg("PASSWORD")获取文本框值
        server.sendHeader("Location", "/test");   //定位到/test界面
        server.sendHeader("Cache-Control", "no-cache");
        server.sendHeader("Set-Cookie", "ESPSESSIONID=1");
        server.send(301);//是用于在 Web 服务器上发送一个 HTTP 301 响应的代码。HTTP 301 响应表示页面已被永久移动到另一个位置,浏览器会自动跳转到新位置
        Serial.println("Log in Successful");
        return;
      }
      msg_ = "账号/密码错误,请重新输入!";
      Serial.println("Log in Failed");      //调试串口显示
    }
  }
  String content = "<html>\n<head>\n<meta  charset='UTF-8'>\n</head>\n";
  content += "<body>\n<form action='/login' method='POST'><p style = 'font-size: 32px;'>To log in, please use : admin/admin<br>\n";//第一行文本
  content += "User:<input type='text' name='USERNAME' placeholder='user name' style='width: 200px; height: 50px;font-size: 32px;&
  • 26
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值