Problema login arduino ethernet

PaoloP:
Si ho visto che la libreria è stata spostata su GitHub --> GitHub - sirleech/Webduino: Arduino WebServer library
Ho compilato e caricato l'esempio sull'autenticazione di base e funziona.
Adesso bisogna capire come creare le varie pagine. :wink:

Sto provando a unire i 2 codici questo: GitHub - sirleech/Webduino: Arduino WebServer library
e uno che ho modificato con webduino per accendere e spegnere tre led, provandoli uno alla volta funzionano, la mia intenzione
era unire i due codici in modo di avere autenticazione e gestione dei led, ma quando faccio la verifica ho sempre qualche
errore, spesso sulle parentesi graffe.

Questo è il codice per i led:

Codice di esempio:
#include <Ethernet.h>
#include <SPI.h>
#include <WebServer.h> //libreria webduino
 
//variabili statiche per il mac address e lìip address
static byte mac_Add[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
//cambiare l'ip in funzione della propria rete
static byte ip_Add[] = {
  192, 168, 1, 220 };
//creazione oggetto Webduino
WebServer webserver("", 80);
 
//Variabili booleane che memorizzano
//lo stato delle uscite collegate ai relè
boolean Rele1 = false;
boolean Rele2 = false;
boolean Rele3 = false;
 
//=============================================================================
//funzione pagina Start
void Start(WebServer &server, WebServer::ConnectionType type,
           char *url_param, bool param_complete)
{
  //restituisce al browser l'intestazione http 200 OK
  server.httpSuccess();
 
  //gestisco il tipo di richiesta HEAD
  if (type != WebServer::HEAD)
  {
    String s = "";
 
     if (param_complete == true)
    {
      s = url_param;
 
      if ( s == "R1=ON")
      {
        Rele1 = true;
        digitalWrite(3, HIGH);
      }
      else if ( s == "R1=OFF")
      {
        Rele1 = false;
        digitalWrite(3, LOW);
      }
 
      if ( s == "R2=ON")
      {
        Rele2 = true;
        digitalWrite(5, HIGH);
      }
      else if ( s == "R2=OFF")
      {
        Rele2 = false;
        digitalWrite(5, LOW);
      }
 
      if ( s == "R3=ON")
      {
        Rele3 = true;
        digitalWrite(6, HIGH);
      }
      else if ( s == "R3=OFF")
      {
        Rele3 = false;
        digitalWrite(6, LOW);
      }
    }
 
    //gestisco la pagina html in base allo stato delle uscite di Arduino
    P(htmlHead) =
    "<html>"
    "<head>"
    "<title>Arduino Scheda Rele</title>"
    "</head>"
    "<body>";
 
    server.printP(htmlHead);
 
    server.print("<table border=\"1\">");
    server.print("<tr><td>Stato Rele</td><td>Comandi</td></tr>");
 
    if(Rele1 == true)
      server.print("<tr><td style=\"color: red;\">RELE 1 ON</td><td>");
    else
      server.print("<tr><td style=\"color: black;\">RELE 1 OFF</td><td>");
 
    if(Rele1 == false)
    // server.print("<input type=button onclick=location.href='index.htm?R1=ON'" value='clicca qui\">");
   // server.print (" <input type='button' value='clicca qui' onclick='location.href=index.htm?R1=ON'\">");
    server.print("<input type= button value='clicca qui'onclick=\"location.href='index.htm?R1=ON'\">");
    else
   // server.print("<input type=button onclick=location.href='index.htm?R1=OFF'" value='clicca qui\">");
   //server.print (" <input type='button' value='clicca qui' onclick='location.href=index.htm?R1=OFF'\">");
   server.print("<input type= button value='clicca qui'onclick=\"location.href='index.htm?R1=OFF'\">");
 
    server.print("</td></tr>");
 
    if(Rele2 == true)
      server.print("<tr><td style=\"color: red;\">RELE 2 ON</td><td>");
    else
      server.print("<tr><td style=\"color: black;\">RELE 2 OFF</td><td>");
 
    if(Rele2 == false)
    //server.print("<input type=button onclick="location.href='index.htm?R2=ON'" value='clicca qui\">");
    //server.print (" <input type='button' value='clicca qui' onclick='location.href=index.htm?R2=ON'\">");
      server.print("<input type= button value='clicca qui'onclick=\"location.href='index.htm?R2=ON'\">");
    else
    server.print("<input type= button value='clicca qui'onclick=\"location.href='index.htm?R2=OFF'\">");
    //server.print("<input type=button onclick="location.href='index.htm?R2=OFF'" value='clicca qui\">");
    //server.print (" <input type='button' value='clicca qui' onclick='location.href=index.htm?R2=OFF'\">");
     //server.print("<input type=\"button\" value=\"clicca qui\"
                  //  onclick=\"location.href='index.htm?R2=OFF'\">");
 
    server.print("</td></tr>");
 
    if(Rele3 == true)
   
      server.print("<tr><td style=\"color: red;\">RELE 3 ON</td><td>");
    else
      server.print("<tr><td style=\"color: black;\">RELE 3 OFF</td><td>");
 
    if(Rele3 == false)
    //server.print("<input type=button onclick="location.href='index.htm?R3=ON'" value='clicca qui\">");
    //server.print (" <input type='button' value='clicca qui' onclick='location.href=index.htm?R3=ON'\">");
    server.print("<input type= button value='clicca qui'onclick=\"location.href='index.htm?R3=ON'\">");
    else
    //server.print("<input type=button onclick="location.href='index.htm?R3=OFF'" value='clicca qui\">");
    //server.print (" <input type='button' value='clicca qui' onclick='location.href=index.htm?R3=OFF'\">");
    server.print("<input type= button value='clicca qui'onclick=\"location.href='index.htm?R3=OFF'\">");
 
    server.print("</td></tr>");
 
    server.print("</table></body></html>");
 
  }
}
//=============================================================================
 
void setup()
{
  //inizializzo l'ethernet shield con il mac e il address
  Ethernet.begin(mac_Add, ip_Add);
 
  //definisci l'azione di default che verrà eseguita quando l'utente
  //naviga nella root del sito
  webserver.setDefaultCommand(&Start);
  webserver.addCommand("index.htm", &Start);
 
  //avvia il web server
  webserver.begin();
 
  delay(100);
 
  //definisci i pin 2 3 4 in uscita
  pinMode(3, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
 
  //inizializza i le uscite
  digitalWrite(3, LOW);
  digitalWrite(5, LOW);
  digitalWrite(6, LOW);
 
}
 
void loop()
{
  //elabora costantemente tutte le richieste provenienti dal browser
  webserver.processConnection();
}