Pagina 7 di 21 primaprima ... 5 6 7 8 9 17 ... ultimoultimo
Visualizzazione dei risultati da 61 a 70 su 205
  1. #61
    Utente bannato L'avatar di Braco
    Registrato dal
    Oct 2005
    Messaggi
    1,697

    Re: [PILLOLA] introduzione a captcha nei form HTML

    Originariamente inviato da marketto
    Ciao a tutti, avete mai sentito parlare di "captcha" (Rif.1)?? Essa rappresenta l'acronimo di "completely automated public Turing test to tell computers and humans apart", ovvero la capacità di distinguere l'utente dal robot in base alla sua capacità di riconoscere, in una immagine, un testo scritto con caratteri di fantasia, continuamente diversi, e modificati con l'aggiunta di rumore casuale. (Rif.2)

    Queste poche righe di codice rappresentano un primo approccio, forse minimo, al problema in oggetto. Sono disponibili infatti in rete molte classi, con un numero maggiore di funzioni, riguardarti i captcha.

    Da notare inoltre come questo tipo di controlli introduca dei problemi di accessibilità nei confronti di alcuni utenti (Rif.3).






    --------------------------
    riferimenti sul web:
    Rif.1 -> http://www.captcha.net/
    Rif.2 -> http://www.webegg.it/ita/capireilfut...bergadano8.htm
    Rif.3 -> http://www.linux.it/~claudio/w3c/TR/turingtest/


    --------------------------
    file prova.php

    codice:
    <?php
    error_reporting(E_ALL);
    require_once('captcha.class.php');
    session_start();
    $captcha=new captcha();
    $act=isset($_GET['act']) ? $_GET['act'] : '';
    switch($act):
    	case('img'):
    		$captcha->offuscamento=3;
    		$captcha->genera($_GET['stringa']);	
    	break;
    	case('check'):
    		if($_SESSION['stringa'] == $_POST['codice']){
    			echo 'nome: '.$_POST['nome'];
    			echo '
    ';
    			echo 'cognome: '.$_POST['cognome'];
    		} else
    			echo 'Il codice non corrisponde all\'immagine';
    	break;
    	default:
    		$stringa=$captcha->stringa_casuale();
    		$_SESSION['stringa']=$stringa;
    		echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'?act=check">
    		<ul style="list-style: none;">
    		[*]nome: <input type="text" name="nome" />
    		[*]cognome: <input type="text" name="cognome" />
    		[*]codice: [img]'.$_SERVER['PHP_SELF'].'?act=img&stringa='.$stringa.'[/img]
    		[*]inserisci il codice: <input type="text" name="codice" />
    		[*]<input type="submit" name="invia" value="invia" />
    		[/list]
    		</form>';	
    	break;
    endswitch;
    ?>

    --------------------------
    file captcha.class.php
    codice:
    <?php
    // Marco Barcaro
    // 22/03/2005
    //
    // questa classe richiede le librerie grafiche GD
    //
    // Testato con Apache 1.3.33, PHP 4.3.10, GD 2.0.28 su winXP
    
    class captcha {
    
    	var $offuscamento = '';
    
    	function captcha(){
    		$this->x=110;
    		$this->y=30;
    		$this->font='arial.ttf';
    		$this->dimensione=20;		
    	}
    
    	function stringa_casuale(){
    		return chr(rand(65,90)) . chr(rand(65,90)) . chr(rand(65,90)) . chr(rand(65,90)) . chr(rand(65,90));
    	}
    
    	function genera($stringa){
    		$im=imagecreate($this->x,$this->y);
    		$bianco=imagecolorallocate($im, 255, 255, 255);
    		$nero=imagecolorallocate($im, 0, 0, 0);
    		$box=imagettfbbox($this->dimensione, 0, $this->font, $stringa);
    		imagettftext($im, $this->dimensione, 0, 5, 5+abs($box[5]), $nero, $this->font, $stringa);
    		$this->offuscamento=$this->offuscamento != NULL ? $this->offuscamento : 0;
    		$max=ceil(($this->x * $this->y * $this->offuscamento) / 30);
    		for($i=0;$i<$max;$i++){
    			$temp_x=rand(1,$this->x);
    			$temp_y=rand(1,$this->y);
    			imageline ($im, $temp_x, $temp_y, $temp_x, $temp_y, $nero);
    		}
    		for($i=1;$i<$this->y;$i=$i+10){
    			imageline ($im, 0, $i, $this->x, $i+5, $nero);		
    		}
    		for($i=1;$i<$this->x;$i=$i+10){
    			imageline ($im, $i, 0, $i+5, $this->y, $nero);		
    		}		
    		header("content-type: image/jpeg");
    		imagejpeg($im,"",80);
    		imagedestroy($im);	
    	}
    }
    ?>
    Ho trovato questo codice e vorrei inserirlo nel mio guestbook, non sono molto esperto, quale si deve inserire? O tutti e 2 i file?

  2. #62
    ragazzi ho provato la pillola e devo dire ke funziona tutto
    ma mi kiedo come devo fare ad integrare il tutto nel mio form di registrazione?

  3. #63
    Originariamente inviato da skidx
    Non so se sia già stato detto, ma il captcha è palesemente inaccessibile.
    Quindi aldilà di album fotografici o di siti porno, per me la sua utilità è zero.

    Non per fare il guastafeste, imparare cose nuove va sempre bene, era giusto per dare un quadro completo.
    beh ho visto affiancare qualche volta un file sonoro (mp3 probabilmente) al classico "CAPTCH visuale"

    comunque concordo con te

  4. #64
    mi spiego meglio ,
    nel file prova la action del form è


    Codice PHP:
    action="'.$_SERVER['PHP_SELF'].'?act=check" 
    questa non mi peremette di inviare il file come potrei fare=?


    ragazzi nn sono pratico per nulla di phpp

  5. #65

  6. #66
    Originariamente inviato da neida
    Anch'io ho avuto lo stesso problema, all'inizio... sono riuscito a risolvere eliminando alcuni spazi vuoti, creati sicuramente dal copia/incola, trovati sotto il tag di chiusura "?>" nel file captcha.class.php ...sembra strano, ma ora funge!
    ho passato ore a cercare un fantomatico errore o problemi di compatibilità delle mie gd ... e poi ho seguito neida e togliendo due righe vuote dopo la chiusura "?>" ... come mai ... perchè? boh! ... VVoVe:

  7. #67

    ho letto tutto ed ho trovato la soluzione ... leggete gente! leggete!

  8. #68
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    136
    Ciao e complimenti davvero per la pillola!
    Devo però chiedere il vostro aiuto perchè a me non va!
    Ho tolto tutti gli spazi alla fine della classe e se provo il file di esempio è tutto ok! Quando provo ad integrare il tutto all'interno delle pagine del mio sito mi dà questo errore:

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at workdisk/home/web/www.xxx.it/htdocs/contatti/index2.php:7) in /workdisk/home/web/www.xxx.it/htdocs/contatti/index2.php on line 39

    ho messo il codice dell'esempio in una mia pagina nel punto in cui vorrei far apparire il form ma prima mi compare questo errore e poi il form ma senza l'immagine!

    Il font è ok, ho controllato e ricontrollato lo spazio alla fine della classe ma non c'è!
    Cosa altro può essere?

    Ciao e grazie
    Luigi

  9. #69
    leggi tutta la prima pagina del thread......

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #70
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    136
    Prima di postare ho letto non solo la prima pagina ma tutta la discussione!

    La cosa strana che non riesco a spiegarmi è perchè il file di esempio che ho preso dal forum funziona e se invce metto quello stesso codice nella mia pagina non funziona!

    Se ho una pag del tipo
    <html>
    <head> </head>
    <body>
    <?php.... posso inserire qui il codice? tipo quello dell'esempio?
    </body>

    </html>


    Ciao e grazie!
    Luigi

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.