bloccare parole non consentite

Bruce5000

Utente Attivo
14 Ott 2007
106
0
0
Salve, ho un sito che ha un form in cui un utente può inserire il proprio sito web, email,
banner, ecc..
Nel form c'è anche un campo textarea in cui inserire le parole chiavi; devo fare un controllo di
queste parole in modo da bloccare l'invio del form se un utente inserisce le parole chiavi
non consentite che sono memorizzate in un database.
Ho fatto così ($parolechiave contiene il valore della textarea via POST):
PHP:
<?php
 $sql = mysql_query("SELECT * FROM spam_aristotele WHERE keyword LIKE '%".$parolechiave."%'") or die (mysql_error());

 if(mysql_num_rows($sql) > 0)
 {
  echo "Non si accettano siti spam.<br>";
 }
?>
Se si inserisce una singola parola funziona ma se inserisco 2 o più parole il controllo non va.
Potete aiutarmi?
 

lotus

Utente Attivo
5 Mag 2009
543
8
0
Ciao, se ho capito il problema la risoluzione potrebbe seguire i seguenti step:

Suddividere la stringa del valore inserito nel textbox in un array contenente per ciascun item una parola singola.
Successivamente fare il check per ciascuna parola se è contenuta all'interno della blacklist.
Se utilizzi quest'approccio ti scongilio di inserire le parole all'interno del db poichè il db avrebbe troppe query.
A prescindere da questo php offre svariate funzioni per il filter e la verifica.
Nella fattispece, potresti estrarre tutte le keywork della blacklist presenti nel db, inserirle in un array e fare un check incrociato con l'array derivante dalla suddivisione in parole della stringa della textbox.
Il check per verificare se l'elemento è contenuto nell'array puoi farlo tramite la funzione in_array(valore, array) mentre la conversione da stringa ad array puoi farla tramite explode.
La funzione array_walk, infine, consente di applicare una funziona a tutti gli elementi di un array.
Quest'ultima credo faccia proprio al caso tuo..

Fammi sapere se è tutto chiaro o ci sono problemi
Ciao, Ciro
 

Bruce5000

Utente Attivo
14 Ott 2007
106
0
0
ho fatto così ma ancora non va
PHP:
$array_textarea=explode("  ",$parolechiave);
	
$sql = mysql_query("SELECT * FROM spam_aristotele") or die (mysql_error());
while($row = mysql_fetch_array($sql))
{
$parole = $row['keyword']." ";
}
	foreach($array_textarea as $array_m)
	{
	      if(in_array($parole, $array_m)) 

	{
	      echo "Non si accettano siti spam.<br><br>\n";
	}
	}
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
24
Roma
alessandro1997.netsons.org
Il sistema che usi, oltre a non funzionare (e al momento non posso controllare perché) presenta alcuni problemi, uno dei tanti è che se una delle parole proibite viene inserita tra altri caratteri, ad esempio proibito,, il controllo non funziona.
 

Bruce5000

Utente Attivo
14 Ott 2007
106
0
0
Puoi dirmi per cortesia come posso correggere il codice per farlo
funzionare grazie.
 

lotus

Utente Attivo
5 Mag 2009
543
8
0
Ciao; il codice non avrò modo di provarlo fino a lunedi.
Per il problema segnalato da alessandro potreesti ovviare sostituendo tutti i caratteri di punteggiatura con uno spazio..
 
Discussioni simili
Autore Titolo Forum Risposte Data
G bloccare la digitazione parole troppo lunghe Javascript 5
A [PHP] Bloccare utente tramite indirizzo IP PHP 3
T come bloccare indirizzi ip Reti LAN e Wireless 2
P Bloccare connessione internet per gli emulatori in android studio Sviluppo app per Android 2
M [PHP] Bloccare richieste indesiderate cURL PHP 12
A [PHP] Bloccare ridimensionamento tabella PHP 1
giancadeejay Bloccare utente se non loggato con script php PHP 12
Shyson Bloccare email spam PHP 0
MarcoGrazia [htaccess] Bloccare tutti meno il proprio sito Apache 0
V bloccare un utente PHP 2
Gabriele Visioli Normativa sui Cookie e bloccare le Pubblicità/Affiliazioni WordPress 0
filomeni Sito in fase di sviluppo: bloccare tutti gli spider SEO e Posizionamento 5
Monital Bloccare l'accesso ad una cartella sull'ftp PHP 3
E Bloccare click su tabella HTML e CSS 2
L bloccare directory superiore ad uno script. PHP 0
I Bloccare registrazione Javascript 1
filippino Software per bloccare pubblicità su Internet Windows e Software 1
T Non bloccare accelerometro quando dispositivo va in standby Sviluppo app per Android 2
G bloccare file php PHP 6
R bloccare click continuo annunci PHP 2
valient13 bloccare le formazioni tramite il tempo PHP 6
C bloccare indicizzazione sottodominio SEO e Posizionamento 1
L bloccare l'accesso pagine php diretto PHP 6
neo996sps [PHP + MySQL] Se faccio F5 inserisce nuovo record. Come bloccare? PHP 7
G Bloccare sfondo HTML e CSS 10
D Bloccare le news della home a tre!!! PHP 2
borgo italia outlook: impossibile bloccare indirizzo di posta Windows e Software 5
F come bloccare un IP sul vs. Forum Supporto Mr.Webmaster 0
A bloccare salvataggio dell'immagine Sicurezza e Virus 3
M bloccare celle di un foglio excel e proteggerlo via codice Classic ASP 2
P nascondere o bloccare un file Windows e Software 1
S frontpage bloccare pagina nel browser HTML e CSS 2
grottafelix Bloccare l'accesso ad un utente che non ha questo IP Classic ASP 2
sbobby Bloccare l'hotlinking!! HTML e CSS 20
P Bloccare PROXY Web Server 0
shee bloccare campo di testo HTML e CSS 4
cerbero Bloccare il dl delle immagini HTML e CSS 7
G Bloccare l'esecuzione di una funzione Javascript 2
S bloccare dimensione tabelle frontpage2000 HTML e CSS 4
M Per bloccare gli Ip indesiderati su php - nuke PHP 0
R Problema con FP 2003: bloccare scorrimento menu HTML e CSS 4
H Click destro da bloccare HTML e CSS 10
P Bloccare l'accesso con ID E PWD HTML e CSS 9
E Aggiungere Parole PHP 1
W Nome di dominio efficace: 3 parole chiave o nomecognome? SEO e Posizionamento 0
C analisi numero parole Programmazione 2
M Problema inserimento parole con apostrofo nel db PHP 5
G alcune parole colorate jQuery 1
Cosina [PHP] fwrite problema con le parole accentate PHP 9
P Ciao a tutti con le parole di Vasco Rossi: una splendida giornata !!! Presentati al Forum 1

Discussioni simili