Salve a tutti, arrivo direttamente dalla sezione HTML del forum.
Dunque, sto cercando di integrare un captcha (che ho scaricato già fatto) nella mia shoutbox. Fino ad ora sono riuscito a far funzionare tutto, però come mi ha fatto notare un vostro collega della sezione HTML tutto girava lato client, e quindi i bot riuscivano a fregarmi e a spammare nella shoutbox.
Sono quasi totalmente ignorante riguardo php, mi servirebbe quindi un grosso aiuto per capire come fare a costruire qualcosa lato server che poi lanci al client il captcha e di ritorno prenda quanto ha inserito, controllando lato server se è stato inserito correttamente o meno il codice.
Fino ad ora ho usato il seguente form
in rosso ho evidenziato l'input che lancia la funzioncina PopupCentrata(), che ha il seguente codice:codice:<form id="chatForm" name="chatForm" method="post" action="index.php"> <?php $name = ($params->get("name")) ? $user->get('name') : $user->get('username'); ?> <?php if($loggedin != 'guest') : /* If they are logged in, then print their nickname */ ?> <label><?php echo JText::_( 'NAME'); ?> <?php echo $name; ?></label> <input type="hidden" name="shoutboxname" id="shoutboxname" class="inputbox" value="<?php echo $name; ?>" /> <?php else: /* Otherwise allow the user to pick their own name */ ?> <label for="shoutboxname"><?php echo JText::_('Nome:'); ?></label> <input type="text" name="shoutboxname" id="shoutboxname" class="inputbox" value="<?php if (isset($_COOKIE['jalUserName'])) { echo $_COOKIE['jalUserName']; } ?>" /> <?php endif; ?> <?php if (!$params->get('url')) : ?> <span style="display: none"> <?php endif; ?> <label for="shoutboxurl">Url:</label> <input type="text" name="shoutboxurl" id="shoutboxurl" class="inputbox" value="<?php if (isset($_COOKIE['jalUrl'])) { echo $_COOKIE['jalUrl']; } else { echo 'http://'; } ?>" /> <?php if (!$params->get('url')) : ?> </span> <?php endif; ?> <label for="chatbarText"><?php echo JText::_( 'Messaggio:'); ?></label> <?php if ($params->get('textarea')) : ?> <?php $Form = ''; $mainframe->triggerEvent('onBBCode_RenderForm', array('document.forms.chatForm.chatbarText', &$Form) ); echo $Form; ?> <textarea rows="4" cols="16" name="chatbarText" id="chatbarText" class="inputbox"></textarea> <?php else: ?> <input type="text" name="chatbarText" id="chatbarText" class="inputbox"/> <?php endif; ?> <input type="text" name="website" id="website" class="website" /> </p> <?php if(JPluginHelper::isEnabled('system', 'yvsmiley')): ?> <?php echo JText::_( 'SMILEYS'); ?> <?php $smilies = ''; $mainframe->triggerEvent('onSmiley_RenderForm', array('document.forms.chatForm.chatbarText', &$smilies, 'sbsmile') ); echo $smilies; ?> <?php endif; ?> <input type="hidden" id="jal_lastID" value="<?php echo $lastID + 1; ?>" name="jal_lastID" /> <input type="hidden" name="shout_no_js" value="true" /> <input type="submit" name"submit" class="button" value="invia" onClick="return PopupCentrata()"/> </form>
lo scopo di questa funzioncina fino ad ora era quello di aprire una finestrella popup in cui caricava il codice contenuto in "pagina.php", che mostrava un'immagine e chiedeva il codice rappresentato su quest'ultima. Una volta inserito il codice corretto, veniva inoltrato il submit della finestra padre tramite window.opener.document.chatForm.submit().codice:function PopupCentrata(){ retval = false; var w = 300; var h = 220; var l = Math.floor((screen.width-w)/2); var t = Math.floor((screen.height-h)/2); var xyz = window.open("/modules/mod_shoutbox/captcha/pagina.php","Captcha","resizable=0,location=0,width=" + w + ",height=" + h + ",top=" + t + ",left=" + l); return retval; }
Se dovesse servire vi posto anche il codice contenuto nel file pagina.php.
Detto questo mi affido a voi, spero riusciate a capire quanto ho scritto. Grazie in anticipo, attendo vostre notizie a riguardo!![]()

Rispondi quotando
per renderla ancora + sicura bisognerebbe aumentare il numero delle immagini?