par
dunbar » 26 juin 2008, 16:22
Bon en gros voici la partie qui me permet de lire les caractères.
La création du code captcha simplement comme ceci:
$_SESSION['captcha'] = substr(str_shuffle("0123456789abcdefghijkmnopqrstuvwxyz"), 0, 4);
captcha.php
<?php
session_start();
header("content-type: image/png"); /*indique aux navigateurs qu'il s'agit d'une image png*/
$im = imagecreate(100, 40)
or die ("Impossible de crée l'image"); /*Création de l'image*/
$white = imagecolorallocate($im, 255, 255, 255); /*Mise en couleur de l'image*/
$black = imagecolorallocate($im, 0, 0, 0);
imagefill($im, 0, 0, $white); /*couleur de fond*/
/*Preparation de l'image pour mettre en session*/
if (!empty($_SESSION['captcha'])) {
for($i = 0; $i < strlen($_SESSION['captcha']); $i++) {
$r = rand(10,255);
$g = rand(10,255);
$b = sqrt(100 * 100 - $r * $r - $g * $g);
$couleur = imagecolorallocate($im, $r,$g,$b);
/*Taille de l'image, angle d'affichage, police, */
imagettftext($im, rand(13, 25), rand(-30, 30), 0 + 20 * $i +rand(0,5), 20 + rand(0, 10) ,
$couleur, 'polices/WAVY.TTF', $_SESSION['captcha'][$i]);
}
}
imagepng($im); /*affichage de l'image*/
imagedestroy($im); /*destruction de l'image*/
?>
captcha_son.php
<?php
session_start();
$captcha = $_SESSION['captcha'];
// Indique le chemin des mp3
function GetAudio($file, $dir = 'audio/fr_be/') {
$file = strtolower($file);
$handle = fopen($dir . $file, "rb");
$size = filesize($dir . $file);
// Si PHP5 est utilisé, stream_get_line (), sinon fread ()
if (function_exists('stream_get_line')) {
$load = stream_get_line($handle, $size); // Lit les fichiers plus rapidement que fread et fgets! ;)
}else{
$load = fread($handle, $size);
}
fclose($handle);
return array("mp3" => $load,
"size" => $size);
} //Lecture des caracteres
$order = array($captcha[0],
$captcha[1],
$captcha[2],
$captcha[3],
$captcha[4]
);
foreach($order as $key => $value) {
$audio[] = GetAudio("$value.mp3");
}
// Parse les fichiers sons et la somme filesize
foreach ($audio as $key => $value) {
$mp3 .= $audio[$key]['mp3'];
$size += $audio[$key]['size'];
}
// Envoyer le fichier généré MP3
header("Pragma: no-cache");
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Content-Type: audio/mp3');
header('Content-Disposition: attachment; filename="captcha_dunbar.mp3"');
header("Content-Transfer-Encoding: binary");
header("Content-length: $size");
echo $mp3;
?>
Voici le site qui ma permit de créer les fichiers.WAW
Et le site qui ma servie a les convertir en mp3 (c'étais pas indispensable)
Bon en gros voici la partie qui me permet de lire les caractères.
La création du code captcha simplement comme ceci:
[php]
$_SESSION['captcha'] = substr(str_shuffle("0123456789abcdefghijkmnopqrstuvwxyz"), 0, 4);
[/php]
[b]captcha.php[/b]
[php]
<?php
session_start();
header("content-type: image/png"); /*indique aux navigateurs qu'il s'agit d'une image png*/
$im = imagecreate(100, 40)
or die ("Impossible de crée l'image"); /*Création de l'image*/
$white = imagecolorallocate($im, 255, 255, 255); /*Mise en couleur de l'image*/
$black = imagecolorallocate($im, 0, 0, 0);
imagefill($im, 0, 0, $white); /*couleur de fond*/
/*Preparation de l'image pour mettre en session*/
if (!empty($_SESSION['captcha'])) {
for($i = 0; $i < strlen($_SESSION['captcha']); $i++) {
$r = rand(10,255);
$g = rand(10,255);
$b = sqrt(100 * 100 - $r * $r - $g * $g);
$couleur = imagecolorallocate($im, $r,$g,$b);
/*Taille de l'image, angle d'affichage, police, */
imagettftext($im, rand(13, 25), rand(-30, 30), 0 + 20 * $i +rand(0,5), 20 + rand(0, 10) ,
$couleur, 'polices/WAVY.TTF', $_SESSION['captcha'][$i]);
}
}
imagepng($im); /*affichage de l'image*/
imagedestroy($im); /*destruction de l'image*/
?>
[/php]
[b]captcha_son.php[/b]
[php]
<?php
session_start();
$captcha = $_SESSION['captcha'];
// Indique le chemin des mp3
function GetAudio($file, $dir = 'audio/fr_be/') {
$file = strtolower($file);
$handle = fopen($dir . $file, "rb");
$size = filesize($dir . $file);
// Si PHP5 est utilisé, stream_get_line (), sinon fread ()
if (function_exists('stream_get_line')) {
$load = stream_get_line($handle, $size); // Lit les fichiers plus rapidement que fread et fgets! ;)
}else{
$load = fread($handle, $size);
}
fclose($handle);
return array("mp3" => $load,
"size" => $size);
} //Lecture des caracteres
$order = array($captcha[0],
$captcha[1],
$captcha[2],
$captcha[3],
$captcha[4]
);
foreach($order as $key => $value) {
$audio[] = GetAudio("$value.mp3");
}
// Parse les fichiers sons et la somme filesize
foreach ($audio as $key => $value) {
$mp3 .= $audio[$key]['mp3'];
$size += $audio[$key]['size'];
}
// Envoyer le fichier généré MP3
header("Pragma: no-cache");
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Content-Type: audio/mp3');
header('Content-Disposition: attachment; filename="captcha_dunbar.mp3"');
header("Content-Transfer-Encoding: binary");
header("Content-length: $size");
echo $mp3;
?>[/php]
[url=http://www.research.att.com/~ttsweb/tts/demo.php]Voici le site qui ma permit de créer les fichiers.WAW[/url]
[url=http://media-convert.com/convertir/]Et le site qui ma servie a les convertir en mp3 (c'étais pas indispensable)[/url]