Visualizzazione risultati 1 fino 15 di 15

Discussione: Problema con gli spam bot sul mio guestbook

  1. #1
    Data registrazione
    07-01-2012
    Messaggi
    0

    Unhappy Problema con gli spam bot sul mio guestbook

    Salve a tutti ho un problema con gli spam bot sul mio guestbook mi rompono da mesi purtroppo il guestbook che era ottimo di altervista come sapete è stato dismesso e ho dovuto farne uno io in php ma aggiungendo il recaptcha di google non mi funziona ho provato diversi codici ma nessuno sembra funzionare potete aiutarmi per favore vi linko il mio sito web: chatdivertimento.altervista.org per adesso ho ovviato bloccando dal codice per inserire i commenti oppure ogni santo giorno e ora dovevo riaggiornare il file guests.txt che è dove finiscono i commenti cancellando così quelli dei bot in pratica manualmente e mi son scocciato di farlo!!Grazie a chi mi saprà aiutare.

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

    Predefinito

    Anni fa avevo provato recaptcha e sembra ancora funzionante (vedi qui).

    Vedo però che ora c'è una nuova versione. Puoi mostrare come hai effettuato il controllo lato PHP?

    Ciao!
    Ultima modifica di alemoppo : 08-09-2021 alle ore 01.42.33

  3. #3
    Data registrazione
    07-01-2012
    Messaggi
    0

    Predefinito

    si eccoti il codice che ho:

    Codice PHP:
    <td colspan="2" class="intestazione">
                                <input type="hidden" value="inserimento" name="azione">
                                <input type="hidden" name="dataora" value="'.$this->dataora_attuale().'">
                                <div class="g-recaptcha" data-sitekey="6LfHA0scAAAAADYev-zAHPdbv9xXNmM3SJ2BX5I_"></div>
                                <input type="submit" name="postati" value="Invia" class="pulsanti"> 
                                <input type="reset" name="cancell" value="cancella" class="pulsanti">
                                <!--<div class="frc-captcha" data-sitekey="FCMVGA4CT9IE4I53" data-callback="myCallback"></div>-->
                            </td>
                        </tr>    
                    </table>
                </form>
            ';
            return $html_form_immissione;
        }
    }
    $guests = new guestbook();
    if (isset($_POST["azione"]) && ($_POST["azione"] == "inserimento")) {
        $guests->aggiungi_record();

    $html = "<table><tr><td>";
    if (isset($_POST["azione"]) && ($_POST["azione"] == "dettagli")) {
        $html .= $guests->mostra_record($_POST["indice"]);
    } else {
        $html .= $guests->mostra_lista();
    }
    $html .= "</td></tr><tr><td>";
    $html .= $guests->leggi_dati();
    $html .= "</td></tr></table>";
    unset($guests);
    ?>
    <!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title> Guestbook </title>
    <meta name="Generator" content="EditPlus">
    <meta name="Author" content="">
    <meta name="Keywords" content="">
    <meta name="Description" content="">

    <script language="JavaScript" type="text/javascript"><!--

    var tdmessaggio="Aiaiaia Giu' Le Mani!!";

    // Autore dello script: Morpheus™

    // Funzione che disabilita il tasto destro su Internet Explorer
    function clickIE4(){ if(event.button==2){ if(tdmessaggio!= '') alert(tdmessaggio); return false; } }

    // Funzione che disabilita il tasto destro su Netscape e FireFox
    function clickNS4(e){
    if (document.layers||document.getElementById&&!document.all){ if (e.which==2||e.which==3){ if(tdmessaggio!= '') alert(tdmessage); return false; } }
    }

    // Controlli per la selezione del browser
    if (document.layers){ document.captureEvents(Event.MOUSEDOWN); document.onmousedown=clickNS4; }
    else if (document.all&&!document.getElementById){ document.onmousedown=clickIE4; }
    document.oncontextmenu=function(){ if(tdmessaggio!= '') alert(tdmessaggio); return false;};

    //--></script>

    <script src="https://www.google.com/recaptcha/api.js"></script>

    <?php
    if (isset($_POST['postati'])) {

        
    $response file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret=6LfHA0scAAAAAKb1Gv6gJIWVJ_uL1IwPGzi3Uo8Z&response='.$_POST['g-recaptcha-response'].'&remoteip='.$_SERVER['REMOTE_ADDR']);
        
    $responseDecoded json_decode($response);
        if ( 
    $responseDecoded->success == true ) {
        
        
    // verifica andata a buon fine
        
        
    } else {
        
            
    // verifica non andata a buon fine
            
        
    }
        
    }
    ?>
    Ultima modifica di chatdivertimento : 08-09-2021 alle ore 02.45.00

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

    Predefinito

    E l'inserimento lo fai al posto di "// verifica andata a buon fine"? Oppure questo è il codice completo? Se è il codice completo, devi spostare:
    Codice PHP:
    if (isset($_POST["azione"]) && ($_POST["azione"] == "inserimento")) {
        
    $guests->aggiungi_record();

    In quel punto: il metodo aggiungi_record() immagino aggiunga appunto il commento: questo devi farlo solamente se il captcha è stato "passato".

    Ciao!

  5. #5
    Data registrazione
    07-01-2012
    Messaggi
    0

    Thumbs up

    Uhm ho provato ma non va cmq il codice intero è questo qua:
    Codice PHP:
    <?php
    /*
    Text Guestbook Matrix
    script per gestire un libro degli ospiti utilizzando un file di testo
    data: 18 Febbraio 2021
    Autore: Morpheus™
    Potete distribuire questo script per usi non commerciali e modificarlo 
    come desiderate. Vi prego di citare sempre l'autore originale e di
    evidenziare e firmare eventuali modifiche. Grazie.
    */
    class guestbook {
        
    // parametri
        
    var $separatore_righe "--inizioriga--";
        var 
    $separatore_campi "--finecampo--";
            
    // numero di record mostrato per pagina: è possibile modificare questo valore a vostro piacimento
        
    var $record_per_pagina 3;
            
    // informazioni sulla locazione e sul nome del file di testo
        
    var $percorso_fisico_guest "";
        var 
    $guesttxt "guests.txt";
        var 
    $nomefile;
            
    // larghezza in pixel della tabella esterna
        
    var $larghezza_tabella "450";
            
    // settando questa opzione a vero, il visitatore potrà visualizzare i dettagli di un singolo record
        
    var $mostra_dettagli true;
        
    // caratteristiche del guestbook
        
    var $righe = array();
        var 
    $posizione;
        var 
    $numero_righe;
        var 
    $book;
        var 
    $linea;
        
    // COSTRUTTORE
        
    function guestbook() {
            
    $this->nomefile $this->percorso_fisico_guest.$this->guesttxt;
            if (isset(
    $_POST["indietro"]) || isset($_POST["avanti"])) {
                
    $this->posizione $_POST["posizione"];
                
    $this->leggi_guestbook();
            } else {
                if (isset(
    $_POST["azione"]) && ($_POST["azione"] == "inserimento")) {
                    
    $this->posizione 0;
                } else {
                    
    $this->leggi_guestbook();
                    
    $this->posizione 0;
                }
            }
        }
        
    // metodo per il calcolo della data
        
    function dataora_attuale() {
            
    $mesi = array("gennaio""febbraio""marzo""aprile""maggio""giugno""luglio""agosto""settembre""ottobre""novembre""dicembre");
            
    $mese = (int)date("m") - 1;
            
    $data date("d")." ".$mesi[$mese]." ".date("Y");
            
    $ora strftime ("%H:%M");
            
    $data_finale $data." ore: ".$ora;
            return 
    $data_finale;
        }
        
    // rimozione tag HTML
        
    function striptags($stringa) {
            
    $tag_consentiti '<b><i><u><br>';
            return 
    strip_tags($stringa$tag_consentiti );
        }
        
    // metodo per leggere il file di testo. Verrà memorizzato nella caratteristica $book
        
    function leggi_guestbook() {
            if (!
    file_exists($this->nomefile)) {
                echo 
    '
                    <h2>ERRORE:</h2>
                    Il file '
    .$this->nomefile.' non è presente su disco.<br>
                    Createlo, anche vuoto, e riavviate lo script
                '
    ;
                die;
            }
            
    $dimensione filesize ($this->nomefile);
            if (
    $dimensione == 0) {
                
    $this->numero_righe 0;
                return;
            }
            
    $this->book =  stripslashes(file_get_contents($this->nomefile));
            
    $this->righe split($this->separatore_righe$this->book);
            
    $this->righe array_reverse($this->righe);
            
    $this->numero_righe count($this->righe) - 1;
        }
        
    // metodo per mostrare un singolo record
        
    function mostra_record($indice) {
            list (
    $dataora$nome$email$commento) = split($this->separatore_campi$this->righe[$indice]);
            
    $html_record '<table border="0" width="'.($this->larghezza_tabella-4).'" class="tabellaesterna">';
            
    $html_record .= '
                <tr>
                    <td>
                        <table border="0" width="'
    .($this->larghezza_tabella-20).'" cellspacing="1" cellpadding="4" class="tabellainterna">
                            <tr>
                                <td width="100" align="left" class="intestazione">
                                    inserito il:
                                </td>
                                <td align="left" class="testo">
                                    '
    .$dataora.'
                                </td>
                            </tr>
                            <tr>
                                <td width="100" align="left" class="intestazione">
                                    Nome:
                                </td>
                                <td align="left" class="testo">
                                    '
    .$this->striptags($nome).'
                                </td>
                            </tr>
                            <tr>
                                <td width="100" align="left" class="intestazione">
                                    e-mail:
                                </td>
                                <td align="left" class="testo">
                                    '
    .$this->striptags($email).'
                                </td>
                            </tr>
                            <tr>
                                <td width="100" align="left" class="intestazione" valign="top">
                                    Commento:
                                </td>
                                <td align="left" class="testo" valign="top">
                                    '
    .$this->striptags($commento).'
                                </td>
                            </tr>
                        </table>
                    </td>
                </tr>
            '
    ;
            
    $html_record .= '<tr><td><a class="pulsanti" href="guestbook.php">torna alla lista</a></td></tr>';
            
    $html_record .= '</table>';
            return 
    $html_record;
        }
        
    // metodo per gestire la visualizzazione della lista dei record con paginazione
        
    function mostra_lista() {
            if (
    $this->numero_righe == 0) {
                return 
    "<strong><font color=#00C300>Nessuno fin ora ha firmato il Guestbook</font></strong>";
            }
            
    $limite $this->record_per_pagina// numero di record mostrati per pagina
            
    if (isset($_POST["indietro"])) { 
                
    $this->posizione--; 
                
    $inizio $this->posizione*$limite;
            } else if (isset(
    $_POST["avanti"])) { 
                    
    $this->posizione++; 
                    
    $inizio $this->posizione*$limite;
                } else {    
                    
    $inizio 0;
                }
            
    $contatore 0;
            
    $indice_riga $inizio;
            
    $html_lista '<table border="0" width="'.($this->larghezza_tabella-4).'" class="tabellaesterna">';
            while ((
    $indice_riga $this->numero_righe) && ($contatore $limite)) {
                list (
    $dataora$nome$email$commento) = split($this->separatore_campi$this->righe[$indice_riga]);
                if (
    $this->mostra_dettagli) {
                    
    $dettagli '<a class="pulsanti" href="javascript: document.mostradettagli.indice.value=\''.$indice_riga.'\'; document.mostradettagli.submit()">dettagli</a>';
                } else {
                    
    $dettagli '';
                }
                
    $html_lista .= '
                    <tr>
                        <td valign="top">
                            <table border="0" width="'
    .($this->larghezza_tabella-26).'" cellspacing="0" cellpadding="4" class="tabellainterna" align="center">
                                <tr>
                                    <td width="100" align="left" class="intestazione">
                                        Nome:
                                    </td>
                                    <td align="left" class="testo">
                                        '
    .$this->striptags($nome).'
                                    </td>
                                </tr>
                                <tr>
                                    <td valign="top" width="100" align="left" class="intestazione">
                                        Commento:
                                    </td>
                                    <td valign="top" align="left" class="testo">
                                        '
    .ereg_replace("\n""<br>"$this->striptags($commento)).'
                                    </td>
                                </tr>
                                <tr>
                                    <td align="left" width="100" valign="top" class="intestazione">
                                        '
    .$dettagli.'
                                    </td>
                                    <td align="right">
                                        '
    .$dataora.'
                                    </td>
                                </tr>
                            </table>
                        <td>
                    </tr>
                '
    ;
                
    $contatore++;
                
    $indice_riga++;
            }
            
    $html_pulsanti '';
            if (
    $this->numero_righe $limite) {
                if (
    $inizio >=  $limite) {
                    
    $html_pulsanti .= '<input type="submit" value="<<" name="indietro" class="pulsanti">&nbsp;&nbsp;&nbsp;';
                }
                if (
    $indice_riga $this->numero_righe) {
                    
    $html_pulsanti .= '<input type="submit" value=">>" name="avanti" class="pulsanti">&nbsp;&nbsp;&nbsp;';
                }
            }
            
    $html_lista .= '
                        <form method="post" action="guestbook.php" name="pageing">
                <tr>
                    <td>
                            <input type="hidden" value="mostralista" name="azione">
                            <input type="hidden" name="posizione" value="'
    .$this->posizione.'">
                            '
    .$html_pulsanti.'
                    </td>
                </tr>
                        </form>
            '
    ;
            
    $html_lista .= '
                </table>
                        <form method="post" action="guestbook.php" name="mostradettagli">
                            <input type="hidden" value="dettagli" name="azione">
                            <input type="hidden" name="indice" value="">
                        </form>
                '
    ;
            return 
    $html_lista;
        }
        
    // Metodo per l'inserimento di un nuovo record
        
    function aggiungi_record() {
            
    $test_non_vuoto trim($_POST["nome"].$_POST["email"].$_POST["commento"]);
            if (
    $test_non_vuoto != "") {
                
    $this->linea $this->separatore_righe.$_POST["dataora"].$this->separatore_campi.$_POST["nome"].$this->separatore_campi.$_POST["email"].$this->separatore_campi.$_POST["commento"]."\r\n";
                
    $puntatore fopen($this->nomefile"a");
                
    $this->linea $this->striptags($this->linea);
                
    fputs($puntatore$this->linea);
                
    fclose($puntatore);
            }
            
    $this->leggi_guestbook();
        }
        
    // metodo per la raccolta dati di un nuovo record
        
    function leggi_dati() {
            
    $html_form_immissione '
                <script language="JavaScript">
                    <!--
                        function controlla() {
                            if ((document.inseriscirecord.nome.value == \'\') || (document.inseriscirecord.commento.value == \'\')) {
                                alert(\'inserisci almeno il nome e un commento!\');
                                return false;
                            } else {
                                return true;
                            }
                        }
                    //-->
                </script>

  6. #6
    Data registrazione
    07-01-2012
    Messaggi
    0

    Predefinito

    ho dovuto dividerlo in due non ci andava tutto in uno ecco il resto:

    Codice PHP:
                <form method="post" action="guestbook.php" name="inseriscirecord" id="inseriscirecord" onSubmit="return controlla();">
                      <table border="0" width="'.($this->larghezza_tabella - 2).'" cellspacing="1" cellpadding="4" class="tabellainterna">
                        <tr>
                            <td colspan="2" class="intestazione" width="'.($this->larghezza_tabella - 2).'">
                                Firma il nostro guestbook!
                            </td>
                        </tr>
                        <tr>
                            <th align="left">
                                &nbsp;nome: 
                            </th>
                            <td>
                                <input type="text" name="nome" size="40" class="areatesto">
                            </td>
                        </tr>
                        <tr>
                            <th align="left">
                                &nbsp;e-mail: 
                            </th>
                            <td>
                                <input type="text" name="email" size="40" class="areatesto">
                            </td>
                        </tr>
                        <tr>
                            <th align="left" valign="top">
                                &nbsp;commenti: 
                            </th>
                            <td>
                                <textarea name="commento" rows="5" cols="45" class="areatesto"></textarea>
                            </td>
                        </tr>
                        <tr>
                            <td colspan="2" class="intestazione">
                                <input type="hidden" value="inserimento" name="azione">
                                <input type="hidden" name="dataora" value="'.$this->dataora_attuale().'">
                                <div class="g-recaptcha" data-sitekey="6LfHA0scAAAAADYev-zAHPdbv9xXNmM3SJ2BX5I_"></div>
                                <input type="submit" name="postati" value="Invia" class="pulsanti"> 
                                <input type="reset" name="cancell" value="cancella" class="pulsanti">
                                <!--<div class="frc-captcha" data-sitekey="FCMVGA4CT9IE4I53" data-callback="myCallback"></div>-->
                            </td>
                        </tr>    
                    </table>
                </form>
            ';
            return $html_form_immissione;
        }
    }
    $guests = new guestbook();
    if (isset($_POST["azione"]) && ($_POST["azione"] == "inserimento")) {
        $guests->aggiungi_record();

    $html = "<table><tr><td>";
    if (isset($_POST["azione"]) && ($_POST["azione"] == "dettagli")) {
        $html .= $guests->mostra_record($_POST["indice"]);
    } else {
        $html .= $guests->mostra_lista();
    }
    $html .= "</td></tr><tr><td>";
    $html .= $guests->leggi_dati();
    $html .= "</td></tr></table>";
    unset($guests);
    ?>
    <!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title> Guestbook </title>
    <meta name="Generator" content="EditPlus">
    <meta name="Author" content="">
    <meta name="Keywords" content="">
    <meta name="Description" content="">

    <script language="JavaScript" type="text/javascript"><!--

    var tdmessaggio="Aiaiaia Giu' Le Mani!!";

    // Autore dello script: Morpheus™

    // Funzione che disabilita il tasto destro su Internet Explorer
    function clickIE4(){ if(event.button==2){ if(tdmessaggio!= '') alert(tdmessaggio); return false; } }

    // Funzione che disabilita il tasto destro su Netscape e FireFox
    function clickNS4(e){
    if (document.layers||document.getElementById&&!document.all){ if (e.which==2||e.which==3){ if(tdmessaggio!= '') alert(tdmessage); return false; } }
    }

    // Controlli per la selezione del browser
    if (document.layers){ document.captureEvents(Event.MOUSEDOWN); document.onmousedown=clickNS4; }
    else if (document.all&&!document.getElementById){ document.onmousedown=clickIE4; }
    document.oncontextmenu=function(){ if(tdmessaggio!= '') alert(tdmessaggio); return false;};

    //--></script>

    <script src="https://www.google.com/recaptcha/api.js"></script>

    <?php
    if (isset($_POST['postati'])) {

        
    $response file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret=6LfHA0scAAAAAKb1Gv6gJIWVJ_uL1IwPGzi3Uo8Z&response='.$_POST['g-recaptcha-response'].'&remoteip='.$_SERVER['REMOTE_ADDR']);
        
    $responseDecoded json_decode($response);
        if ( 
    $responseDecoded->success == true ) {
        
        
    // verifica andata a buon fine

        
    } else {
        
            
    // verifica non andata a buon fine
            
        
    }
        
    }

    ?>

    <!--<script type="module" src="https://unpkg.com/friendly-challenge@0.8.12/widget.module.min.js" async defer></script>
    <script nomodule src="https://unpkg.com/friendly-challenge@0.8.12/widget.min.js" async defer></script>
    <script>import { useEffect, useRef } from "react";
    import { WidgetInstance } from 'friendly-challenge';

    const FriendlyCaptcha = () => {
      const container = useRef();
      const widget = useRef();

      const doneCallback = (solution) => {
        console.log('Captcha was solved. The form can be submitted.');
        console.log(solution);
      }

      const errorCallback = (err) => {
        console.log('There was an error when trying to solve the Captcha.');
        console.log(err);
      }

      useEffect(() => {
        if (!widget.current && container.current) {
          widget.current = new WidgetInstance(container.current, { 
            startMode: "auto",
            doneCallback: doneCallback,
            errorCallback: errorCallback 
          });
        }

        return () => {
          if (widget.current != undefined) widget.current.reset();
        }
      }, [container]);

      return (
        <div ref={container} className="frc-captcha" data-sitekey="6LfHA0scAAAAADYev-zAHPdbv9xXNmM3SJ2BX5I_" />
      );
    }

    export default FriendlyCaptcha;
    </script>-->


    <style>
    .tabellaesterna
    {

        background-color: #00C300;
        text-decoration: none;
        color: #FFFFFF;
        font-family: Verdana;
        font-size: 9pt;
        padding-top: 4pt;
        padding-right: 4pt;
        padding-bottom: 4pt;
        padding-left: 4pt;
        border-width: 2px;
        border-style: outset;
        empty-cells: show;
        font-weight: bold;
        margin: 0px;
    }
    .pulsanti
    {
        background-color: #FFFFFF;
        font-family: Tahoma, Verdana;
        font-size: 8pt;
        font-weight: bold;
        font-style: normal;
        font-variant: normal;
        font-stretch: normal;
        color: #00C300;
        border-width: 1px;
        border-style: outset;
        border-color: #00C300;
        outline-style: double;
        outline-width: 1px;
        padding: 1px;
        margin: 1px;
        text-decoration: none;
    }
    .areatesto
    {
        font-family: Verdana, Tahoma, Arial;
        font-size: 8pt;
        font-weight: normal;
        font-style: normal;
        font-variant: normal;
        font-stretch: normal;
        font-size-adjust: none;
        color: #000000;
        text-decoration: none;
        text-align: left;
        text-transform: none;
        vertical-align: middle;
        line-height: normal;
        word-spacing: normal;
        letter-spacing: normal;
        white-space: normal;
        margin-top: 0px;
        margin-right: 0px;
        margin-bottom: 0px;
        margin-left: 0px;
        padding-top: 1px;
        padding-right: 1px;
        padding-bottom: 1px;
        padding-left: 1px;
        border-width: 1px;
        border-style: inset;
        border-color: #000000;
        outline-width: 0px;
        outline-style: none;
        background-color: #FFFFFF;
    }
    .tabellainterna
    {
        background-color: #00C300;
        text-decoration: none;
        color: #FFFFFF;
        font-family: Verdana;
        font-size: 9pt;
        border-width: 1px;
        border-style: solid;
        border-color: #00C300;
        margin: 0px;
        padding: 0px;
    }
    .intestazione
    {
        background-color: #00C300;
        color: #FFFFFF;
        font-style: normal;
        font-weight: bold;
        font-family: Verdana;
        font-size: 9pt;
    }
    .testo
    {
        font-family: Tahoma;
        font-size: 9pt;
        background-color: #00C300;
    }
    </style>
    </head>
    <body>
    <?=$html?>
    </body>
    </html>

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

    Predefinito

    Io vedo ancora:
    Codice PHP:
    if ( $responseDecoded->success == true ) {
        
        
    // verifica andata a buon fine

        
    } else {
        
            
    // verifica non andata a buon fine
            
        

    Hai capito cosa ti ho suggerito nel precedente messaggio?

    Ciao!

  8. #8
    Data registrazione
    07-01-2012
    Messaggi
    0

    Predefinito

    Ciao si ho provato come mi hai detto tu ma non funziona cmq dice nessuno ha firmato il guestbook rimane come bloccato e non da nessun commento!!Ti metto il codice online come mi hai suggerito provalo tu stesso e vedi!!
    http://chatdivertimento.altervista.org/guestbook.php

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

    Predefinito

    Se spunto il captcha, appare:
    Codice PHP:
    Fatal errorCall to a member function aggiungi_record() on null in /membri/chatdivertimento/guestbook.php on line 344 
    Invece se non lo spunto, appare quel che dici, perché appunto non è stato superato il test.

    Credo tu abbia richiamato solo il metodo aggiungi_record() come se fosse una funzione (senza $guests->aggiungi_record())

    Ciao!
    Ultima modifica di alemoppo : 09-09-2021 alle ore 23.41.14

  10. #10
    Data registrazione
    07-01-2012
    Messaggi
    0

    Predefinito

    Ho fatto togliendo il
    Codice PHP:
    $guests->aggiungi_record() 
    ma così facendo aggiunge il commento anche se non verifica il capatcha e quindi non funziona!!

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

    Predefinito

    Senza vedere però il codice fiale mi è impossibile aiutarti. Puoi mostrarlo?

    Ciao!

  12. #12
    Data registrazione
    07-01-2012
    Messaggi
    0

    Predefinito

    Ciao si certo eccoti il codice finale:
    Codice PHP:
    <?php
    if (isset($_POST['postati'])) {

        
    $response file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret=6LfHA0scAAAAAKb1Gv6gJIWVJ_uL1IwPGzi3Uo8Z&response='.$_POST['g-recaptcha-response'].'&remoteip='.$_SERVER['REMOTE_ADDR']);
        
    $responseDecoded json_decode($response);
        if ( 
    $responseDecoded->success == true ) {
        
        if (isset(
    $_POST["azione"]) && ($_POST["azione"] == "inserimento")) {

     
        
        } else {
        
            
    // verifica non andata a buon fine
            
        
    }
        
    }
        
    ?>

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

    Predefinito

    Non vedo il:
    Codice PHP:
    $guests->aggiungi_record(); 
    Cerca di capire il codice cosa fa, devi eseguire la stessa cosa che facevi prima, ma questa volta solo con la condizione:
    Codice PHP:
    $responseDecoded->success == true 
    Ciao!

  14. #14
    Data registrazione
    07-01-2012
    Messaggi
    0

    Predefinito

    Non funziona cmq eccoti il codice completo:

    Codice PHP:
    <td colspan="2" class="intestazione">
                                <input type="hidden" value="inserimento" name="azione">
                                <input type="hidden" name="dataora" value="'.$this->dataora_attuale().'">
                                <div class="g-recaptcha" data-sitekey="6LfHA0scAAAAADYev-zAHPdbv9xXNmM3SJ2BX5I_"></div>
                                <input type="submit" name="postati" value="Invia" class="pulsanti"> 
                                <input type="reset" name="cancell" value="cancella" class="pulsanti">
                                <!--<div class="frc-captcha" data-sitekey="FCMVGA4CT9IE4I53" data-callback="myCallback"></div>-->
                            </td>
                        </tr>    
                    </table>
                </form>
            ';
            return $html_form_immissione;
        }
    }
    $guests = new guestbook();
    $guests->aggiungi_record();

    $html = "<table><tr><td>";
    if (isset($_POST["azione"]) && ($_POST["azione"] == "dettagli")) {
        $html .= $guests->mostra_record($_POST["indice"]);
    } else {
        $html .= $guests->mostra_lista();
    }
    $html .= "</td></tr><tr><td>";
    $html .= $guests->leggi_dati();
    $html .= "</td></tr></table>";
    unset($guests);
    ?>
    <!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title> Guestbook </title>
    <meta name="Generator" content="EditPlus">
    <meta name="Author" content="">
    <meta name="Keywords" content="">
    <meta name="Description" content="">

    <script language="JavaScript" type="text/javascript"><!--

    var tdmessaggio="Aiaiaia Giu' Le Mani!!";

    // Autore dello script: Morpheus™

    // Funzione che disabilita il tasto destro su Internet Explorer
    function clickIE4(){ if(event.button==2){ if(tdmessaggio!= '') alert(tdmessaggio); return false; } }

    // Funzione che disabilita il tasto destro su Netscape e FireFox
    function clickNS4(e){
    if (document.layers||document.getElementById&&!document.all){ if (e.which==2||e.which==3){ if(tdmessaggio!= '') alert(tdmessage); return false; } }
    }

    // Controlli per la selezione del browser
    if (document.layers){ document.captureEvents(Event.MOUSEDOWN); document.onmousedown=clickNS4; }
    else if (document.all&&!document.getElementById){ document.onmousedown=clickIE4; }
    document.oncontextmenu=function(){ if(tdmessaggio!= '') alert(tdmessaggio); return false;};

    //--></script>

    <script src="https://www.google.com/recaptcha/api.js"></script>

    <?php
    if (isset($_POST['postati'])) {

        
    $response file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret=6LfHA0scAAAAAKb1Gv6gJIWVJ_uL1IwPGzi3Uo8Z&response='.$_POST['g-recaptcha-response'].'&remoteip='.$_SERVER['REMOTE_ADDR']);
        
    $responseDecoded json_decode($response);
        if ( 
    $responseDecoded->success == true ) {
        
        if (isset(
    $_POST["azione"]) && ($_POST["azione"] == "inserimento")) {
        
            
    // verifica andata a buon fine
        
        
    } else {
        
            
    // verifica non andata a buon fine
            
        
    }
        
    }
    }    
    ?>
    così facendo inserisce il commento saltando la verifica del capatcha!!

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

    Predefinito

    A parte che il controllo del captcha andrebbe fatto prima dell'eventuale salvataggio del messaggio, così da mostrare eventualmente anche il nuovo messaggio.

    Comunque, finché non capirai il codice, è inutile continuare.
    Devi prima capire come funziona il tuo codice, poi come funziona il controllo e poi metterli assieme (quest'ultimo codice mi sembra identico a quello del 08-09-2021, 01.40.32).

    I passi che ti suggerirei di capire sono:

    1. Il vecchio codice, con quale istruzione salva i commenti?
    2. Il vecchio codice, con quale istruzione legge e stampa a video i commenti?
    3. Il codice di controllo, cosa esegue in caso di fallimento del captcha?
    4. Il codice di controllo, cosa esegue in caso di verifica del captcha?


    Per verificare i primi 2 punti, potresti (uno alla volta) eliminare l'istruzione individuata e vedere che non venga eseguita solo quella azione.
    Per verificare gli ultimi 2 punti, potresti fare uso delle echo, come avevo fatto nel mio esempio.

    Poi, semplicemente devi prendere il codice vecchio, e nel punto 1 devi aggiungere il punto 4 (ovvero salvare i commenti solo se è stato passato il test captcha).

    Ciao!
    Ultima modifica di alemoppo : 12-09-2021 alle ore 09.46.48

Regole di scrittura

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