Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it L'avatar di yyzyyz
    Registrato dal
    Oct 2001
    Messaggi
    1,653

    [VB6] autenticazione web

    ciao, ho bisogno di sapere se è possibile autenticarsi su una pagina web con il VB.
    es. vorrei aprire la mia posta elettronica dal sito evitando di inserire user e pass, magari con un programma ke mandi questi parametri al browser.

    si puo' fare ? se si ke controlli dovrei usare?

  2. #2
    Interagire direttamente con una finestra di Explorer la vedo un po' dura, mi sembra più probabile l'utilizzo di un controllo Webbrowser dentro ad un form di VB6. Ti serve inoltre la libreria "Microsoft HTML object library".

    Prima di tutto devi guardarti il codice HTML del sito in questione e trovare la posizione dei tag <input ...> relativi a username e password (nonchè del pulsante per l'invio dei dati). Tali tag hanno sicuramente un attributo "name" (oppure "id"), il valore di tale attributo ti serve per poterti riferire da VB.

    Nel caso della pagina di Libero (estratto):
    codice:
    <INPUT type="text" name=LOGIN>
    <INPUT type="password" name=PASSWD>
    <input type=image value=Entra name=Act_Login>
    codice:
    'per entrare nel sito:
    Webbrowser1.navigate "http://www.libero.it"
    
    '...
    
    'per inserire username e password
    Dim d As IHTMLDocument3
    Dim el As IHTMLElement
        
    Set d = wb.Document
        
    Set el = d.getElementsByName("LOGIN").Item(0)    'ricava l'elemento 0 dalla collezione di elementi aventi name="LOGIN"
    el.setAttribute "value", "pippo"                    'imposta l'attributo html value="pippo"
    
    Set el = d.getElementsByName("PASSWD")(0)
    el.setAttribute "value", "password"
    
    'pulsante di invio
    Set el = d.getElementsByName("Act_Login")(0)
    el.Click
    Se la pagina ha frame il codice si complica un pochino, ma niente di trascendentale. Ciao
    Chi non cerca trova.

  3. #3
    Utente di HTML.it L'avatar di yyzyyz
    Registrato dal
    Oct 2001
    Messaggi
    1,653
    grazie x il tuo esempio, volevo kiederti se il tuo sorgente crea un sessione ie, cioe se apre una finestra IE x loggarsi sul sito web (in questo caso libero).
    E' possibile loggarsi senza aprire una finestra IE ?

    ps. so ke nn ha molto senso quello ke ti dico , ma volevo sapere se era possibile farlo.


  4. #4
    Fisicamente non apri nessuna finestra di IE, semmai vedi il contenuto della pagina dentro un controllo di VB (Webbrowser per l'appunto). Se però tieni tale controllo nascosto (Visible = False) non vedrai nulla di quello che succede nella pagina...
    Chi non cerca trova.

  5. #5
    Utente di HTML.it L'avatar di yyzyyz
    Registrato dal
    Oct 2001
    Messaggi
    1,653
    ok, stavo provando il tuo sorgente, ma ricevo un errore qui:

    necessario oggetto ? ?
    codice:
    Set d = wb.Document
    wb nn è dichiarato come mai ? che tipo di oggetto dev'essere wb ?


  6. #6
    Ehm, scusa, ho fatto copia/incolla di un esempio senza controllare... sostituisci wb con Webbrowser1, ciao!
    Chi non cerca trova.

  7. #7
    Utente di HTML.it L'avatar di yyzyyz
    Registrato dal
    Oct 2001
    Messaggi
    1,653
    errore di run-time 91, variabile oggetto non impostata.
    codice:
    Set el = d.getElementsByName("LOGIN").Item(0)
    scusami potresti mandarmi un esempio funzionante?

  8. #8
    Probabilmente il problema è dovuto al fatto che il metodo navigate non attende l'effettivo caricamento della pagina, di conseguenza nella riga di codice successiva Set d = Webbrowser1.Document l'assegnazione non ha luogo in quanto la proprietà Document non è ancora stata impostata. A me funzionava perchè il metodo navigate lo chiamavo in una sub a parte (un altro button) e attendevo che la pagina fosse caricata prima di caricare i dati nelle textbox.

    Così dovrebbe andare:
    codice:
        Dim d As IHTMLDocument3
        Dim el As IHTMLElement
        
        WebBrowser1.Navigate "http://www.libero.it"
        
        'attende il caricamento della pagina
        Do Until WebBrowser1.ReadyState = READYSTATE_COMPLETE
            DoEvents
        Loop
        
        'variabile documento
        Set d = WebBrowser1.Document
        
        'imposta username
        Set el = d.getElementsByName("LOGIN").Item(0)
        el.setAttribute "value", "alfabetagamma"
        
        'imposta password
        Set el = d.getElementsByName("PASSWD")(0)
        el.setAttribute "value", "xxxxxxxxx"
        
        'pulsante di invio
        Set el = d.getElementsByName("Act_Login")(0)
        el.Click
    Ho inserito un loop di attesa che termina quando la pagina è stata caricata.

    Ricorda che se cambi sito devi verificare l'attributo name dei tag input, inoltre se la pagina contiene frame bisogna cambiare leggermente il codice.


    Fammi sapere, ciao
    Chi non cerca trova.

  9. #9
    Utente di HTML.it L'avatar di yyzyyz
    Registrato dal
    Oct 2001
    Messaggi
    1,653
    grazie , provo piu' tardi ma son sicuro ke funzionera'

  10. #10
    Utente di HTML.it L'avatar di yyzyyz
    Registrato dal
    Oct 2001
    Messaggi
    1,653
    ho provato il tuo codice e funziona perfettamente, grazie

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 © 2025 vBulletin Solutions, Inc. All rights reserved.