- Home
- Categorie
- Coding e Sistemistica
- PHP
- §Form php...invaso dallo spam
-
Certo che funziona...se nn si immette il codice di verifica il msg nn viene inviato.
Trovi una guida php su come realizzarlo qui:
http://www.0x01.org/blog/?p=37
-
Certo che funziona...
ma un disabile visivo non potrà mai prenotare la vacanza.
-
non vedo come possa un disabile visivo compilare un form anche senza codice.
-
con uno screen reader ...
-
Il "lol" finale è davvero di pessimo gusto.
Ti faccio ridere ancora di più se ti dico che a tutt'oggi, il più diffuso screen reader costa più di 1000 Euro?
-
Invito tutti a provare l'estrema goduria del navigare un sito con uno screen reader.
Spesso anche un sito fatto bene è difficile, quindi un piccolo sforzo per migliorare la qualità e la navigazione per tutti non mi pare una brutta idea
-
Chiedo scusa a nome del Forum per il comportamento di Thedarkita. L'utente è stato bannato per 7 giorni in modo che possa capire la gravità di quello che ha detto e possa riflettere, prima di tornare a postare in un forum come questo.
-
Ragazzi, volevo sapere una cosa.
Per bloccare le spam se mettessimo un bloccaspam matematico?
Cioè, genera due numeri normali non con immagini e per passare il commento si deve fare la somma?
Tipo: 2 + 3= ?
Se non sbaglio c'è qualcosa di simile nel web, non ricordo il blog dove l'ho letto, forse da Weppos
-
sì, se la somma non è complessa a mio avviso sarebbe una buona idea.
però sempre sul genere numero_inferiore_a_dieci_1 + numero_inferiore_a_dieci_2 = somma
-
Yes, una cosa di quel tipo, tanto lo spam automatico lo fermerebbe uguale
-
Questa soluzione è sicuramente migliore dell'immagine con il testo distorto.
Resta però, il problema della risposta casuale che può fornire il robot.
-
Ottima idea Giorgio...come ho fatto a nn pensarci?
La integro subito nel mio sito e poi se ho tempo posto il relativo codice php...
-
Quando hai integrato... fai un fischio,
son curiosa di provare
-
Se non sbaglio c'è qualcosa di simile nel web, non ricordo il blog dove l'ho letto, forse da Weppos
Era se non sbaglio un messaggio di brag, sul gt forum.Lui l'ha integrato in questo modo:
http://www.studiamo.it/forum/profile.php?mode=register&agreed=true(nota il Qual è il nome della capitale d'Italia?: * )
-
Ho creato lo script (funziona,molto carino :D)
Per cominciare ho creato la pagina verifica.php e ho messo al suo interno il seguente codice:[php]
<?php /* Alcuni parametri configurabili / $boxW=128; // Larghezza immagine $boxH=32; // Altezza immagine $codelen=6; // Lunghezza del codice $snow=4; // effetto neve 0=no, o intero % copertura / Dichiara che lo stream trasmesso �un file immagine PNG / header("Content-Type: image/png"); / inizializza il generatore di numeri casuali / srand((double)microtime()1000000); session_start(); / Crea un codice di verifica casuale e lo immagazzina nella sessione in modo che processform.php possa recuperarlo / $num1=rand(0,10); $num2=rand(0,10); $somma=$num1+$num2; $string="$num1 + $num2"; $_SESSION[somma] = $somma; / Creazione immagine di dimesioni $boxW x $boxH / $im = ImageCreate($boxW, $boxH); / Colori / $white = ImageColorAllocate($im, 255, 255, 255); $black = ImageColorAllocate($im, 0, 0, 0); / Riempie lo sfondo di nero / ImageFill($im, 0, 0, $black); / seleziona un font a caso tra quelli di sistema / $font=rand(3,5); / Calcola ampiezza scritta / $w=strlen($string)ImageFontWidth($font); $h=ImageFontHeight($font); / Posizione casuale / $x=rand(1,($boxW-$w-1)); $y=rand(1,($boxH-$h-1)); / scrive nell'immagine la stringa di controllo / ImageString($im, $font, $x, $y, $string, $white); / output al browser/ ImagePNG($im); / Distruggo l'immagine in memoria */ ImageDestroy($im); ?>[/php]
Poi nella pagina che deve verificare la corretta digitazione,ho messo:[php]
<?
session_start(); ?> <form action='' method='POST'>
<img src='verifica.php'>
<br> Scrivi nello spazio sottostante la somma tra i numeri sopra visualizzati:<br>
<input type='text' name='vercode'> <br><br> <input type='submit' value='Invia'><input type='hidden' name='clicked'> <? if (isset($_POST[clicked])){
if($_POST[vercode] == $_SESSION[somma]){echo "<br><br><font color='green'>Ok,il codice inserito è esatto</font>";}else{ echo "<br><br><font color='red'>Il numero digitato non corrisponde alla somma dei numeri dati</font>";}} ?>
[/php]
-
Ho creato anche un'altra versione dello script per chi ha le sessioni disabilitate sul server però nn so se funziona...
[php]
<?php/* Alcuni parametri configurabili */
$boxW=128; // Larghezza immagine
$boxH=32; // Altezza immagine
$codelen=6; // Lunghezza del codice
$snow=4; // effetto neve 0=no, o intero % copertura/* Dichiara che lo stream trasmesso �un file immagine PNG */
header("Content-Type: image/png");/* inizializza il generatore di numeri casuali */
srand((double)microtime()*1000000);
$num1=rand(0,10);
$num2=rand(0,10);
$somma=$num1+$num2;
$string="$num1 + $num2";/* Creazione immagine di dimesioni $boxW x $boxH */
$im = ImageCreate($boxW, $boxH);/* Colori */
$white = ImageColorAllocate($im, 255, 255, 255);
$black = ImageColorAllocate($im, 0, 0, 0);/* Riempie lo sfondo di nero */
ImageFill($im, 0, 0, $black);/* seleziona un font a caso tra quelli di sistema */
$font=rand(3,5);/* Calcola ampiezza scritta */
$w=strlen($string)*ImageFontWidth($font);
$h=ImageFontHeight($font);/* Posizione casuale */
$x=rand(1,($boxW-$w-1));
$y=rand(1,($boxH-$h-1));/* scrive nell'immagine la stringa di controllo */
ImageString($im, $font, $x, $y, $string, $white);/* output al browser*/
ImagePNG($im);/* Distruggo l'immagine in memoria */
ImageDestroy($im);?>[/php]
[php]
<form action='' method='POST'>
<?
include("verifica.php");
?>
<br> Scrivi nello spazio sottostante la somma tra i numeri sopra visualizzati:<br>
<input type='text' name='vercode'> <br><br> <input type='submit' value='Invia'><input type='hidden' name='clicked'> <? if (isset($_POST[clicked])){
if($_POST[vercode] = $somma){echo "<br><br><font color='green'>Ok,il codice inserito è esatto</font>";}else{ echo "<br><br><font color='red'>Il numero digitato non corrisponde alla somma dei numeri dati</font>";}} ?> [/php]
-
Altra cosa da non trascurare nell'implementazione di form,
è quella di associare in maniera esplicita le etichette ai rispettivi controlli,
in modo che anche il cieco assoluto possa compilare facilemente il modulo.
Questa cosa è molto molto importante.
-
Sto' cercando di rendere accessibili due form d'iscrizione che come sistema antibot attualmente usano un visual captcha, ma che è un ostacolo insormontabile per i non vedenti. Ho trovato anche degli audio visual captcha, ma mi sembrano eccessivamente complicati.
Poichè su un forum PhpBB e su un guestbook ho adattato degli script dedicati semplicissimi già pronti che usano il sistema della domanda "veramente facile" (tipo: qual'è la capitale d'Italia) ed un campo in cui inserire la risposta che viene confrontata con quella inserita, pensavo di adottare un sistema simile anche sui form, ma fino ad ora non sono riuscito a trovare uno script già pronto.
Avete qualche suggerimento/link oppure qualche idea su soluzioni diverse.
Grazie in anticipo
-
Grandi ragazzi
devo cambiare la mia soluzione di vBulletin, non penso sia il massimo attualmente. Appena finirò con tutte le cose partirò con un progetto sull'accessibilità ed usabilità di questo Forum, per migliorarlo al massimo
-
Finalmente ho terminato il mio primo form (grazie Hogudo, grazie Massy ) tutto bello, validato online sia w3c xhtml che wcag priority 1, 2 e 3, ma sta maledetta captcha che distrugge tutto il lavoro fatto non so' proprio come toglierla. Se la tolgo ricevo una montagna di spam al giorno, se la lascio è come prendere in giro tutti quelli che hanno problemi di vista
Per adesso ho aggiunto una nota in cui avviso di contattarmi in caso di difficoltà a visualizzare l'immagine, ma è una soluzione che proprio non mi piace.
Continuo a cercare qualcosa di pronto da adattare allo scopo; quando/se lo trovo avviso.