Pagina 1 di 3 123 UltimoUltimo
Visualizzazione risultati 1 fino 30 di 70

Discussione: [js] Bloccare parole proibite

  1. #1
    Guest

    Predefinito [js] Bloccare parole proibite

    Ho un form e sto cercando uno script che con un'alert blocca le parole proibite inserite nei campi

  2. #2
    Guest

    Predefinito

    Citazione Originalmente inviato da photoman
    Ho un form e sto cercando uno script che con un'alert blocca le parole proibite inserite nei campi
    Solo js? penso ti sia più facile con php, ti basterebbe fare un controllo sui dati inseriti, del tipo:
    Codice PHP:
    <?php
    if($_POST['nomecampo']=="parolaproibita1" OR $_POST['nomecampo']=="parolaproibita2" ecc...) {
    echo
    "<script type='text/Javascript>
    alert('Errore');
    </script>"
    ;
    exit();
    }
    else {
    ?>
    //tutto il codice
    <?php
    }
    ?>
    ciao

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da NetSkin
    Solo js? penso ti sia più facile con php, ti basterebbe fare un controllo sui dati inseriti, del tipo:
    Codice PHP:
    <?php
    if($_POST['nomecampo']=="parolaproibita1" OR $_POST['nomecampo']=="parolaproibita2" ecc...) {
    echo
    "<script type='text/Javascript>
    alert('Errore');
    </script>"
    ;
    exit();
    }
    else {
    ?>
    //tutto il codice
    <?php
    }
    ?>
    ciao
    Ce l'ho già in php, vorrei metterlo anche in js in modo che fa uscire subito l'alert

  4. #4
    L'avatar di bastardofuori
    bastardofuori non è connesso AlterGuru
    Data registrazione
    04-04-2006
    Messaggi
    1,535

    Predefinito

    Citazione Originalmente inviato da photoman
    Ho un form e sto cercando uno script che con un'alert blocca le parole proibite inserite nei campi
    Posta lo script...

  5. #5
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Non è molto difficile, devi usare questa funzione e fare una piccola modifica al form:
    Codice HTML:
    <script type="text/javascript">
    function pre_submit ()
    {
       var testo = document.nome_modulo.nome_textarea.value;
       var badword_list = new Array ('bw1', 'bw2', 'bw3', ...); // qui tutte le bad-word
       for (var i = 0; i < badword_list.length; i++)
       {
          if (testo.indexOf (badword_list[i]) >= 0)
          {
             alert ('Badword inserita: ' + badword_list[i]);
             return false;
          }
       }
       return true;
    }
    </script>
    ...
    <form name="nome_modulo" action="invia.php" onsubmit="pre_submit()">
    ...
    <textarea name="nome_textarea">
    Inserisci qui il testo da inviare...
    </textarea>
    ...
    </form>
    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  6. #6
    Guest

    Predefinito

    Citazione Originalmente inviato da dementialsite
    Non è molto difficile, devi usare questa funzione e fare una piccola modifica al form:
    Codice HTML:
    <script type="text/javascript">
    function pre_submit ()
    {
       var testo = document.nome_modulo.nome_textarea.value;
       var badword_list = new Array ('bw1', 'bw2', 'bw3', ...); // qui tutte le bad-word
       for (var i = 0; i < badword_list.length; i++)
       {
          if (testo.indexOf (badword_list[i]) >= 0)
          {
             alert ('Badword inserita: ' + badword_list[i]);
             return false;
          }
       }
       return true;
    }
    </script>
    ...
    <form name="nome_modulo" action="invia.php" onsubmit="pre_submit()">
    ...
    <textarea name="nome_textarea">
    Inserisci qui il testo da inviare...
    </textarea>
    ...
    </form>
    Stammi bene...
    Devo provarlo però gia che ci siamo, io avevo visto un sito con un codice php che però faceva uscire subito l'alert senza nemmeno inviare i dati, questo sarebbe l'ideale perchè userei il solo codice php.

    Questo è il codice che ho però blocca dopo l'invio e rimanda l'utente al form:

    Codice PHP:
    //parole proibite (vedi guestbook/parole-proibite.php)
    $stringa = $_POST['messaggio'].' '.$nome.' '.$suoemail.' '.$citta;
    foreach(
    $parole_proibite as $parola){
    if (
    stristr($stringa, $parola) !== false){
    $errore .= "La parola $parola non è ammessa";
    }
    }
    if (
    $errore):
    $tab_ins;
    $meta="<META http-equiv=\"REFRESH\" content=\"2; url=http://www.miosito.it/form.php\">";
    else:
    $tab_ins .= "GRAZIE ".$nome." MESSAGGIO INVIATO!";
    Ultima modifica di photoman : 09-07-2007 alle ore 18.20.53

  7. #7
    Guest

    Predefinito

    Il codice php viene eseguito sul server e poi il server restituisce l'output...
    I dati vengono immessi lato client quindi è impossibile (oppure esiste un metodo che io non conosco) che uno script php ti restituisce un alert senza inviare i dati...

    Un modo ci sarebbe, ma si basa sempre sull'invio di dati: Ajax...
    Spero di essere stato chiaro...
    Ciao

  8. #8
    Guest

    Predefinito

    Citazione Originalmente inviato da giuseppeiemma
    Il codice php viene eseguito sul server e poi il server restituisce l'output...
    I dati vengono immessi lato client quindi è impossibile (oppure esiste un metodo che io non conosco) che uno script php ti restituisce un alert senza inviare i dati...

    Un modo ci sarebbe, ma si basa sempre sull'invio di dati: Ajax...
    Spero di essere stato chiaro...
    Ciao
    Allora dimmi se si può fare una cosa del genere:

    il codice che ho postato prima prende le parole proibite da un'array che si trova in un'altro file.php
    Codice PHP:
    <?
    $parole_proibite
    = array ("pera","mela","ananas");
    ?>
    Si può creare uno script che "pesca" le parole da questo array e che fa uscire subito l'alert?

  9. #9
    Guest

    Predefinito

    In linea di principio si potrebbe fare così:
    Codice PHP:
    <?
    if (parola_pescata==true){
    echo
    "<script type=\"text/javascript\">";
    echo
    "alert (\"Ho pescato una parola non permessa. Ricompila il modulo\");";
    echo
    "</script>";
    }
    ?>
    Ciao

  10. #10
    Guest

    Predefinito

    Citazione Originalmente inviato da giuseppeiemma
    In linea di principio si potrebbe fare così:
    Codice PHP:
    <?
    if (parola_pescata==true){
    echo
    "<script type=\"text/javascript\">";
    echo
    "alert (\"Ho pescato una parola non permessa. Ricompila il modulo\");";
    echo
    "</script>";
    }
    ?>
    Ciao
    Scusa, non vedo il richiamo all'array $parole-proibite

  11. #11
    Guest

    Predefinito

    emh..non vorrei appesantire i già tanti script postati, ma leggendo le parole javascript, campo, filtro e alert a me mi viene da dirti questo:


    File js:

    Codice:
    function controlla()
    {
        var stringa = document.modulo.testo.value;
            if (stringa.indexOf("a") != (-1))
            {
                alert("Il carattere 'a' non è consentito");
                document.modulo.testo.value = stringa.substring(0,(stringa.length - 1));
            }
    }
    Form Input:

    Codice:
    <form name="modulo"><input type="text" name="testo" onKeyUp="controlla()"></form>
    Per intenderci, ogni qual volta qualcuno scriverà (nel nostro caso) la lettera a all'interno dell'input un alert appare indicando l'errore, e la lettera viene cancellata .. tutto ciò senza dover inviare il form.
    Saluti
    Ultima modifica di KeeperArt : 09-07-2007 alle ore 19.14.26

  12. #12
    Guest

    Predefinito

    Codice PHP:
    foreach($parole_proibite as $parola){
    if (
    stristr($stringa, $parola) !== false){
    $parola_pescata = true;
    break;
    }
    }
    oppure
    Codice PHP:
    foreach($parole_proibite as $parola){
    if (
    stristr($stringa, $parola) !== false){
    echo
    "<script type=\"text/javascript\">";
    echo
    "alert (\"Ho pescato una parola non permessa. Ricompila il modulo\");";
    echo
    "</script>";
    break;
    }
    }
    Magari dai uno sguardo qui: http://php.html.it/guide/leggi/99/guida-php-di-base/ ti rivedi cicli e array
    Ciao

  13. #13
    Guest

    Predefinito

    Citazione Originalmente inviato da KeeperArt
    emh..non vorrei appesantire i già tanti script postati, ma leggendo le parole javascript, campo, filtro e alert a me mi viene da dirti questo:


    File js:

    Codice:
    function controlla()
    {
        var stringa = document.modulo.testo.value;
            if (stringa.indexOf("a") != (-1))
            {
                alert("Il carattere 'a' non è consentito");
                document.modulo.testo.value = stringa.substring(0,(stringa.length - 1));
            }
    }
    Form Input:

    Codice:
    <form name="modulo"><input type="text" name="testo" onKeyUp="controlla()"></form>
    Per intenderci, ogni qual volta qualcuno scriverà (nel nostro caso) la lettera a all'interno dell'input un alert appare indicando l'errore, e la lettera viene cancellata .. tutto ciò senza dover inviare il form.
    Saluti
    C'è l'ho già un codice simile, il mio non cancella la lerrera ma illumina di rosso il campo, prova ad inserire la barra inversa in un campo e clicca invia http://www.photoman.altervista.org/guestbook/form.php


    EDIT:
    Io ce l'ho cosi, si tratta di inserirci dentro l'array php se possibile, oppure crearne uno js:

    if((f.nome.value.indexOf("<")||(">")||("\\") != -1)){
    f.nome.style.backgroundColor='red'
    alert("I caratteri < > \\ non sono ammessi");
    f.nome.focus();
    return false;
    }
    ...
    Ultima modifica di seneca : 09-07-2007 alle ore 20.29.55

  14. #14
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Dovrebbe bastarti modificare la funzione controlla in questo modo:
    Codice:
    function controlla()
    {
        var parole = new Array("parola1","parola2","parola3");
        var stringa = document.modulo.testo.value;
        for(i=0;i<parole.length;i++)
            if (stringa.indexOf(parole[i]) != (-1))
            {
                alert("La parola '"+parole[i]+"' non è consentita");
                break;
            }
    }
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  15. #15
    Guest

    Predefinito

    Citazione Originalmente inviato da funcool
    Dovrebbe bastarti modificare la funzione controlla in questo modo:
    Codice:
    function controlla()
    {
        var parole = new Array("parola1","parola2","parola3");
        var stringa = document.modulo.testo.value;
        for(i=0;i<parole.length;i++)
            if (stringa.indexOf(parole[i]) != (-1))
            {
                alert("La parola '"+parole[i]+"' non è consentita");
                break;
            }
    }
    Ho provato a inserirlo ma da errore, il codice iniziale che ho è questo:

    Codice:
    function controlla1(){
    var f = document.mioform1;
    //.value == "" rende il campo obbligatorio
    if(f.nome.value == ""){
    f.nome.style.backgroundColor='#e2e2e2'
    alert("Inserire il Nome");
    f.nome.focus();
    return false;
    }
    if((f.nome.value.indexOf("<") != -1) || (f.nome.value.indexOf(">") != -1) || (f.nome.value.indexOf("\\") != -1)){
    f.nome.style.backgroundColor='red'
    alert("I caratteri  <  > \\  non sono ammessi");
    f.nome.focus();
    return false;
    }
    
    ...

  16. #16
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Hai provato a inserire solo il corpo della funzione controlla() segnalata da funcool (che poi non è molto diversa dalla mia sopra...) sostituendo il break; con return false;?
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  17. #17
    Guest

    Predefinito

    Citazione Originalmente inviato da dementialsite
    Hai provato a inserire solo il corpo della funzione controlla() segnalata da funcool (che poi non è molto diversa dalla mia sopra...) sostituendo il break; con return false;?
    Si cosi funziona, ho pero 2 domande:
    1. è possibile sostituire l'array sotto con il mio php che contiene le parole?
    2. il codice sotto devo applicarlo ad ogni campo o si può usarne uno per tutti quelli che mi interessano?

    Codice:
    function controlla1(){
    var f = document.mioform1;
    var parole = new Array("mela","pera","ananas");
    var stringa = document.mioform1.nome.value;
    for(i=0;i<parole.length;i++)
    if (stringa.indexOf(parole[i]) != (-1)){
    alert("La parola '"+parole[i]+"' non è consentita");
    return false;
    }
    //.value == "" rende il campo obbligatorio
    if(f.nome.value == ""){
    f.nome.style.backgroundColor='#e2e2e2'
    alert("Inserire il Nome");
    f.nome.focus();
    return false;
    }
    if((f.nome.value.indexOf("<") != -1) || (f.nome.value.indexOf(">") != -1) || (f.nome.value.indexOf("\\") != -1)){
    f.nome.style.backgroundColor='red'
    alert("I caratteri  <  > \\  non sono ammessi");
    f.nome.focus();
    return false;
    }

  18. #18
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Citazione Originalmente inviato da photoman
    1. è possibile sostituire l'array sotto con il mio php che contiene le parole?
    Puoi far stampare a video al PHP il codice per creare l'array in JavaScript.

    Citazione Originalmente inviato da photoman
    2. il codice sotto devo applicarlo ad ogni campo o si può usarne uno per tutti quelli che mi interessano?
    Puoi usarlo per più campi, magari mandandogli come parametro il campo.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  19. #19
    Guest

    Predefinito

    Citazione Originalmente inviato da funcool
    Puoi far stampare a video al PHP il codice per creare l'array in JavaScript.


    Puoi usarlo per più campi, magari mandandogli come parametro il campo.
    Spiegami: non ho capito il primo punto , come faccio ad usarlo per ogni campo, che modifica ci faccio?

  20. #20
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Prova così (dovrebbe crearti dall'array $parole in PHP l'array parole in JavaScript):
    Codice PHP:
    var parole=new Array(<?php
    for($i=0;$i<count($parole)-1;$i++)
    echo
    "'{$parole[$i]}',";
    echo
    "'{$parole[count($parole)-1]}'";
    ?>);
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  21. #21
    Guest

    Predefinito

    Citazione Originalmente inviato da funcool
    Prova così (dovrebbe crearti dall'array $parole in PHP l'array parole in JavaScript):
    Codice PHP:
    var parole=new Array(<?php
    for($i=0;$i<count($parole)-1;$i++)
    echo
    "'{$parole[$i]}',";
    echo
    "'{$parole[count($parole)-1]}'";
    ?>);
    Ho messo cosi mi da errore di sintassi, la pagina dove c'è l'array è parole-proibite.php, l'array è $parole_proibite

    Codice:
    function controlla1(){
    var f = document.mioform1;
    var parole=new Array(<?php 
    for($i=0;$i<count($parole_proibite)-1;$i++) 
    echo "'{$parole[$i]}',"; 
    echo "'{$parole[count($parole)-1]}'"; 
    ?>);  
    var stringa = document.mioform1.nome.value;
    for(i=0;i<parole.length;i++)
    if (stringa.indexOf(parole[i]) != (-1)){
    f.nome.style.backgroundColor='red'
    alert("La parola '"+parole[i]+"' non è ammessa");
    return false;
    }

  22. #22
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    In tutti i punti dove c'è $parole devi mettere $parole_proibite.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  23. #23
    Guest

    Predefinito

    Citazione Originalmente inviato da funcool
    In tutti i punti dove c'è $parole devi mettere $parole_proibite.
    Fatto, ma mi da errore di sintassi su questa riga:
    Codice PHP:
    echo "'{$parole_proibite[$i]}'";

  24. #24
    Ospite Guest

    Predefinito

    Codice PHP:
    <form name="mioform1" onsubmit="javascript:controlla1();" action="" method="POST">
    <input type="text" name="nome"><input type="submit">
    </form>
    <?
    $parole_proibite
    =array("jhgj","Jhgjh","hjghjg");
    ?>
    <script type="text/javascript">
    function controlla1(){
    var f = document.mioform1;
    var parole=new Array(<?php
    for($i=0;$i<count($parole_proibite)-1;$i++)
    echo
    "'{$parole_proibite[$i]}',";
    echo
    "'{$parole_proibite[count($parole_proibite)-1]}'";
    ?>);
    var stringa = document.mioform1.nome.value;
    for(i=0;i<parole.length;i++)
    if (stringa.indexOf(parole[i]) != (-1)){
    f.nome.style.backgroundColor='red'
    alert("La parola '"+parole[i]+"' non è ammessa");
    return false;
    }}
    </script>

  25. #25
    Guest

    Predefinito

    Citazione Originalmente inviato da probid
    Codice PHP:
    <form name="mioform1" onsubmit="javascript:controlla1();" action="" method="POST">
    <input type="text" name="nome"><input type="submit">
    </form>
    <?
    $parole_proibite
    =array("jhgj","Jhgjh","hjghjg");
    ?>
    <script type="text/javascript">
    function controlla1(){
    var f = document.mioform1;
    var parole=new Array(<?php
    for($i=0;$i<count($parole_proibite)-1;$i++)
    echo
    "'{$parole_proibite[$i]}',";
    echo
    "'{$parole_proibite[count($parole_proibite)-1]}'";
    ?>);
    var stringa = document.mioform1.nome.value;
    for(i=0;i<parole.length;i++)
    if (stringa.indexOf(parole[i]) != (-1)){
    f.nome.style.backgroundColor='red'
    alert("La parola '"+parole[i]+"' non è ammessa");
    return false;
    }}
    </script>
    Continua a dare errore di sintassi...però, senti: ho elaborato il codice sotto è funzionante e trova la parola singolare e plurale però la regExp c'e l'ho solo qui in js.
    Che dici di crearla in php e richiamarla qui nel nuovo codice? Non è più semplice?

    Codice:
    function controlla1(){
    var f = document.mioform1;
    var parole =  new RegExp("\\b(mel(a|e)|per(a|e))\\b");   
    var stringa = document.mioform1.nome.value;
    if(stringa.match(parole) && stringa.match(parole)[0]){         
    f.nome.style.backgroundColor='red'
    alert("La parola '"+stringa.match(parole)[0]+"' non è ammessa");
    return false;
    }

  26. #26
    Ospite Guest

    Predefinito

    Continua a dare errore di sintassi...
    Che errore ti da??
    Perchè io l'ho provato e a me funziona perfettamente...
    magari prima di stendere un nuovo script prova a postare PER INTERO quello che continua a darti errore così possiamo sistemarlo

  27. #27
    Guest

    Predefinito

    Citazione Originalmente inviato da probid
    Che errore ti da??
    Perchè io l'ho provato e a me funziona perfettamente...
    magari prima di stendere un nuovo script prova a postare PER INTERO quello che continua a darti errore così possiamo sistemarlo
    L'ho messo nel file script.js cosi errore di sintassi nella riga rossa:

    <?
    $parole_proibite=array("jhgj","Jhgjh","hjghjg");
    ?>
    function controlla1(){
    var f = document.mioform1;
    var parole=new Array(<?php
    for($i=0;$i<count($parole_proibite)-1;$i++)
    echo "'{$parole_proibite[$i]}',";
    echo "'{$parole_proibite[count($parole_proibite)-1]}'";
    ?>);
    var stringa = document.mioform1.nome.value;
    for(i=0;i<parole.length;i++)
    if (stringa.indexOf(parole[i]) != (-1)){
    f.nome.style.backgroundColor='red'
    alert("La parola '"+parole[i]+"' non è ammessa");
    return false;
    }}

  28. #28
    Ospite Guest

    Predefinito

    Non puoi mettere lo script js in un file con estensione .js perchè anche il codice js contiene una porzione di php.
    Quindi devi mettere tutto nello stesso file come ti ho indicato nel post 24.

  29. #29
    Guest

    Predefinito

    Citazione Originalmente inviato da probid
    Non puoi mettere lo script js in un file con estensione .js perchè anche il codice js contiene una porzione di php.
    Quindi devi mettere tutto nello stesso file come ti ho indicato nel post 24.
    Ora da errore di sintassi qui:

    function controlla1(){
    var f = document.mioform1;
    var parole=new Array(<?php
    for($i=0;$i<count($parole_proibite)-1;$i++) echo "'{$parole_proibite[$i]}',";
    echo "'{$parole_proibite[count($parole_proibite)-1]}'";
    ?>);
    var stringa = document.mioform1.nome.value;
    for(i=0;i<parole.length;i++)
    if (stringa.indexOf(parole[i]) != (-1)){
    f.nome.style.backgroundColor='red'
    alert("La parola '"+parole[i]+"' non è ammessa");
    return false;
    }
    }

  30. #30
    Ospite Guest

    Predefinito

    Ti ho già chiesto prima che errore ti desse,ma non hai risposto.
    Non è molto facile riuscire ad aiutarti in questo modo...

Pagina 1 di 3 123 UltimoUltimo

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •