Visualizzazione risultati 1 fino 21 di 21

Discussione: Filtro parolacce su file txt

  1. #1
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito Filtro parolacce su file txt

    Ciao ragazzi scusate se sono di nuovo qui a rompere ma non mi riesce di risolvere un piccolo problema con un array di parole che vorrei trasferire su un file esterno;

    Nel mio commentario ho questo codice per un filtro anti parolacce
    Codice PHP:
    // Controllo parolacce interamente realizzato da Bradiposo

    $parolacce=array('parolacce','parolacce','parolacce');

    //controllo url
    for ($i=0; $i < count($parolacce); $i++) {
    $exp = explode($parolacce[$i], $urlsito);
    if (
    $exp[0]!=$urlsito) {
    $ctrl = 1;
    //pag errore
    echo"<strong>ೡ Inserisci un url spazio valido!</strong>";
    }
    }
    eseguo il controllo anche nel campo nome e commento nello stesso modo,
    ora io vorrei mettere l'array delle parolacce su un file esterno ma non mi riesce di farlo funzionare.... chi mi aiuta????? Grazie

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Citazione Originalmente inviato da penelopesito Visualizza messaggio
    ora io vorrei mettere l'array delle parolacce su un file esterno ma non mi riesce di farlo funzionare.... chi mi aiuta????? Grazie
    Posta il codice che non riesci a far funzionare, e partiamo da li, ma direi che ti basta usare la funzione file().

  3. #3
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Ciao drednaut allora, ho preparato il file txt che contiene le parolacce, scritte una per riga come da iter, ora avevo provato ad inserire nel mio codice al posto di

    Codice PHP:
    $parolacce=array('parolacce','parolacce','parolacce');
    Codice PHP:
    $parolacce= file(filtro.txt);
    ma non mi funziona perchè probabilmente devo cambiare qualcosa nella funzione che cerca le parole vietate ovvero questa parte

    Codice PHP:
    for ($i=0; $i < count($parolacce); $i++) {
    $exp = explode($parolacce[$i], $urlsito);
    if (
    $exp[0]!=$urlsito) {
    $ctrl = 1;
    //pag errore
    echo"<strong>ೡ Inserisci un url spazio valido!</strong>";
    }
    }
    ma non saprei proprio come fare >_<'
    Ti ringrazio per aver risposto^^
    Ultima modifica di dreadnaut : 18-09-2012 alle ore 13.12.19 Motivo: + tag [php] per il codice

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    Codice PHP:
    $parolacce= file('filtro.txt');
    o meglio:
    Codice PHP:
    $file = 'filtro.txt'
    if(file_exists($file))
    $parolacce= file($file);
    else echo
    'Il file non è raggiungibile...';
    Ciao!

  5. #5
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Ragazzi grazie per la pazienza^^

    Allora Ale ho inserito la parte che mi hai scritto e ora il codice è così:

    Codice PHP:

    $file
    = 'filtro.txt';
    if(
    file_exists($file))
    $parolacce= file($file);
    else echo
    'Il file non è raggiungibile...';


    //controllo url
    for ($i=0; $i < count($parolacce); $i++) {
    $exp = explode($parolacce[$i], $urlsito);
    if (
    $exp[0]!=$urlsito) {
    $ctrl = 1;
    //pag errore
    echo"<strong>ೡ Inserisci un url spazio valido!</strong>";
    }
    }
    ho dovuto aggiunge un ; alla fine di
    Codice PHP:
    $file = 'filtro.txt';
    altrimenti mi dava un'errore
    ma non funziona, non effettua nessun controllo O_o

    Scusate se nel messaggio precedente non ho usato il bbcode, non ci avevo pensato con il box per la risposta rapida^^

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    Hai fatto bene a mettere il ";". Errore mio :)

    Comunque, prova a scrivere:
    Codice PHP:
    print_r($parolacce);
    Subito prima del for. Così vediamo se l'array acquisito è corretto

    Ah, dimenticavo: con "file()", ogni elemento dell'array "termina" con un "\n". Per evitare questo, dovresti passare come secondo parametro (alla file()), il flag "FILE_IGNORE_NEW_LINES".

    Ciao!
    Ultima modifica di alemoppo : 18-09-2012 alle ore 17.23.52

  7. #7
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Ciao Ale non succede nulla... che vuol dire?

    Mi devo studiare il flag "FILE_IGNORE_NEW_LINES". >_<'''
    Grazie

  8. #8
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    Invece di
    Codice PHP:
    $parolacce= file($file);
    prova con:
    Codice PHP:
    $parolacce= file($file,FILE_IGNORE_NEW_LINES);
    Cosa significa "non succede nulla"? La print_r non si vede?

    Ciao!

  9. #9
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Non non mi stampa nulla, è come se non ci fosse

    Grazie per la correzione FILE_IGNORE_NEW_LINES

  10. #10
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    puoi mostrare il sorgente come è adesso?

    Ciao!

  11. #11
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Perdonami Ale non avevo aggiunto la correzione
    Codice PHP:
    $parolacce= file($file,FILE_IGNORE_NEW_LINES);
    ora infatti funziona ma mi ripete l'echo della negazione due volte

    Codice PHP:
    echo"<strong>ೡ Inserisci un url spazio valido!</strong>";
    Forse è meglio se ti posto tutta la parte del controllo^^

    Codice PHP:
    $file = 'filtro.txt';
    if(
    file_exists($file))
    $parolacce= file($file,FILE_IGNORE_NEW_LINES);
    else echo
    'Il file non è raggiungibile...';


    //controllo url
    for ($i=0; $i < count($parolacce); $i++) {
    $exp = explode($parolacce[$i], $urlsito);
    if (
    $exp[0]!=$urlsito) {
    $ctrl = 1;
    //pag errore
    echo"<strong>ೡ Inserisci un url spazio valido!</strong>";
    }
    }


    //controllo nikname
    for ($i=0; $i < count($parolacce); $i++) {
    $exp = explode($parolacce[$i], $nikname);
    if (
    $exp[0]!=$nikname) {
    $ctrl = 1;
    //pag errore
    echo"<strong>ೡ Niente parolaccie nel mio commentario!</strong>";
    }
    }


    //controllo messaggio
    for ($i=0; $i < count($parolacce); $i++) {
    $exp = explode($parolacce[$i], $messaggio);
    if (
    $exp[0]!=$messaggio) {
    $ctrl = 1;
    //pag errore
    echo"<strong>ೡ Niente parolaccie nel mio commentario!</strong>";
    }
    }
    Ultima modifica di penelopesito : 19-09-2012 alle ore 02.07.55 Motivo: Corretto info

  12. #12
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    Non mi torna una cosa: cosa centrano le parolacce nell'url? (perché mi sembra di capire che vuoi controllare gli spazi).

    Prima, quando avevi l'array "scritto nel codice", funzionava correttamente? Se sì, sarebbe meglio vedere cosa c'é dentro l'array prelevato dal file con la print_r().

    Ciao!

  13. #13
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    La funzione mi serve per controllare che non vengano scritte parolacce nel campo del nome, campo link home e quindi nei commenti, purtroppo tanta gente è di una maleducazione incredibile.
    Ho provato a fare un messaggio con una parolaccia e il print e si vede il contenuto dell'array
    ti allego stamp
    http://i49.tinypic.com/2cdfhbl.jpg

    >_<''' scusate per le parolacce nello stamp ma sono quelle che ho ritrovato nei commenti^^
    Ultima modifica di penelopesito : 19-09-2012 alle ore 02.43.14

  14. #14
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    È voluto il "profile.php" e "download.php"?

    Comunque dicevo:
    Codice PHP:
    //controllo url
    for ($i=0; $i < count($parolacce); $i++) {
    $exp = explode($parolacce[$i], $urlsito);
    if (
    $exp[0]!=$urlsito) {
    $ctrl = 1;
    //pag errore
    echo"<strong>ೡ Inserisci un url spazio valido!</strong>";
    }
    }
    Non dovrebbe essere soltanto:

    Codice PHP:
    //controllo url

    if (strpos($urlsito,' ') !== FALSE) {
    $ctrl = 1;
    //pag errore
    echo"<strong>ೡ Inserisci un url spazio valido!</strong>";
    }
    Perché controlli le parolacce se poi il messaggio dice che ci son spazi?

    Ciao!

  15. #15
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Ciao Ale, si "profile.php" e "download.php"? sono voluti perchè mi hanno messo dei link assurdi.

    Ho sostituito con il tuo codice ma ora non funziona più >_<'''

  16. #16
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    ah no scusami... avevo letto (troppo frettolosamente) che il primo errore era che c'erano spazi nell'url...

    Ho provato così:
    Codice PHP:
    $file = 'filtro.txt';
    if(
    file_exists($file))
    $parolacce= file($file,FILE_IGNORE_NEW_LINES);
    else echo
    'Il file non è raggiungibile...';

    //..........

    //controllo url
    for ($i=0; $i < count($parolacce); $i++) {
    $exp = explode($parolacce[$i], $urlsito);
    if (
    $exp[0]!=$urlsito) {
    $ctrl = 1;
    //pag errore
    echo"<strong>ೡ Inserisci un url spazio valido!</strong>";
    }
    }

    //controllo nikname
    for ($i=0; $i < count($parolacce); $i++) {
    $exp = explode($parolacce[$i], $nikname);
    if (
    $exp[0]!=$nikname) {
    $ctrl = 1;
    //pag errore
    echo"<strong>ೡ Niente parolaccie nel mio commentario!</strong>";
    }
    }


    //controllo messaggio
    for ($i=0; $i < count($parolacce); $i++) {
    $exp = explode($parolacce[$i], $messaggio);
    if (
    $exp[0]!=$messaggio) {
    $ctrl = 1;
    //pag errore
    echo"<strong>ೡ Niente parolaccie nel mio commentario!</strong>";
    }
    }
    E funziona...

    Quali problemi ti da?
    Ah, nota che hai scritto "nikname" invece di "nickname", e all'inizio non mi funzionava perché le variabili erano diverse nel mio script .

    Ciao!
    Ultima modifica di alemoppo : 19-09-2012 alle ore 13.22.02

  17. #17
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Si Ale ho sbagliato a scrivere nikname >_<'' ma l'ho scritto dappertutto così ormai ciccia^^

    Allora lo script funziona perfettamente solo che si visualizza un doppio echo
    Codice PHP:
    echo"<strong>ೡ Niente parolaccie nel mio commentario!</strong>";


    non riesco proprio a capire perchè, mi viene in mente solo che faccia i controlli e trovi due errori e in questo caso sarebbero errori nel nikname e nel commento ufffffffffff


    - ho fatto una prova cambiando i messaggi di errore per il nome e il commento che erano uguali, non fa un doppio controllo,
    mi da il messaggio di errore esatto ma doppio O_o
    Ultima modifica di penelopesito : 19-09-2012 alle ore 15.17.39 Motivo: maggiori info

  18. #18
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    Non è che ci son 2 "parolacce"?

    Ciao!

  19. #19
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    No ne ho scritta solo una nel commento ^_^

  20. #20
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    Non so che dirti. A me funziona bene. (parolacce = "parola1", "parola2", "parola3")

    Ciao!

  21. #21
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Mi hai fatto pensare al discorso delle due parolacce e in effetti nell'array era ripetuta una parolaccia, ora non sto a specificare quale, una scritta x intero e una spezzata e il mio bravo controllo trovava due parolacce quindi ora è a posto ^_^

    In aggiunta per evitare in seguito casi di doppie parolacce ho variato un pochetto quì:
    Codice PHP:
    if ($exp[0]!=$urlsito && $ctrl!=1) {
    Ti ringrazio di cuore caro Ale sei stato gentilissimo ^_______^
    Un abbraccio a tutti

Regole di scrittura

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