Aggiungere Captcha a Drupal Webform

Fermare lo spam, anche dai webform di Drupal è possibile e facile.

Basta seguire le seguenti istruzioni:

  • Per prima cosa ci si procuri l’id del webform che si intende proteggere con un Captcha. Questa cosa è facile se si usa Firebug o si ispeziona il codice html della pagina. Giusto per avere un’idea, quello che va cercato è un testo di questo tipo id=”webform-client-form-2″, la cui ultima cifra (in questo caso 2) differisce di form in form. Si prenda nota dell’id senza le virgolette.
  • Si cambi il testo trasformando i meno (“-“) in underscore (“_”) per ottenere una scritta che in questo caso sarebbe webform_client_form_2.
  • Si vada nella pagina di configurazione del Captcha (tuosito.it/admin/user/captcha/captcha) e si inserisca una nuova voce all’elenco (si veda l’immagine) avente come testo quello creato al punto precedente, si scelga un “Challenge Type”, ovvero un tipo di Captcha (io uso reCapthca) e si salvi (chi può).

Leggi tutto “Aggiungere Captcha a Drupal Webform”

Nuovo logotipo di Google, stavolta è strano!

Come suo solito, il colosso di Mountain View, si diletta celebrando ricorrenze, eventi e festività con un cambio di logo, in gergo doodle.

Ma oggi 7 settembre 2010 il nuovo logotipo sembra veramente strano. E non tanto per la bella animazione che esso contiene, ma perché a quanto pare non avrebbe un vero e proprio perché, cosa che conoscendo Google mi sembra alquanto strana!

Sul blog ufficiale di Google Italia, si parla della cosa senza darne una giustificazione vera, cito:

L'idea alla base di questo doodle è rappresentare i concetti di velocità, divertimento ed interazione, così come crediamo dovrebbero essere le ricerche effettuate sul nostro motore.

Ma questa cosa sinceramente NON ci convince. Che Google stia giocando lo stesso gioco dell'anno scorso quando, ricordere, fece disegnare UFO e cerchi nel grano nel logotipo per celebrare alla fine il 143esimo anniversario della nascita di Herbert George Wells?

Per ora non ci è dato saperlo, ma possiamo liberamente supporre e proporre!

A naso direi che le palline che vediamo svolazzare nel logotipo di oggi, somigliano a quelle viste nell'ultimo logotipo, ovvero quello che celebrava la scoperta del fullerene, e che quindi potrebbe iniziare un ciclo di doodle in più tappe che porterà alla vera celebrazione.

In ultima analisi (per suffragare questa stravagante teoria) potremmo dire che anche l'anno scorso tutto è cominciato il 5 settembre, come quest'anno!

Potete farvi una idea di quanto ho esposto, leggendo un articolo dell'anno scorso sulla questione logotipi in catena.

Navigare un filesystem con uno script PHP

EDIT: Sono state apportate delle correzioni allo script che per ragioni di visualizzazione del codice risultava completamente sbagliato! Inoltre ho provveduto a fornire il file sorgente in allegato alla pagina. Chiedo venia!

 

Non sono il primo e non sarò certo l'ultimo che ha o ha avuto necessità di navigare delle cartelle di un File System mediante un semplice script PHP.

Ho deciso di pubblicare la mia soluzione, che avevo per pigrizia evitato di scrivere fino a che il passaggio da EasyPHP a XAMPP non mi ci ha costretto.

Lo script è molto semplice e a dire il vero anche molto rudimentale e sensibile di cambiamenti.

Lo script che ho chiamato list_dir.php è il seguente:

CSS

<style type="text/css">
body, html { background:#F9CC76; } 
html * { font-family: verdana; font-size: 14px; }
a.out_link { color:#F67721; text-decoration:none; }
a { text-decoration:none; }
h3 { color:black; font-size:15px; }
div#container { margin:10px auto 0 auto; width:30%; background:#CCFFCC; border:1px solid #669966; }
table#Tlist { width:80%; margin:0 auto 21px auto; }
table#Tlist tbody tr td { padding:3px; border-bottom:1px solid #669966; }
table#Tlist thead tr th, table#Tlist tfoot tr td { text-align:right; font-weight:bolder; }
</style>

 

PHP

<div id="container">
<table id="Tlist">
    <thead>
        <tr>
            <th colspan="1" id="header" >
                <h3> PHP DIRECTORY EXPLORER</h3>
                <?php
                if($_GET["ex_path"])
                {
                    ?>
                    <a href="javascript:history.back();" title="torna indietro">back </a> ~ <a href="/list_dir.php" title="torna alla root"> root </a>
                    <?php
                }
                else echo "back  ~  root";
                ?>
            </th>
        </tr>
    </thead>
    <tbody>
        <?php
        //il path di partenza
        $path = dirname(__FILE__);
        if($_GET["ex_path"])
        {
            // RIPULISCO IL PATH DA POTENZIALI PERICOLI
            $_GET["ex_path"] = str_replace(".","",$_GET["ex_path"]);
            $_GET["ex_path"] = str_replace("..","",$_GET["ex_path"]);
            $path = dirname(__FILE__).str_replace("/","\\",$_GET["ex_path"]) ; //PATH ESTESO
        }

        $fd = array("file","dir");
        $iterator = new DirectoryIterator($path);
        while($fdStep = array_pop($fd))
        {
            foreach ($iterator as $file)
            {
                if(($file->isDir() && $fdStep == "file") || ($file->isFile() && $fdStep == "dir") || ($file->isDot())) continue;
                ?>
                <tr>
                    <td>
                        <?php
                            if ($file->isDir())
                            {
                                ?>
                                <a href="/list_dir.php?ex_path=<?php echo $_GET["ex_path"]."/".$file; ?>"> /<?php echo $file; ?>/ </a>
                                <?php
                            }
                            elseif($file->isFile())
                            {
                                ?>
                                <a <?php if($file=="index.php") print "class='index_link'"; ?> href="<?php echo $_GET["ex_path"]."/".$file; ?>"> <?php echo $file; ?></a>
                                <?php
                            }
                        ?>
                    </td>
                </tr>
                <?php
            }
        }
        ?>
    </tbody>
    <tfoot>
        <tr>
            <td colspan="1" >
                <a class="out_link" href="https://www.unmoscerinonelweb.com/blog">un moscerino nel web</a>
            </td>
        </tr>
    </tfoot>
</table>
</div>

per far si che funzionasse nella mia www di XAMPP ho modificato il file index.php come segue:

<?php
if (!empty($_SERVER['HTTPS']) && ('on' == $_SERVER['HTTPS'])) {
	$uri = 'https://';
} else {
	$uri = 'http://';
}
$uri .= $_SERVER['HTTP_HOST'];
//header('Location: '.$uri.'/xampp/');
header('Location: '.$uri.'/list_dir.php');
exit;
echo "Something is wrong with the XAMPP installation :-(";
?>

 

ATTENZIONE
il codice potrebbe presentare dei bug di sicurezza di cui non mi ritengo responsabile.
Vi consiglio, pertanto di utilizzarlo solo in locale.

NOTE: Sono stati apportati delle migliorie, opzionali, al codice che necessitano di un supporto jquery.

Deve essere attiva l'estensione extension=php_fileinfo.dll !