Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    39

    popup di autenticazione

    Buongiorno a tutti.

    Devo creare un autenticazione per ottenere l'upload di una pagina main.htm che si trova su una eeprom.
    digitando l'ip dell'apparato da browser vorrei si aprisse un popup di autenticazione un po' come quello che troviamo sui router tipo TP-LINK. Ho notato che i router inviano il popup di autenticazione sulla pagina qualsiasi che si trova il browser in quel momento, se user e pass sono corretti si viene reindirizzati poi sulla index o su login_error. Non avevdo a disposizione un php che mi risponde a un metodo post, non so cosa utilizzare.
    Qualcuno sa dirmi come fa il router a lanciare un popup sul browser che sia android, windows o linux. Spero di essermi capito
    Grazie in anticipo. saluti

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    39
    una cosa così .. come da immagine allegata ..... che non mi ha messo!!!

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,134
    Qui viene trattato il javascript lato web, mentre nel tuo caso forse devi sviluppare un programma scritto in C o C++ (o altro linguaggio per sviluppare programmi standalone) che esegua comandi o istruzioni javascript.
    Forse facendo un giro sul/sui forum programmazione trovi spunti aiuti
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669

    Re: popup di autenticazione

    Originariamente inviato da pablitos
    Qualcuno sa dirmi come fa il router a lanciare un popup sul browser che sia android, windows o linux. Spero di essermi capito
    Grazie in anticipo. saluti
    Serverside. Alcuni router (solitamente quelli con SO linux) utilizzano il linguaggio php, in maniera "scoperta" o "mascherata" da un .htaccess. Altri utilizzano programmi compilati che girano sempre serverside. Da quello che ho capito vuoi modificare il funzionamento del webserver del router (ma non è molto chiaro quello che vuoi fare)... Se hai la fortuna di avere un router che ti consente l'accesso alla sua memoria puoi sostituire il suo SO con uno dei tanti open source per modem che facciano al caso tuo e averne il pieno controllo.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    39
    No, non voglio modificare un router, ho un microcontroller con tanto di eeprom, sram, ram con chip erthernet lan, come ha detto prima cavicchiandrea va programmato in c++, ma faccio già tutto, in pratica quando mi collego all'ip che ho assegnato alla scheda come server (sempre in ascolto) quando vado a fare sul browser http://192.168.1.100/ lui mi mi spedisce i char che compongono la pag html completa di js se ce li metto

    es
    codice:
    if client connected 
    {
         client.println("HTTP/1.1 200 OK");
         client.println("Content-Type: text/html");
         
          client.print("<html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=windows-1250\">");
     client.print("<script type=\"text/javascript\" src=\"http://code.jquery.com/jquery-1.7.min.js\"></script>");
     client.print("<script type=\"text/javascript\">");
     client.print("function send (){var x=document.getElementById(\"pwd\").value;var y=document.getElementById(\"log\").value;");
     client.print("$.ajax({type:\"POST\",data:\"usr=\"+y+\"%\"+\"pwd=\"+x+\"@\",dataType:\"text\",cache:false,url:\"/Client\"});location.href=\"index.htm\";};");
     client.print("</script>");
     client.print("<title>Login</title>");
    client.print("<font face=\"verdana,arial\" size=-1><center><table cellpadding=\"2\" cellspacing=\"0\" bo");
     client.print("rder=\"0\" id=\"ap_table\"><tr><td bgcolor=\"blue\"><table cellpadding=\"0\" cellspacing=\"0\" borde");
     client.print("r=\"0\" width=\"100%\"><tr><td bgcolor=\"blue\" align=center style=\"padding:2;padding-bottom:4\"><b");
    .....ecc
    .....ecc
    ....ecc
     client.print("/table></center></td></tr></table></td></tr></table></head></html>");
                           
      client.stop();
    }
    é semplicissimo questo è un pezzo di quello che si trova nel microcontroller, posso costruire tutte le pag che voglio, l'ho messo per far vedere che il js centra.
    e a me servirebbe una cosa semplice invece che tutta sta pappardella facendo solo aprire un semplice popup come i classici:

    "Un nome utente e una password sono stati richiesti da http://192.168.2.100. Il sito riporta: ...."
    una riga vuota dell'user
    una riga vuota password (caratteri hide )

    grazie per le risposte, do' un occhiata ad htaccess cercando ho intravisto argomenti con questa chiave

    P.S. Sono convinto che il codice che genera questo popup non si trova dentro i chip dei vari apparecchi, ma qualcosa lo fa invocare al brobwser o all SO in uso, infatti su android, chrome la descrizione del popup è diversa

  6. #6
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Originariamente inviato da pablitos
    P.S. Sono convinto che il codice che genera questo popup non si trova dentro i chip dei vari apparecchi, ma qualcosa lo fa invocare al brobwser o all SO in uso, infatti su android, chrome la descrizione del popup è diversa
    Esatto, è esattamente così. Il server invia al browser semplicemente la richiesta di autenticazione (solo password oppure, come nella stragrande maggioranza dei casi, nome utente + password), poi è il browser a decidere che tipo di finestra di dialogo mostrare.
    Il tutto ha un nome: si chiama Basic access authentication (http://en.wikipedia.org/wiki/Basic_a...authentication)

    Di conseguenza questa via è molto più semplice che usare javascript: ti basterà inserire un "WWW-Authenticate" nell'header e magicamente ti comparirà la finestra di login generata dal browser. Ma non è questa la sezione adatta (javascript non c'entra) e io non ti so aiutare. Prova a farti spostare, magari quelli di php di sapranno dare qualche dritta (anche se in php il processo è automatizzato). Cmq è su queste due linee che devi lavorare:

    codice:
         client.println("HTTP/1.1 200 OK");
         client.println("Content-Type: text/html");

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    39
    Di conseguenza questa via è molto più semplice che usare java-script: ti basterà inserire un "WWW-Authenticate" nell'header e magicamente ti comparirà la finestra di login generata dal browser. Ma non è questa la sezione adatta (javascript non c'entra)
    Sei un angelo !!! Cercando "HTTP Basic Authentication" ho trovato come far apparire magicamente la finestra di dialogo che cercavo. Dovevo giustamente lavorare su queste 2 righe

    client.println("HTTP/1.1 200 OK");
    client.println("Content-Type: text/html");

    sostituendole con queste

    client.println("HTTP/1.0 401 Authorization Required");
    client.println("WWW-Authenticate: Basic realm=\"microcontroller test\"");
    client.println("Content-Type: text/html");

    alla richiesta http://192.168.2.100/ appare

    Un nome utente e una password sono stati richiesti da http://192.168.2.100. Il sito riporta: "microcontroller test".
    GRAZIE per l'indicazione. Come far arrivare i 2 campi al webserver è un altra faccenda, ma è un passo avanti.

    Posto la soluzione per correttezza anche se è un po' incosueta la programmazione su microcontroller

    Per quanto riguarda la sezione nella quale ho fatto la domanda, pensavo che ci volesse qualche istruzione js ditemi voi .... dove la faccio spostare (C++)?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.