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

    Come IMPEDIRE PAROLACCE in un form che salva su database

    Allora ragazzi,

    vi sottopongo questo problema

    noi abbiamo un form dove l'utente puo fare la sua proposta

    al venditore.

    il campo del form é il seguente:

    codice:
    <textarea cols=75 name=TESTOPROP rows=12 wrap="SOFT"></textarea>
    la pagina che inserisce la proposta nel database si chiama inserdatabase.asp

    all'inizio di inserdatabase.asp mettiamo il seguente codice

    codice:
     ' uso replace per controllare se ci sono apostrofi nel testo,
       nel caso li sostituisco perché l'apostrofo mi bloccherebbe il codice 
    
    TESTOPROP = Replace (Request.Form("TESTOPROP"),"'","''")
    
     ' poi con un'arry splitto tutte le parole del testo
    
     arr_controllo = split(testoprop, " ")
    A questo punto abbiamo tutto il testo spezzato per parola.

    Noi vogliamo evitare che qualche stupidotto inserisca parole volgari e offensive

    nella proposta che poi sará letta pertanto creeremo una serie di parole vietate tipo

    caz....
    mer....
    putt...
    cul...
    froc....
    ecc ecc...

    adesso dobbiamo passare tutte le parole del testo catturate nell'arry

    codice:
    
    If arr_controllo(0)  =  'e qui la devo confrontare con tette le parole vietate
    If arr_controllo(1)  =  'e qui la devo confrontare con tette le parole vietate
    If arr_controllo(2)  =  'e qui la devo confrontare con tette le parole vietate
    If arr_controllo(3)  =  'e qui la devo confrontare con tette le parole vietate
    se ad esempio arr_controllo(0) = caz.... facciamo un redirect a una pagina che lo ferma

    e via dicendo.

    Che starda ci consigliate per fare il controllo confronto di tutte le parole del

    testoprop con le parole da noi vietate???

    Speriamo essere stati chiari.


    GRAZIE MILLE SIN DA ORA.


    arturo juciara


    www.brasile-natal.com

  2. #2
    Utente di HTML.it L'avatar di kluster
    Registrato dal
    Jul 2003
    Messaggi
    1,288
    qualcosa del genere da raffinare
    codice:
    Function Censura(string)
         Dim ArrPar,tmp,i
         ArrPar     = array("rbudellodituma","etc",,,,,)
         tmp        = string
         for i = 0 to uBound(ArrPar)
            tmp     = Replace(tmp , ArrPar(i),"*****")
            'oppure controlli con Instr se vuoi eseguire azioni
         Next
         Censura    = tmp 
    End function
    oppure fai un pattern con regexp con tutti gli or del caso ma va testato se è + veloce l'uno o l'altro metodo

  3. #3
    Grazie mille ma noi non vogliamo usare replace per modificare il testo,

    noi vorremmo controllare che nel testo non si trovino le parole da noi censurate e se si trovano parole censurate vogliamo interrompere
    la scrittura su database senza neppure avvertire cosi il furbino crede di aver fatto il dispetto é contento e non insiste invece il suo testo di nascosto é stato buttato via e i clienti che vendono le macchine nella loro pagina delle proposte non trovano cose indecenti.


    COMUNQUE GRAZIE MILLE


    arturo juciara

    www.brasile-natal.com

  4. #4

    Giusto per spiegarvi meglio

    Se volete dare un'occhiata cosi si capisce meglio

    http://www.natalmercado.com/veiculos...lio.asp?ID=106

    cliccate su Fazer uma proposta.

    Le proposte vengono salvate su database e l'inserzionista tramite pagina personale ogni tanto le va a leggere per vedere se trova una proposta di interesse.

    Le proposte non sono di dominio pubblico proprio per evitare la libidine dei furbini e limitarne il proliferarsi, qui in brasile siamo molto indietro nel mondo di internet e le regole di semi-correttezza assimilate da noi europei sono solo un miraggio

    Il form Fazer uma proposta deve restare di accesso libero,

    se chiediamo la registrazione riduciamo le proposte del 50/60%.

    Noi pensavamo cosi, la pagina che deve scrivere la proposta sul database verifica la presenza di parole censurate, se le trova non scrive sul database ma risponde al furbino che la proposta é stata inserita, nello stesso tempo inseriamo un cooki di censura, la prossima volta che viene per fare un'altra proposta biricchina gli leggiamo il cooki e se é recidivo lo mandiamo ad una pagina di proposta dove la parte da compilare non é altro che una gif cosi lui prova a compilare ma non riesce e pensa che il problema sia del sito e non si incattivisce.

    Mai provocare il male, sempre assecondarlo facendogli credere che sta riuscendo nel suo intento.


    Di tutto questo l'unica cosa che non sappiamo fare é la verifica dell'arry_controllo.


    Obrigado

    arturo juciara


    www.brasile-natal.com

  5. #5
    All'interno della pagina in cui fate l'inserimento nel db metti questo codice:


    codice:
    Dim ArrPar
    ArrPar     = array("caz..","cu...","etc","etc",,,)
    
    for i=0 to ubound(ArrPar)
      if instr(1,testoDellUtente,ArrPar(i))>0 then
        response.redirect "pagina.asp"
      end if
    next
    che redireziona l'utente che ha scritto parolacce alla pagina "pagina.asp"
    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  6. #6
    abbiamo inserito il code nella pagina che scrive sul database

    ma purtroppo le parole PIPPO PIPPA DEMENTE DEMENTI

    passano non vi é nussun redirect la pagina scrive su database,

    come mai?????

    codice:
    Dim ArrPar, i
    ArrPar     = array("PIPPO","PIPPA","DEMENTE","DEMENTI")
    
    for i=0 to ubound(ArrPar)
      if instr(1,testoprop,ArrPar(i))>0 then
        response.redirect "pagina.asp"
      end if
    next
    SEMPREGRAZIE

    arturo juciara

    www.brasile-natal.com

  7. #7
    Nuovo code modificato

    codice:
    Dim ArrPar, i, testoprop
    TESTOPROP = Replace (Request.Form("TESTOPROP"),"'","''")
    i=0
    ArrPar = array("PIPPO","PIPPA","DEMENTE","DEMENTI")
    for i=0 to ubound(ArrPar)
      if instr(1,testoprop,ArrPar(i))>0 then
        response.redirect "pagina.asp"
      end if
    i=i+1
    next

    ancora non funziona, se scriviamo in testoprop pippo pippa il file scrive sul database e non siamo reindirizzati a pagina.asp

    arturo juciara

    www.brasile-natal.com

  8. #8
    INVECE FUNZIONA SOLAMENTE CHE LA FUNZIONE instr COMPARA MAIUSCOLO E MINUSCOLO INFATTI SE SCRIVIAMO pippo pippa Testoprop passa ma se scriviamo PIPPO PIPPA siamo reinderizzati a pagina.asp.

    codice:
    Dim ArrPar, i, testoprop
    TESTOPROP = Replace (Request.Form("TESTOPROP"),"'","''")
    i=0
    ArrPar = array("PIPPO","PIPPA","DEMENTE","DEMENTI")
    for i=0 to ubound(ArrPar)
      if instr(1,testoprop,ArrPar(i))>0 then
        response.redirect "pagina.asp"
      end if
    i=i+1
    next
    allora prima di confrontare dobbiamo trasformare tutto o in maiuscolo o in minuscolo con UCase o LCase pero se lo facciamo fuori dal ciclo se il testo passa la censura verra scritto tutto maiuscolo o tutto minuscolo e non vogliamo questo come dobbiamo fare???

    se passa la censura possiamo ridefinire una seconda volta testoprop con TESTOPROP = Replace (Request.Form("TESTOPROP"),"'","''")
    no forse é meglio creare una variabile testoprop solo per il controllo proviamo



    arturo juciara

    www.brasile-natal.com

  9. #9

    CI SIAMO RIUSCITI

    Grande Shagrat e grande kluster.

    Per i prossimi che ne avranno bisogno:

    Abbiamo 2 file Form.asp raccoglie le proposte inserprop.asp inserisce le proposte nel database:

    form.asp ha questi campi.

    NOMEPROP, EMAILPROP, TELPROP, PROPOSTA, NUMEROPROP, TESTOPROP

    Noi prima di inserire i dati nel database vogliamo controllare che testoprop non contenga parolacce o termini offensivi, se testoprop
    contiene parole da noi censurate il file inserprop.asp non inserisce
    i dati nel database ma rimanda ad altra pagina denominata pagina.asp.

    parole da noi censurate sulle quali si fara il controllo:

    pippo, pippa, deficiente, deficienti, demente, dementi


    questo sotto il code di inserprop.asp

    codice:
    <%
    Option Explicit
    %>
    <%
    Dim SQL, conn, rec, ArrPar, i, testocont
    Dim NOMEPROP, EMAILPROP, TELPROP, PROPOSTA, NUMEROPROP, TESTOPROP
    
    
    NOMEPROP = Replace (Request.Form("NOMEPROP"),"'","''")
    EMAILPROP = Replace (Request.Form("EMAILPROP"),"'","''")
    TELPROP = Replace (Request.Form("TELPROP"),"'","''")
    PROPOSTA = Replace (Request.Form("PROPOSTA"),"'","''")
    NUMEROPROP = Replace (Request.Form("NUMEROPROP"),"'","''")
    TESTOPROP = Replace (Request.Form("TESTOPROP"),"'","''")
    
    ' ci prendiamo testoprop e lo rinominiamo testocont per poterlo manipolare senza corrompere l'originale.
    
    testocont = testoprop
    
    ' trasformiamo tutto il testo in maiuscolo  perche le nostre 
    censure  sono in maiuscolo
    
    testocont=UCase(testocont)
    i=0
    ArrPar=array ("PIPPO","PIPPA","DEFICIENTE","DEFICIENTI","DEMENTE","DEMENTI")
    for i=0 to ubound(ArrPar)
      if instr(1,testocont,ArrPar(i))>0 then
        response.redirect "pagina.asp"
      end if
    
    i=i+1
    next
    
    ' se testocont passa il controllo scriviamo sul database
    
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.Open "Prova"
    SQL = "INSERT into veiculos (nomeprop, emailprop, telprop, proposta, numeroprop, testoprop ) "
    SQL= SQL & "values ('" & nomeprop & "', '" & emailprop & "', '" & telprop & "', '" & proposta & "', '" & numeroprop & "', '" & testoprop & "')"
    set Rec = Conn.Execute (SQL)
    
    ' scarico il recordset
    
    set rec=nothing
    
    Response.redirect "propostainserita.asp"
    %>
    ecco fatto adesso abbiamo anche la censura delle parolacce sul form delle proposte

    GRAZIE A TUTTI I PROF DI HTML

    arturo juciara

    www.brasile-natal.com

  10. #10

    ERRATA CORRIGE

    attenzione nel codice sopra c'é un errore

    dobbiamo togliere i=i+1

    altrimenti si implementa il controllo dell'arri di due alla volta quindi vengonocontrollate una parola si e una no

    il code modificato e testato che funziona é questo
    codice:
    ' trasformiamo tutto il testo in maiuscolo  perche le nostre 
    censure  sono in maiuscolo
    
    testocont=UCase(testocont)
    i=0
    ArrPar=array ("PIPPO","PIPPA","DEFICIENTE","DEFICIENTI","DEMENTE","DEMENTI")
    for i=0 to ubound(ArrPar)
      if instr(1,testocont,ArrPar(i))>0 then
        response.redirect "pagina.asp"
      end if
    
    next
    scusate a volte l'euforia fa correre troppo in fretta

    arturo juciara

    www.brasile-natal.com

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.