Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1

    VB.NET 2010 Login non funzionante

    Ciao a tutti,ho un problema nel effettuare il login sul mio sito,vi spiego qualcosa prima di postare il codice.
    Ho realizzato 2 textbox e 1 bottone,dove nelle textbox ci sarà username e pass,il bottone dovrà mandare l'invio.

    Il problema sta che non riesco a loggarmi,qualsiasi cosa poi scrivo,nell'username e pass mi da login effettuato

    codice:
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    
            If TextBox5.Text = Nothing Then
                MessageBox.Show("Please enter your username")
                Button2.Enabled = True
                TextBox5.Select()
            ElseIf TextBox3.Text = Nothing Then
                MessageBox.Show("Please enter your password")
                TextBox3.Select()
            Else
                If Not TextBox5.Text Is Nothing And Not TextBox3.Text Is Nothing Then
                    Me.Button2.Enabled = False
                    MessageBox.Show("Ok, trying to LOG IN....")
                    Try
                        'Address of URL
                        Dim URL As String = "http://mysite.com/login.php?username=" & TextBox5.Text & "&password=" & TextBox3.Text
                        Dim request As HttpWebRequest = CType(WebRequest.Create(URL), HttpWebRequest)
                        Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)
    
    
                        'Take a look at.>>
                        MessageBox.Show(response.StatusCode.ToString)
    
    
                        If response.StatusDescription = "OK" Then
                            MessageBox.Show("You are now logged in as user " & TextBox5.Text)
                            Me.Button1.Enabled = True
                        Else
                            MessageBox.Show("Login failed!!")
                        End If
    
    
                    Catch ex As Exception
                        MessageBox.Show("The site is down, please try again later")
                        Me.Button2.Enabled = True
    
    
                    End Try
                End If
            End If
    
    
        End Sub
    End Class

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2014
    residenza
    Vicenza
    Messaggi
    318
    Mi sembra che stai facendo una confusione pazzesca.

    Innazitutto non si capisce se per fare il LOGIN hai bisogno della funzione GET o del POST, quindi spiega meglio.
    Poi tu invii la richiesta (tramite GET) ed è normale che il server ti risponda "ok ho ricevuto la tua richiesta", e tu la interpreti come "ok ti sei loggato", ma non è così.

    Per capire se sei loggato devi poi attendere la risposta del server, mentre tu testi solo lo "Status" della trasmissione, che è un'altra cosa.

    Non sapendo quale è esattamente il tuo sito, non posso fare nessuna prova in merito.

    Sergio

  3. #3
    Esatto sto facendo confusione, complicandomi ancora di più,ti mando per pm il link del sito.

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2014
    residenza
    Vicenza
    Messaggi
    318
    Se vai a vedere la pagina del sito che mi hai segnalato (http://mysite.com/login.php), vedi che ci sono dei campi dove puoi inserire nome utente e password e poi cliccare sul pulsante "login".
    Ebbene, con FireFox, fai click destro sul pulsante "login" e seleziona la voce dal menu "analizza elemento", vedrai così le proprietà della pagina.
    Se risali fino alla istruzione <form> vedrai che il metodo usato è il POST e non il GET, per cui nel tuo sorgente devi implementare la funzione POST. Cerca su internet il WebRequest con il POST e vedrai che trovi un sacco di esempi.

    Devi quindi inviare il parametro "username" e "password" tramite POST

    Sergio

    Un esempio lo trovi qui:
    http://stackoverflow.com/questions/1...ng-post-method
    Ultima modifica di SirJo; 02-04-2014 a 14:22

  5. #5
    ok grazie, provo a vedere e ti faccio sapere.

  6. #6
    Ho provato a cambiare completamente il codice, ottengo login fallito.

    codice:
    'controllo textbox        If TextBox5.Text = Nothing Then
                MessageBox.Show("Please enter your username")
            ElseIf TextBox3.Text = Nothing Then
                MessageBox.Show("Please enter your password")
            Else
                Try
                    'Indirizzo URL
                    Dim URL As String = "http://mysite/login.php"
                    Dim request As HttpWebRequest = WebRequest.Create(URL)
                    Dim response As HttpWebResponse = DirectCast(request.GetResponse(), HttpWebResponse)
                    Dim reader As StreamReader = New StreamReader(response.GetResponseStream())
                    Dim str As String = reader.ReadLine()
                    Dim username As String = TextBox5.Text
                    Dim password As String = TextBox3.Text
    
    
    
    
                    'Scrivo i dati POST a richiesta
                    Dim data As StringBuilder
                    request.Method = "POST"
                    request.ContentType = "application/x-www-form-urlencoded"
    
    
    
    
                    Dim byteData() As Byte
                    Dim postStream As Stream = Nothing
    
    
    
    
                    data = New StringBuilder()
                    'Prendo "campo username" variabile contenuta tra virgolette 
                    data.Append(Uri.EscapeUriString("username" + TextBox5.Text.ToString))
                    'Prendo il "campo password" variabile contenuta tra virgolette
                    data.Append(Uri.EscapeUriString("password" + TextBox3.Text.ToString))
    
    
    
    
    
    
                    ' Creo un array di byte di dati che vogliamo inviare
                    byteData = UTF8Encoding.UTF8.GetBytes(data.ToString())
    
    
    
    
                    'Imposto la lunghezza del contenuto nelle intestazioni di richiesta 
                    request.ContentLength = byteData.Length
                    response = request.GetResponse()
    
    
    
    
                    'Prendo la risposta flusso in un lettore
                    If reader Is New StreamReader(response.GetResponseStream()) Then
                        MessageBox.Show("login successful")
                    End If
    
    
    
    
    
    
                    response.Close()
    
    
                Catch ex As Exception
                    MessageBox.Show("login failed")
                End Try
            End If

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2014
    residenza
    Vicenza
    Messaggi
    318
    Ok, ma l'errore quale è ??
    Visualizza ex.Message e dimmi cosa c'è scritto, bisogna capire quale riga va in errore, non è un login fallito, è un errore nel codice che hai scritto

    Hai seguito l'esempio che ti ho inviato ???
    Nell'esempio non c'era il StringBuilder e tu invece lo hai usato, ma la cosa più importante, hai controllato alla fine che cosa contiene la variabile Data.ToString ??
    Secondo te il sistema riesce a capire dove è il parametro "username" e quale è il parametro "password" ??

    Dal codice che hai postato direi proprio di no.

    Se guardi il tuo codice originale, nella riga
    codice:
    Dim URL As String = "http://mysite.com/login.php?username=" & TextBox5.Text & "&password=" & TextBox3.Text
    vedi che hai diviso correttamente i parametri, usando il carattere "=", e il carattere "&" per dividere il nome del parametro dal valore stesso.



    Sergio
    Ultima modifica di SirJo; 02-04-2014 a 22:50

  8. #8
    No non riesce a capire quale sia login e password,ma mi vien difficile a impostarlo con httpwebrequest,mentre con webbrowser ci riesco.

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2014
    residenza
    Vicenza
    Messaggi
    318
    Quote Originariamente inviata da kenshiro81 Visualizza il messaggio
    No non riesce a capire quale sia login e password,ma mi vien difficile a impostarlo con httpwebrequest,mentre con webbrowser ci riesco.
    Eccoti una pagina dove puoi testare le tue chiamate internet:
    http://www.sirjo.com/getpost.php

    Se ad esempio chiami http://www.sirjo.com/getpost.php?use...password=pluto
    vedrai che ti dice che hai passato una richiesta GET e ti dice il nome dei parametri e i relativi valori.

    Tu devi fare la stessa cosa (cioè passare la stringa username=pippo&password=pluto ) ma in modalità POST

    Usa questa riga al posto di quella che hai:
    codice:
    byteData = UTF8Encoding.UTF8.GetBytes("username=pippo&password=pluto")
    e sostituisci il link url che chiami con http://www.sirjo.com/getpost.php così puoi fare le prove.

    Quando vedi che i parametri sono corretti e anche i valori riprovi con il tuo sito

    Sergio

  10. #10
    Se provo con il tuo sito mi da la risposta in GET, ma nel mio se metto username=pippo&password=pluto non ottengo niente e mi rimanda alla pagina login,non effettua nessun login.
    Anche se metto
    codice:
    byteData = UTF8Encoding.UTF8.GetBytes("username=pippo&password=pluto")
    non ottengo nessun cambiamento,sicuramente sto continuando a sbagliare.

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.