• User Attivo

    aggiungere un antispam

    Chiedo aiuto per la mia shoutbox che ho nel sito lasede.it
    vorrei aggiungere un antispam, ma non so come fare. Ho anche cercato altre shoutbox già con captcha ma non ne ho trovate.
    Qualcuno sa aiutarmi? Grazie.


  • User Attivo

    la difficoltà dipende dal fatto se la shoutbox l'hai fatta tu oppure è uno script preso già confezionato.

    Se l'avessi fatta tu non è poi così difficile: invece di usare il complicato captcha puoi utilizzare una semplice domanda come, per esempio, quanto fa 2 + 2. Se la risposta è giusta allora fai eseguire lo script, altrimenti visualizzi un messaggio di errore.


  • User Attivo

    @Inverter said:

    la difficoltà dipende dal fatto se la shoutbox l'hai fatta tu oppure è uno script preso già confezionato.

    Se l'avessi fatta tu non è poi così difficile: invece di usare il complicato captcha puoi utilizzare una semplice domanda come, per esempio, quanto fa 2 + 2. Se la risposta è giusta allora fai eseguire lo script, altrimenti visualizzi un messaggio di errore.

    non l'ho fatta io, ma è relativamente facile come script. Ho provato a seguire le indicazioni di qualche captcha trovato in giro, ma mi da sempre errori di funzioni.
    Come faccio ad aggiungere questa domanda?


  • User Attivo

    Puoi inserire il file della shoutbox?

    Quello dove vengono elaborati i dati, così possiamo aiutarti. 🙂

    Comunque in linea generale si tratta solo di creare un grande if che controlla se la risposta alla domanda è uguale a 4 oppure no.
    In caso la risposta sia sbagliata si visualizza un messaggio di errore e si viene rimandati alla homepage del sito. 😉


  • User Attivo

    ecco metto il codice anche se non ci capisco niente

    
    <script type="text/javascript">
    <!--
      function addsmiley(code)  {
        var pretext = document.forms['shoutbox_form'].shoutbox_message.value;
          this.code = code;
          document.forms['shoutbox_form'].shoutbox_message.value = pretext + code;
      }
    //-->
    </script>
    <?php
      include("config.php");
        if ($_POST['shoutbox_submit'])  {
          $name = $_POST['shoutbox_name'];
          $ip = $_POST['shoutbox_ip'];
          $message = $_POST['shoutbox_message'];
          $mlen = strlen($message);
          $date = date("F jS Y");
          $spam=checkspam($message);
          if ($name == "") { 
            echo "<strong>Errore: Inserisci il tuo nome!</strong>"; 
          }
          else if ($message == "") { 
            echo "<strong>Errore: Non hai scritto il messaggio!</strong>"; 
          }
          else if ($mlen > $max_length) { 
            echo "<strong>Errore: Il messaggio è troppo lungo!</strong>"; 
          }
    	else if ($spam) { 
            echo "<script type=\"text/javascript\"> window.alert(\"Niente URL nella mia città, gringo...\");</script>"; 
          }
         else {
          $db = mysql_connect($db_host,$db_user,$db_pass); 
          mysql_select_db($db_name) or die("Cannot connect to database");
          mysql_query("INSERT INTO shoutbox(name,ip,message,date) VALUES('$name','$ip','$message','$date')"); 
          mysql_close($db);
          }
        }
      $db = mysql_connect($db_host,$db_user,$db_pass); 
      mysql_select_db($db_name) or die("Cannot connect to database");
      $query = "SELECT * FROM shoutbox ORDER BY id DESC LIMIT $dmessage"; 
      $result = mysql_query($query); 
    ?>
        <table style="width:150px;"><tr><td><? 
        echo "<ul>\n";
        while($r=mysql_fetch_array($result)) {
          //Strips unwanted HTML from nickname
          $name = $r['name'];
          $name = strip_tags($name);
          //Strips unwanted HTML from message
          $message = $r['message'];
          $message = strip_tags($message);
          // Transform text to smileys =) 
          $message = str_replace("=(","<img src=\"/shoutbox/smileys/sad.gif\" alt=\"=(\"/>", $message);
          $message = str_replace(";(","<img src=\"/shoutbox/smileys/cry.gif\" alt=\";(\"/>", $message);
          $message = str_replace(":@","<img src=\"/shoutbox/smileys/mad.gif\" alt=\":@\"/>", $message);
          $message = ereg_replace(":)","<img src=\"/shoutbox/smileys/smile.gif\" alt=\":)\"/>", $message);
          $message = ereg_replace("=)","<img src=\"/shoutbox/smileys/smile.gif\" alt=\"=)\"/>", $message);
          $message = ereg_replace(":d","<img src=\"/shoutbox/smileys/laugh.gif\" alt=\":d\"/>", $message);
          $message = ereg_replace(":p","<img src=\"/shoutbox/smileys/tongue.gif\" alt=\":p\"/>", $message);
          $message = ereg_replace(":P","<img src=\"/shoutbox/smileys/tongue.gif\" alt=\":P\"/>", $message);
          $message = ereg_replace(":O","<img src=\"/shoutbox/smileys/shocked.gif\" alt=\":O\"/>", $message);
          $message = ereg_replace(":o","<img src=\"/shoutbox/smileys/shocked.gif\" alt=\":o\"/>", $message);
          $message = ereg_replace(";)","<img src=\"/shoutbox/smileys/wink.gif\" alt=\";)\"/>", $message);
          $message = ereg_replace(":S","<img src=\"/shoutbox/smileys/sick.gif\" alt=\":S\"/>", $message);
          $message = ereg_replace(":s","<img src=\"/shoutbox/smileys/sick.gif\" alt=\":s\"/>", $message);
          echo "<li title=\"Shouted on $r[date]\" style=\"cursor: pointer\"><strong>$name</strong>: $message</li>\n";
        }
          echo "</ul>\n";
    ?> </td></tr></table> <?
          mysql_close($db);
    
    
    function checkspam($message){
    
    	$bad_words = array('http','www');
    
    	for ($n = 0; $n < count($bad_words); $n++){
    		if (stristr($message, $bad_words))
    			return(1);
    	}
    	return(0);
    }
    
    
    ?>
    
    <div>
      <form id="shoutbox_form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
        <p class="titolo">Nome:</p>
        <input type="text" name="shoutbox_name" style="padding: 0px;    border: 0px solid #000000;    background-color: #cccccc;
        color:;    font: normal 11px verdana,tahoma,arial;"size="20" maxlength="20"><br/>
        <p class="titolo">Messaggio:</p>
        <textarea id="shoutbox-message" style="width: 150px;    padding: 0px;    border: 0px solid;    background-color:;    color:;    font: normal 11px verdana,tahoma,arial;" cols="20" rows="3" name="shoutbox_message"></textarea><br/>
        <img class="smileys" src="./shoutbox/smileys/smile.gif" alt=":)" onclick="addsmiley(':)')"/>
        <img class="smileys" src="./shoutbox/smileys/wink.gif" alt=";)" onclick="addsmiley(';)')"/>
        <img class="smileys" src="./shoutbox/smileys/shocked.gif" alt=":O" onclick="addsmiley(':O')"/>
        <img class="smileys" src="./shoutbox/smileys/tongue.gif" alt=":P" onclick="addsmiley(':P')"/>
        <img class="smileys" src="./shoutbox/smileys/sick.gif" alt=":S" onclick="addsmiley(':S')"/>
        <img class="smileys" src="./shoutbox/smileys/cry.gif" alt=";(" onclick="addsmiley(';(')"/>
        <img class="smileys" src="./shoutbox/smileys/mad.gif" alt=":@" onclick="addsmiley(':@')"/><br/>
    <center>
    
        <input type="submit" style="background-color:#570000;     color: #ffffff;
        font: normal 14px tw cen mt; "
    name="shoutbox_submit" value="URLALO!">
        <input type="hidden" name="shoutbox_ip" value="<?php echo $_SERVER['REMOTE_ADDR']; ?>">
    </center>
      </form>
    </div>
    
    

  • User Attivo

    Prova d utilizzare questo codice 😉

    [php]
    <script type="text/javascript">
    <!--
    function addsmiley(code) {
    var pretext = document.forms['shoutbox_form'].shoutbox_message.value;
    this.code = code;
    document.forms['shoutbox_form'].shoutbox_message.value = pretext + code;
    }
    //-->
    </script>
    <?php
    include("config.php");
    if ($_POST['shoutbox_submit'])
    {
    if ($_POST['answer'] == "4")
    {
    $name = $_POST['shoutbox_name'];
    $ip = $_POST['shoutbox_ip'];
    $message = $_POST['shoutbox_message'];
    $mlen = strlen($message);
    $date = date("F jS Y");
    $spam=checkspam($message);
    if ($name == "") {
    echo "<strong>Errore: Inserisci il tuo nome!</strong>";
    }
    else if ($message == "") {
    echo "<strong>Errore: Non hai scritto il messaggio!</strong>";
    }
    else if ($mlen > $max_length) {
    echo "<strong>Errore: Il messaggio è troppo lungo!</strong>";
    }
    else if ($spam) {
    echo "<script type="text/javascript"> window.alert("Niente URL nella mia città, gringo...");</script>";
    }
    else {
    $db = mysql_connect($db_host,$db_user,$db_pass);
    mysql_select_db($db_name) or die("Cannot connect to database");
    mysql_query("INSERT INTO shoutbox(name,ip,message,date) VALUES('$name','$ip','$message','$date')");
    mysql_close($db);
    }
    }
    else
    echo "Inserisci correttamente la risposta alla domanda di sicurezza!";
    }
    $db = mysql_connect($db_host,$db_user,$db_pass);
    mysql_select_db($db_name) or die("Cannot connect to database");
    $query = "SELECT * FROM shoutbox ORDER BY id DESC LIMIT $dmessage";
    $result = mysql_query($query);
    ?>
    <table style="width:150px;"><tr><td><?
    echo "<ul>\n";
    while($r=mysql_fetch_array($result)) {
    //Strips unwanted HTML from nickname
    $name = $r['name'];
    $name = strip_tags($name);
    //Strips unwanted HTML from message
    $message = $r['message'];
    $message = strip_tags($message);
    // Transform text to smileys 😃
    $message = str_replace("=(","<img src="/shoutbox/smileys/sad.gif" alt="=("/>", $message);
    $message = str_replace(";(","<img src="/shoutbox/smileys/cry.gif" alt=";("/>", $message);
    $message = str_replace(":@","<img src="/shoutbox/smileys/mad.gif" alt=":@"/>", $message);
    $message = ereg_replace(":)","<img src="/shoutbox/smileys/smile.gif" alt=":)"/>", $message);
    $message = ereg_replace("=)","<img src="/shoutbox/smileys/smile.gif" alt="=)"/>", $message);
    $message = ereg_replace(":d","<img src="/shoutbox/smileys/laugh.gif" alt=":d"/>", $message);
    $message = ereg_replace(":p","<img src="/shoutbox/smileys/tongue.gif" alt=":p"/>", $message);
    $message = ereg_replace(":P","<img src="/shoutbox/smileys/tongue.gif" alt=":P"/>", $message);
    $message = ereg_replace(":O","<img src="/shoutbox/smileys/shocked.gif" alt=":O"/>", $message);
    $message = ereg_replace(":o","<img src="/shoutbox/smileys/shocked.gif" alt=":o"/>", $message);
    $message = ereg_replace(";)","<img src="/shoutbox/smileys/wink.gif" alt=";)"/>", $message);
    $message = ereg_replace(":S","<img src="/shoutbox/smileys/sick.gif" alt=":S"/>", $message);
    $message = ereg_replace(":s","<img src="/shoutbox/smileys/sick.gif" alt=":s"/>", $message);
    echo "<li title="Shouted on $r[date]" style="cursor: pointer"><strong>$name</strong>: $message</li>\n";
    }
    echo "</ul>\n";
    ?> </td></tr></table> <?
    mysql_close($db);

    function checkspam($message){

    $bad_words =  array('http','www');
    
    for ($n = 0; $n < count($bad_words); $n++){
        if (stristr($message, $bad_words))
            return(1);
    }
    return(0);
    

    }

    ?>

    <div>
    <form id="shoutbox_form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <p class="titolo">Nome:</p>
    <input type="text" name="shoutbox_name" style="padding: 0px; border: 0px solid #000000; background-color: #cccccc;
    color:; font: normal 11px verdana,tahoma,arial;"size="20" maxlength="20"><br/>
    <p class="titolo">Messaggio:</p>
    <textarea id="shoutbox-message" style="width: 150px; padding: 0px; border: 0px solid; background-color:; color:; font: normal 11px verdana,tahoma,arial;" cols="20" rows="3" name="shoutbox_message"></textarea><br/>
    <img class="smileys" src="./shoutbox/smileys/smile.gif" alt=":)" onclick="addsmiley(':)')"/>
    <img class="smileys" src="./shoutbox/smileys/wink.gif" alt=";)" onclick="addsmiley(';)')"/>
    <img class="smileys" src="./shoutbox/smileys/shocked.gif" alt=":O" onclick="addsmiley(':O')"/>
    <img class="smileys" src="./shoutbox/smileys/tongue.gif" alt=":P" onclick="addsmiley(':P')"/>
    <img class="smileys" src="./shoutbox/smileys/sick.gif" alt=":S" onclick="addsmiley(':S')"/>
    <img class="smileys" src="./shoutbox/smileys/cry.gif" alt=";(" onclick="addsmiley(';(')"/>
    <img class="smileys" src="./shoutbox/smileys/mad.gif" alt=":@" onclick="addsmiley(':@')"/><br/>
    <center>
    <label>Quanto fa 2 +2?</label>
    <input type="text" maxlength="2" size="2" name="answer" />
    <input type="submit" style="background-color:#570000; color: #ffffff;
    font: normal 14px tw cen mt; "
    name="shoutbox_submit" value="URLALO!">
    <input type="hidden" name="shoutbox_ip" value="<?php echo $_SERVER['REMOTE_ADDR']; ?>">
    </center>
    </form>
    </div>

    [/php]


  • User Attivo

    grazie mille!!!! a buon rendere 😄