- Home
- Categorie
- Coding e Sistemistica
- WordPress
- Wordpress accessibile commenti duplicati
-
Wordpress accessibile commenti duplicati
Ciao,
ho realizzato un tema accessibile per Wordpress, si chiama Santa Lucia e potete vederlo in opera (e fare il download) all'indirizzo wordpress.4elementi.info.
Per uniformare al template i messaggi di errore ho utilizzato due pagine intermedie (studiate per la verifica dei dati inseriti dall'utente nel formulario) che segnalano errore se non vengono inseriti nome, e-mail e messaggio e se si scrive un commento duplicato.
E qui la difficoltà: mi connetto al database e richiamo il contenuto dei campi della colonna che contengono il testo dei commenti
$query = "SELECT comment_content FROM wp_comments";
$result = mysql_query($query) or die(mysql_error());assegno alla variabile $testo (nel contesto di un ciclo while) la ricerca dei contenuti
while($row = mysql_fetch_array($result)){
$testo = $row['comment_content'];vado a raffrontare il testo del messaggio inserito nel formulario (che va col metodo post nella variabile $commento) con il testo ottenuto dalla query sui campi commento del database Mysql
if ($commento==$testo)
{
print "<p>Attenzione, esiste gia'un commento con lo stesso contenuto: probabilmente non l'hai scritto tu, se vuoi ritorna alla <a href="javascript:history.back()">pagina precedente</a> e correggi il testo. Se il link di ritorno alla pagina non funziona, premi il pulsante "indietro di una pagina" del tuo <span lang="en">browser</span></p>";
}Non funziona a meno che i due commenti uguali siano scritti consecutivamente: eppure se scrivo con echo il contenuto delle variabile $testo e $commento vedo che corrisponde.
E' poco precisa la funzione di confronto if ($commento==$testo) fuori del ciclo while?
Grazie
Francesco
-
Ho risolto (saggiamente consigliato) modificando la query in
$query = "SELECT comment_content FROM wp_comments WHERE comment_content='".$commento."'";
$result = mysql_query($query) or die(mysql_error());
$esiste=mysql_num_rows($result);
if($esiste >0){Il problema era che essendo l'algoritmo inserito in un ciclo while, il confronto avveniva solo col primo commento estratto dal database.
Ciao
Francesco