• User Newbie

    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


  • User Newbie

    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