Go Down

Topic: Problema login arduino ethernet (Read 6907 times) previous topic - next topic

format

Prima di tutto Buon anno a tutti


Io ho pastrocchiato questo, l'ho testato e devo dire che funziona, però gradirei che gli diate un'occhiata:


Code: [Select]
#define WEBDUINO_AUTH_REALM "Prova Autenticazione"

#include "SPI.h"
#include "Ethernet.h"
#include "WebServer.h"


static uint8_t mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };


static uint8_t ip[] = { 192, 168, 1, 220 };

#define PREFIX ""
WebServer webserver(PREFIX, 80);

boolean Rele1 = false;
boolean Rele2 = false;
boolean Rele3 = false;

void defaultCmd(WebServer &server, WebServer::ConnectionType type,char *url_param, bool param_complete)
                     
{
  server.httpSuccess();
  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);
      }
    }

P(helloMsg) = "<h1>Prova Autenticazione</h1><a href=\"private.html\">Accesso</a>";

    server.printP(helloMsg);
     server.print("<h2>User = 1234   Password = 1234</h2>"); 
  }
}



void privateCmd(WebServer &server, WebServer::ConnectionType type,
         char *url_param, bool param_complete)
         
         
{
    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);
      }
    }       
                   
{
if (server.checkCredentials("MTIzNDoxMjM0"))
  {
    server.httpSuccess();
    if (type != WebServer::HEAD)
    {
      P(helloMsg) = "<h1>Accesso eseguito</h1>";
      server.print("<table border=\"1\">");
    server.print("<tr><td>Stato Rele</td><td>Comandi</td><td>");

    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 value='Accendi'onclick=\"location.href='private.html?R1=ON'\">");
    else
 
   server.print("<input type= button value='Spegni'onclick=\"location.href='private.html?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 value='clicca qui'onclick=\"location.href='private.html?R2=ON'\">");
    else
    server.print("<input type= button value='clicca qui'onclick=\"location.href='private.html?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 value='clicca qui'onclick=\"location.href='private.html?R3=ON'\">");
    else
 
    server.print("<input type= button value='clicca qui'onclick=\"location.href='private.html?R3=OFF'\">");

    server.print("</td></tr>");

 
      server.printP(helloMsg);
       
    }
  }
 
       else

  {
    /* send a 401 error back causing the web browser to prompt the user for credentials */
    server.httpUnauthorized();
  }
 

}
}

void setup()
{
  Ethernet.begin(mac, ip);
  webserver.setDefaultCommand(&defaultCmd);
  webserver.addCommand("index.html", &defaultCmd);
  webserver.addCommand("private.html", &privateCmd);
  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()
{
  char buff[64];
  int len = 64;

  /* process incoming connections one at a time forever */
  webserver.processConnection(buff, &len);
}





Quote
Era un po' che non mettevo mani sulla lib Ethernet.

Allora ricordavo bene la risposta che ti serve è sul char(c). Ho preso un esempio dell'ide e ti ho inserito l'autenticazione base64



Ora sto provando a passare il controllo dei led nel tuo codice, ma senza successo

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy