Arduino webserver issue

My arduino due needs to reset after every one-two days. Problem I think persists with webserver code. I am not expert but beginner for arduino web server. here is my code below-
void htmlcode() {
Serial.println("html code.....");
//client = server.available();
// client.stop();
client = server.available();
if (client) {
Serial.println("new client");
// an http request ends with a blank line
boolean currentLineIsBlank = true;

while (client.connected()) {

  if (client.available()) {
    char c = client.read();
    if (req_index < (REQ_BUF_SZ - 1)) {
      htp_req[req_index] = c;  // save HTTP request character
      req_index++;
    }

    if (bufferSize < 500) header[bufferSize++] = c;

    if (c == '\n' && currentLineIsBlank) {

      //parse headers
      Serial.println(header);
      //HTTP_req = client.readStringUntil('\r');
      //client.flush();
      
      //button VVVV--------------
      if (strstr(header, "YWRtaW46YWRtaW4=") != NULL) {
        client.println(F("HTTP/1.1 200 OK"));
        client.println(F("Content-Type: text/html"));
        // client.println(""));
        client.println(F("Connection: close"));  // the connection will be closed after completion of the response
        //client.println("Refresh: 120");  // refresh the page automatically every 90 sec
        client.println();
        if (strstr(header, "ajaxrefresh") != NULL) {
          // read switch state and analog input

          ajaxRequest(client);
          // ajaxRequest1(client);
          //break;
        }

        else {
          ////command-----------------------------------------
          //button VVVV--------------
          if (StrContains(header, "/TX=ON")) {
            digitalWrite(22, LOW);
            delay(300);
            digitalWrite(22, HIGH);
            value = HIGH;
            value1 = LOW;


          }

           else if (StrContains(header, "/PRE2=ON")) {
            digitalWrite(29, LOW);
            delay(200);
            digitalWrite(29, HIGH);
            value3 = HIGH;
            value2 = LOW;

          }  else if (StrContains(header, "/DG=ON")) {
            digitalWrite(41, LOW);

            value10 = HIGH;

          } else if (StrContains(header, "/DG=OFF")) {

            digitalWrite(42, HIGH);
            value10 = LOW;
          }

          client.println("");
          client.println(F("<!DOCTYPE HTML>"));
          client.println(F("<html>"));

          client.println(F("<head>"));
          client.println(F(" <title>TEST</title>"));
          client.println(F("<meta charset='utf-8'>"));
          //client.println("<meta charset='utf-8' http-equiv='refresh' content='120; url=http://'>");
          client.println(F("<meta name='viewport' content='width=device-width, initial-scale=1.0'>"));
          client.println(F(" <link rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css'>"));
          client.println(F(" <script src='https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js'></script>"));
          client.println(F(" <script src='https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js'></script>"));
          client.println(F(" <script src='https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js'></script>"));
          client.println(F("<script src='https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js'></script>"));


          //ajax
          client.println(F("<script>window.setInterval(function(){"));
          client.println(F("nocache = \"&nocache=\" + Math.random() * 1000000;"));
          client.println(F("var request = new XMLHttpRequest();"));
          client.println(F("request.onreadystatechange = function() {"));
          client.println(F("if (this.readyState == 4) {"));
          client.println(F("if (this.status == 200) {"));
          client.println(F("if (this.responseText != null) {"));
          client.println(F("document.getElementById(\"analoge_data\").innerHTML = this.responseText;"));
          client.println(F("}}}}"));
          client.println(F("request.open(\"GET\", \"ajaxrefresh\" + nocache, true);"));
          client.println(F("request.send(null);"));
          client.println(F("}, 2000);"));
          client.println(F("</script>"));
          //ajax deleted


          client.println(F("<style>"));
          client.println(F(".anlgpar { height: 300px; background: antiquewhite; }"));
          client.println(F(".anlgbtn { height: 570px; background: antiquewhite;padding-left:20px; }"));
          client.println(F(".binpar { height: 155px; background: antiquewhite; padding-left:10px; }"));
          client.println(F(".sidepanel { height: 200px;background: antiquewhite;padding-left: 1px;width:150px;color: darkslategray;}"));
          client.println(F(".sidepanel1 { height: 170px;background: antiquewhite;padding-left: 15px;padding-top:5px;width:150px;font-weight: bold;color: darkslategray;}"));
          client.println(F(".width { width: 45px; text-align: center;font-weight: bold;}"));
          client.println(F(".widthbin { width: 30px; text-align: center;font-weight: bold; }"));
          client.println(F(".audioimg { padding-top: 20px;padding-left: 20px;height: 100px; background: antiquewhite; }"));
          client.println(F(".Temppanel { padding-left: 20px;height: 120px;width:150px;background: antiquewhite; }"));
          client.println(F(".leftpanel { height: 420px; background: antiquewhite;font-weight: bold;padding-left: 30px; }"));
          client.println(F(".dateclass { font-weight: bold;color: darkslategray;}"));
          client.println(F("</style>"));
          client.println(F("</head>"));

          client.println(F("<body>"));

          client.println(F("<div class='jumbotron text-center' style='margin-bottom:15px;margin-top:15px;background-color:dodgerblue;color:white'>"));
          client.println(F("<h2>test</h2>"));
          client.println(F("</div>"));
        

          client.println("<div class='container' style='margin-top:30px'>");
          client.println("<div class='row'>");
          client.println("<div class='col-sm-2'>");
          client.println("<h6>Controls</h6>");

          client.println("<div class='anlgbtn'>");
          client.println("<br>");


          if (value == HIGH) {
            client.println("<a href=\"/TX=ON\"\"><button style='width:120px;'>TX ON </button></a>");
          } else {
            client.println("<a href=\"/TX=ON\"\"><button style='width:120px;'>TX ON </button></a>");
          }
          client.println("<br/><br/>");
                        if (value == HIGH) {
            client.println("<a href=\"/PRE1=ON\"\"><button style='width:120px;'>PWR PRESET 1</button></a>");
          } else {
            client.println("<a href=\"/PRE1=ON\"\"><button style='width:120px;'>PWR PRESET 1</button></a>");
          }
          client.println("<br/><br/>");
                        client.println("<br/><br/>");
          if (value10 == HIGH) {
            client.println("<a href=\"/DG=ON\"\"><button style='width:60px;'>DG ON</button></a>");
            client.println("<a href=\"/DG=OFF\"\"><button style='width:60px;'>DG OFF</button></a>");
          } else {
            client.println("<a href=\"/DG=ON\"\"><button style='width:60px;'>DG ON</button></a>");
            client.println("<a href=\"/DG=OFF\"\"><button style='width:60px;'>DG OFF</button></a>");
          }

          //control

          client.println("</div>");

          client.println("</div>");

          client.println("<div class='col-sm-4' id='analoge_data'>");

          //ajax content

          client.println("</div>");

          client.println("<div class='col-sm-2'>");
          client.println("<h6><p id='datedisp' class='dateclass'></p></h6>");

          client.println("<script>");
          client.println("var d = new Date();");
          client.println("document.getElementById('datedisp').innerHTML = d.toDateString();");
          client.println("</script>");
          client.println("<div class='Temppanel'>");
          client.println("<canvas id='canvas' width='90' height='110' style='background-color:antiquewhite'></canvas>");
          
          client.println("</div>");
          client.println("<br>");


          client.println("<h6><b>Details</b></h6>");



          client.println("<div class='sidepanel'>");
          client.println("</br>");
          client.println("<b>");

                                     client.println("</div>");
          client.println("<br />");
          client.println("<div class='sidepanel1'>");
          //client.println("<br />");
          client.println("<br />");
         
          client.println("</div>");
          client.println("</div>");

          //----
          client.println("<div class='col-sm-4'>");
                       client.println("<div class='audioimg'>");
                       client.println("</div>");
          client.println("<br />");
          client.println("<h6>Tst</h6>");

          client.println("<div class='leftpanel'>");
           client.println("<br />");
                                    client.println("</div>");
          client.println("</div>");
          //----
          client.println("</div>");
          client.println("</div>");
          client.println("<br />");
          client.println("<div class='jumbotron text-center' style='background-color:dodgerblue;color:white'>");
          client.println("<h5>test</h5>");
          client.println("</div>");
          client.println("</body>");
          client.println("</html>");
          client.println();
          //break;
        }
      }

      //next user//////////
      
      else if (strstr(header, "Z3Vlc3Q6Z3Vlc3Q=") != NULL) {
        client.println(F("HTTP/1.1 200 OK"));
        client.println(F("Content-Type: text/html"));
        // client.println(""));
        client.println(F("Connection: close"));  // the connection will be closed after completion of the response
        //client.println("Refresh: 120");  // refresh the page automatically every 90 sec
        client.println();
        if (strstr(header, "ajaxrefresh") != NULL) {
          // read switch state and analog input

          ajaxRequest(client);
          // ajaxRequest1(client);
          //break;
        }

        else {
          ////command-----------------------------------------


          client.println("");
          client.println(F("<!DOCTYPE HTML>"));
          client.println(F("<html>"));

          client.println(F("<head>"));
          client.println(F(" <title>test</title>"));
          client.println(F("<meta charset='utf-8'>"));
          //client.println("<meta charset='utf-8' http-equiv='refresh' content='120; url=http://'>");
          client.println(F("<meta name='viewport' content='width=device-width, initial-scale=1.0'>"));
          client.println(F(" <link rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css'>"));
          client.println(F(" <script src='https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js'></script>"));
          client.println(F(" <script src='https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js'></script>"));
          client.println(F(" <script src='https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js'></script>"));
          client.println(F("<script src='https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js'></script>"));


          //ajax
          client.println(F("<script>window.setInterval(function(){"));
          client.println(F("nocache = \"&nocache=\" + Math.random() * 1000000;"));
          client.println(F("var request = new XMLHttpRequest();"));
          client.println(F("request.onreadystatechange = function() {"));
          client.println(F("if (this.readyState == 4) {"));
          client.println(F("if (this.status == 200) {"));
          client.println(F("if (this.responseText != null) {"));
          client.println(F("document.getElementById(\"analoge_data\").innerHTML = this.responseText;"));
          client.println(F("}}}}"));
          client.println(F("request.open(\"GET\", \"ajaxrefresh\" + nocache, true);"));
          client.println(F("request.send(null);"));
          client.println(F("}, 2000);"));
          client.println(F("</script>"));
          //ajax deleted


          client.println(F("<style>"));
          client.println(F(".anlgpar { height: 300px; background: antiquewhite; }"));
          client.println(F(".anlgbtn { height: 570px; background: antiquewhite;padding-left:20px; }"));
          client.println(F(".binpar { height: 155px; background: antiquewhite; padding-left:10px; }"));
          client.println(F(".sidepanel { height: 200px;background: antiquewhite;padding-left: 4px;width:235px;color: darkslategray;}"));
          client.println(F(".sidepanel1 { height: 170px;background: antiquewhite;padding-left: 25px;padding-top:5px;width:235px;font-weight: bold;color: darkslategray;}"));
          client.println(F(".width { width: 45px; text-align: center;font-weight: bold;}"));
          client.println(F(".widthbin { width: 30px; text-align: center;font-weight: bold; }"));
          client.println(F(".audioimg { padding-top: 20px;padding-left: 20px;height: 100px; background: antiquewhite; }"));
          client.println(F(".Temppanel { padding-left: 20px;height: 120px;width:235px;background: antiquewhite; }"));
          client.println(F(".leftpanel { height: 420px; background: antiquewhite;font-weight: bold;padding-left: 30px; }"));
          client.println(F(".dateclass { font-weight: bold;color: darkslategray;}"));
          client.println(F("</style>"));
          client.println(F("</head>"));

          client.println(F("<body>"));

          client.println(F("<div class='jumbotron text-center' style='margin-bottom:15px;margin-top:15px;background-color:dodgerblue;color:white'>"));
          client.println(F("<h2>test</h2>"));
          client.println(F("</div>"));



          client.println("<div class='container' style='margin-top:30px'>");
          client.println("<div class='row'>");


          client.println("<div class='col-sm-4' id='analoge_data'>");

          //ajax content




          client.println("</div>");





          client.println("<div class='col-sm-3'>");
          client.println("<h6><p id='datedisp' class='dateclass'></p></h6>");

          client.println("<script>");
          client.println("var d = new Date();");
          client.println("document.getElementById('datedisp').innerHTML = d.toDateString();");
          client.println("</script>");
          client.println("<div class='Temppanel'>");
          client.println("<canvas id='canvas' width='90' height='110' style='background-color:antiquewhite'></canvas>");
                        client.println("</div>");
          client.println("<br>");


          client.println("<h6><b>TX Details</b></h6>");



          client.println("<div class='sidepanel'>");
          client.println("</br>");
          client.println("<b>");

          client.println("<p>");



          
          client.println("</p>");
          //changeover end
                        client.println("</div>");
          client.println("<br />");
          client.println("<div class='sidepanel1'>");
          
          client.println("</div>");
          client.println("</div>");

          //----
          client.println("<div class='col-sm-5'>");
                        client.println("<br />");
          client.println("<h6>Tx</h6>");

          client.println("<div class='leftpanel'>");
                                     client.println("</div>");
          client.println("</div>");
          //----
          client.println("</div>");
          client.println("</div>");
          client.println("<br />");
          client.println("<div class='jumbotron text-center' style='background-color:dodgerblue;color:white'>");
          client.println("<h5>test</h5>");
          client.println("</div>");
          client.println("</body>");
          client.println("</html>");
          client.println();
          //break;
        }
      }

      /////next user///////

      else {
        // wrong user/pass
        client.println("HTTP/1.1 401 Unauthorized");
        client.println("WWW-Authenticate: Basic realm=\"Secure\"");
        client.println("Content-Type: text/html");
        client.println();
        client.println("<html>Text to send if user hits Cancel button</html>");  // really need this for the popup!
      }

      bufferSize = 0;
      StrClear(header, 500);
      Serial.print(HTTP_req);

      break;
    }
    if (c == '\n') {
      // you're starting a new line
      currentLineIsBlank = true;
    } else if (c != '\r') {
      // you've gotten a character on the current line
      currentLineIsBlank = false;
    }
  }
}
// give the web browser time to receive the data
delay(1);
// close the connection:
client.stop();

Serial.println("client disconnected");

}
}

It works fine but after one to two days arduino needs to be reset. I want it to run 24x7. Please help.

Welcome to the forum!

Although the Due has more memory, I would still recommend surrounding the remaining .println() strings with F() .

Thank you..I had tried that and in latest code all strings are used with F() macro but it doesn't work and again it want reset after 1 day

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.