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

    Problemi saltuari con Mid

    Ho questa porzione di codice che utilizzo per generare un captcha

    codice:
    <%
        Function CAPTCHA()
            Dim caratteri, codice
            caratteri = ""
            caratteri = caratteri & "0123456789"
            caratteri = caratteri & "abcdefghijklmnopqrstuvwxyz"
            caratteri = caratteri & "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
            Randomize()
            Do Until Len(codice) = 7
                carattere = Int((Len(caratteri) * Rnd()))
                codice = codice & Mid(caratteri, carattere, 1)
            Loop
            CAPTCHA = codice
        End Function
        Session("captcha") = CAPTCHA()
    %>
    Saltuariamente, mi restituisce il seguente errore:

    Errore di run-time di Microsoft VBScript (0x800A0005)
    Chiamata di routine o argomento non validi: 'Mid'
    pagina.asp, line 31

    dove alla linea 31 ho questo:

    codice:
    codice = codice & Mid(caratteri, carattere, 1)
    Perchè una volta ogni tanto e non sempre

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Attiva l'on error e fatti stampare a video quelle due variabili...
    Quando si verifica l'errore controlla il loro valore.

    Roby

  3. #3
    ti riferisci a "carattere" e "caratteri" ?

    Nulla, non mi stampa a video assolutamente nulla ma se attivo on error l'errore non si presenta più ovvimente e tutto funziona normalmente.

    Se stampo a video:

    <%=captcha%>


    <%=Session("captcha")%>

    facendo il reload ripetutamente, ogni tanto la prima risulta vuota a differenza della session che è sempre popolata

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Devi usare iff err <> 0....

    Roby

  5. #5
    Cioè ?

    Perdona la mia mancanza ma in che modo lo dovrei fare ?

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    if err<>0 then
    response.write("Qui stampo i valori delle due variabili")
    end if

    Roby

  7. #7
    ah, ok allora,
    codice:
    <%
    if err <> 0 then
    %>
    
    <%=caratteri%>
    
    <%=carattere%>
    
    <%=captcha%>
    
    <%=Session("captcha")%>
    
    <% end if %>
    non stampa nulla, vuoto assoluto !

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ma l'on error l'hai messo???

    Roby

  9. #9
    parli di On Error Resume Next ?

    certo all'inizio del codice, sbaglio ?

    codice:
    <%
    On Error Resume Next
    
        Function CAPTCHA()
            Dim caratteri, codice
            caratteri = ""
            caratteri = caratteri & "0123456789"
            caratteri = caratteri & "abcdefghijklmnopqrstuvwxyz"
            caratteri = caratteri & "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
            Randomize()
            Do Until Len(codice) = 7
                carattere = Int((Len(caratteri) * Rnd()))
                codice = codice & Mid(caratteri, carattere, 1)
            Loop
            CAPTCHA = codice
        End Function
        Session("captcha") = CAPTCHA()
    %>
    
    <%
    if err <> 0 then
    %>
    
    <%=caratteri%>
    
    <%=carattere%>
    
    <%=captcha%>
    
    <%=Session("captcha")%>
    
    <% end if %>

  10. #10
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Tutto nella function devi mettere...

    Roby

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.