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

    ricerca parole da un file txt

    Ciao a tutti avrei bisogno di un aiuto per un controllo per delle parole vietate vorrei che all'inserimento di alcune parole non consentite ci sia un messaggio d'errore, e l'elenco lo trova da un file di testo, come posso fare per fare questo controllo???

  2. #2
    Vorresti fare questa operazione una volta inviata la form o mentre si scrive nella form?

    Nel primo caso è semplice:

    recuperi uno script che legge i file di testo (ne trovi milioni), presupponendo che tu metta una parola per ogni riga, fai il ciclo che legge il .txt, che in genere legge riga per riga.

    Nel ciclo metterai una funzione che confronta le stringhe, tipo InStr(stringaincuicercare, stringadacercare), che ti restituirà un numro che equivale al numero di stringhe trovate.
    Magari prima di fare il controllo rendi tutto il testo minuscolo con lcase(), e poi il controllo fallo mettendo uno spazio prima e dopo la parola che cerchi, in modo che trovi la singola parola, e non la parola dentro ad un'altra.

    A questo punto vedi tu cosa fare....se hai un numero superiore allo 0, ha trovato una di quelle parole, e puoi o restituire l'errore...o sostituire le parole con asterischi ecc..

    Se invece vuoi fare un controllo in diretta si complica un po', ma con Ajax puoi farlo.

  3. #3
    <col>ciao Grazie per la risposta, il controllo lo vorrei effettuare alla fine dopo l'inserimento dei dati del form, tutto questo mi serve per filtrare parolacce prendendo le parole da un file di testo, ho trovato uno script ma non non riesco ad adattarlo, ti posto il codice della pagina:
    <html>

    <head>
    <title>Invia_messaggio</title>
    <style type="text/css">
    .input {
    color: #0098F8;

    }
    .story2{
    width:270px;
    border:1px solid #0098f8;
    color:#0098f8;
    font:bold 11px verdana,helvetica,sans-serif;
    letter-spacing: .1em;word-spacing:.2em;

    }
    </style>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
    <title>Invia Messaggio</title>
    <script type="text/javascript" src="js/mootools-for-textarea.js"> </script>
    <script type="text/javascript" src="js/UvumiTextarea-compressed.js"> </script>
    <link rel="stylesheet" type="text/css" media="screen" href="css/uvumi-textarea.css" />
    <style type="text/css">
    body,html{
    background-color:#ffffff;
    margin:0;
    padding:0;
    font-family:Trebuchet MS, Helvetica, sans-serif;
    }

    #main{
    margin:1% 1%;
    height:350px;
    width:460px;
    position:relative;
    overflow:false;
    color:#aaa;
    padding:20px;
    border:1px solid #0098f8;
    background-color:;
    #
    }
    .style1 {
    margin-left: 0px;
    font-color: #0098F8;
    font:bold 15px verdana,helvetica,sans-serif;

    }
    .style2 {
    color: #0c16dc;
    font: normal normal normal 15px verdana, helvetica, sans-serif;
    }
    </style>
    <script type="text/javascript">
    new UvumiTextarea({
    selector:'textarea.withCounter',
    maxChar:60
    });
    new UvumiTextarea({
    selector:'textarea.withoutCounter',
    maxChar:60
    });
    </script>
    </head>

    <body><div id="main" style="left: 0px; top: 0px; height: 301px">
    <form method="POST" action="inserisci.asp" style="font: ; width: 438px; height: 277px;" class="style1">



    <span class="style2">Nome</span> <input type="text"name="nome" class=input size="23">
    </p>
    <span class="style2">Messaggio</span>
    <textarea id="story2" class="withCounter" onkeyup="test(this)" onchange="test(this)" align="left"
    input type="text"name="messaggi" size="20" style="width: 270px; height:68px;"></textarea>
    <input type="submit" value="Invia"name="x" style="width: 57px; height: 24px;"> </p>
    </form>


    </div>


    </body>

    </html>


    questo è lo script che ho trovato:


    <%
    Function badWords(sText)
    'alcune parole poco consone, potete aggiungerne quante ne volete
    words = Array("cretino","stupido","imbecille","porcapalett a")
    stringa = sText
    For k = LBound(words) To UBound(words)
    stringa = Replace(stringa, words(k), String(Len(words(k)),"*"))
    Next
    badWords = stringa
    End Function
    %>
    <%
    Function badWords(sText)
    'alcune parole poco consone, potete aggiungerne quante ne volete
    words = Array("cretino","stupido","imbecille","porcapalett a")
    stringa = sText
    For k = LBound(words) To UBound(words)
    stringa = Replace(stringa, words(k), String(Len(words(k)),"*"))
    Next
    badWords = stringa
    End Function
    %>

    Per applicare poi questa funzione per ripulire il contenuto proveniente dal campo di un form basterà fare così:


    <%
    Response.write badWords(Request.Form("NOME_CAMPO_FORM"))
    %>


    ho fatto delle prove ma non mi cripta niente, il form l'ho invia ma non mi da nessun segnale di un funzionamento!!! pensi di poter aiutarmi?

  4. #4
    Ma la usi csì com'è?
    Hai messo entrambi i file?

    Il codice della pagina "inserisci.asp"?

    Perchè visto così passi nella funzione badwords una stringa che non esiste...request.form("nome_campo_form")....devi chiamarla come il nome del campo...

    Response.write badWords(Request.Form("messagi"))

    poi va inserita nella pagina di inserimento.

    Se vuoi provare il tutto nella pagina che hai messo, togli l'action della form, così invia il messaggio alla stessa pagina e ti scrive il risultato sotto.

    Poi inserirai la funzione nella pagina inserimento.asp

  5. #5
    ciao grazie per la risposta, ovviamente non la uso cosi solo che non so come comportarmi allora ho una pagina con il form che invia ad inserisci.asp, ma questa funzione, la devo inserire quella pagina??? (inserisci.asp) poi secondo te posso inserire anche il campo nome insieme a messaggi??

  6. #6
    Questo è il codice della inserisci asp

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>
    <meta content="it" http-equiv="Content-Language" />
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
    <title>inserisci</title>
    <style type="text/css">
    .style1 {
    font-family: Verdana;
    color: #0098F8;
    font-size: small;
    }
    .style2 {
    color: #0098F8;
    }
    </style>
    </head>

    <body>
    <%

    dim a,b

    a = request.form("nome")
    b = request.form("messaggi")

    Set Conn=Server.CreateObject("ADODB.Connection")
    strConn="driver={Microsoft Access Driver (*.mdb)}; "
    strConn= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("/mdb-database/messaggi.mdb")&";"

    Conn.Open strConn

    sql = "SELECT * FROM Messaggix"

    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql, conn ,3,3

    'scrittura nuovo record

    rs.addnew
    rs(1) = a
    rs(2) = b
    rs.update

    ' Chiusura del database
    rs.Close
    set rs = Nothing
    conn.Close
    set conn = Nothing

    response.write "inserimento avvenuto"
    %>
    <%
    dim stringa, arr_str, i, record
    stringa = request("messaggi")
    arr_str = split(stringa, " ")
    i = 0
    for i = 0 to UBound(arr_str)
    if Len(arr_str(i)) > 10 then
    record = record & Left(arr_str(i), 10) & " "
    else
    record = record & arr_str(i) & " "
    end if
    next


    %>
    </body>

    </html>

  7. #7
    Ecco...prima di b=request.form("messaggi"), metti la funzione

    Function badWords(sText)
    'alcune parole poco consone, potete aggiungerne quante ne volete
    words = Array("cretino","stupido","imbecille","porcapalett a")
    stringa = sText
    For k = LBound(words) To UBound(words)
    stringa = Replace(stringa, words(k), String(Len(words(k)),"*"))
    Next
    badWords = stringa
    End Function


    poi al posto di b=request.form("messaggi"), metterai

    b=badWords(request.form("messaggi"))

    Poi ricordati di sostituire l'apice, che crea problemi quando devi inserire dati nel db, sia nel messaggio che nell'oggetto

  8. #8
    bhè grazie infnite, così va, ma volevo chiederti se è possibile associarlo anche al nome, nel caso ci fosse qualche volgarità nel nome, poi io vorrei tirare fuori queste parole da un txt dici che è complesso???

  9. #9
    La funzione, una volta inserita nella pagina, puoi richiamarla in ogni momento...quindi puoi mettere anche
    a=badWords(request.form("nome"))...ecc..
    Puoi mettere il controllo in tutte le input inviate.

    Per estrarre le parole da un file, anzichè scriverle direttamente nell'array, è semplice:

    recupera uno script che legge i file txt (ne trovi in giro un sacco)..
    poi stabilisci come vuoi mettere i dati nel txt: uno per riga, tutti sulla stessa riga separati con un simbolo..ecc..

    A quel punto devi solo ricrearti l'array che hai tu nella funzione, prelevando le parole dal txt con lo script che avrai trovato...in genere hanno qualcosa che legge riga per riga, quindi tu nel ciclo che legge le righe, creerai il tuo array.
    Questo ciclo lo metti prima della funzione, nella quale poi inserirai come parole, la variabile che hai creato.
    Se riesci crea l'array già strutturato come nella tua attuale funzione, così eviti altri problemi.

    Se poi hai difficoltà, metti il codice che hai trovato e lo sistemiamo.

  10. #10
    Ciao, ho trovato lo script, l'ho aggiunto, e con il response write
    mi restituisce i nomi che ho inserito nel file di testo anche se ci sono prima dei caratteri che non c'entrano niente, ma adesso non so come andare avanti ho fatto un po' di prove, per settare il risultato del loop e metterlo nell' array , ma mi da sempre errori, secondo te in base a quest'ultima parte come mi devo comportare per renderlo funzionante?
    Grazie mille

    <%
    filePath = Server.Mappath("prova.txt")
    Set objFileSystem = Server.CreateObject("Scripting.FileSystemObject")
    if objFileSystem.FileExists(filePath ) then
    Set objFile = objFileSystem.OpenTextFile(filePath, 1)
    'leggo file riga per riga fino alla fine del file
    Do While Not objFile.AtEndofStream
    Response.Write objFile.ReadLine & "
    "
    Loop
    objFile.Close
    Set objFile=Nothing
    end if
    Set objFileSystem=Nothing
    %>
    <%

    dim a,b
    Function badWords(sText)
    words = Array("filePath")
    stringa = sText
    For k = LBound(words) To UBound(words)
    stringa = Replace(stringa, words(k), String(Len(words(k)),"*"))
    Next
    badWords = stringa
    End Function
    a=badWords(request.form("nome"))
    b=badWords(request.form("messaggi"))

    Set Conn=Server.CreateObject("ADODB.Connection")
    strConn="driver={Microsoft Access Driver (*.mdb)}; "
    strConn= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("/mdb-database/messaggi.mdb")&";"

    Conn.Open strConn

    sql = "SELECT * FROM Messaggix"

    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql, conn ,3,3

    'scrittura nuovo record

    rs.addnew
    rs(1) = a
    rs(2) = b
    rs.update

    ' Chiusura del database
    rs.Close
    set rs = Nothing
    conn.Close
    set conn = Nothing

    response.write "inserimento avvenuto"
    %>
    <%
    dim stringa, arr_str, i, record
    stringa = request("messaggi")
    arr_str = split(stringa, " ")
    i = 0
    for i = 0 to UBound(arr_str)
    if Len(arr_str(i)) > 10 then
    record = record & Left(arr_str(i), 10) & " "
    else
    record = record & arr_str(i) & " "
    end if
    next
    %>

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.