All pastes #923844 Raw Edit

Something

public text v1 · immutable
#923844 ·published 2008-02-29 22:03 UTC
rendered paste body
	session_start();

	/**
	* Génère un code au hasard de 6 caractères
	*/

	$passe		= '';		
	$caracteres 	= 'abcdefpruvx368';
	$cnt		= strlen($caracteres)-1;

	for($i = 0; $i < 6; $i++)
	{
		$char 	= mt_rand(0,$cnt);
		$passe .= $caracteres[$char];
	}
		
	/**
	* Stocke ce code dans une session
	*/

	$_SESSION['code']=$passe;

	/**
	* On génère ensuite l'image associée au code
	*/

	$image=imagecreate(210,70) OR exit;

	header ('Content-type: image/gif');

	/**
	* Prépare le fond de l'image
	*/

	$fond=imagecolorallocate($image,255,255,255);

	/**
	* Dessine le cadrillage
	*/

	$i=0;
	$couleur_ligne=imagecolorallocate($image,230,230,230);
	while($i<70)
	{
		imageline($image,0,$i,210,$i,$couleur_ligne);
		$i+=5;
	}

	$i=0;
	while($i<210)
	{
		imageline($image,$i,0,$i,70,$couleur_ligne);
		$i+=5;
	}


	/**
	* Dessine les caractères sur l'image
	*/

	$nb_caracteres=strlen($_SESSION['code']); //7 caractères par défaut
	$i=0;
	$pos_x=-5;

	while($i<$nb_caracteres)
	{
		/**
		* Génération d'une couleur aléatoire dont les tons n'approchent pas le blanc
		* afin de rester visible
		*/

		$couleur1=mt_rand(0,220);
		$couleur2=mt_rand(0,220);
		$couleur3=mt_rand(0,220);

		$pos_x	+= mt_rand(25,35); 	//position horizontale du caractère
		$pos_y	 = mt_rand(35,50); 	//position verticale du caractère
		
		$taille	 = mt_rand(35, 50);	//Taille de la police
		$angle	 = mt_rand(5,70);	//Inclinaison

		$couleur = imagecolorallocate($image,$couleur1,$couleur2,$couleur3);
		imagettftext($image, $taille , $angle , $pos_x, $pos_y, $couleur, './core/JOURNAL.TTF', $_SESSION['code'][$i]);
		$i++;
	}

	imagefilter($image, IMG_FILTER_MEAN_REMOVAL);

	$matrice = array(array(-1.1,2.0,3.0), array(-2.0,3.0,-1.0), array(-1.0 ,3.9, 3.0));

	imageconvolution($image, $matrice, 10, 0);

	imagegif($image);