Captcha audible

ViPHP
ViPHP | 2291 Messages

20 mai 2008, 20:04

Bonjour,

Je créer un formulaire muni d'un code de validation (captcha) et je le rend également audible il fonction correctement à la seul exception que quand il doit lire le code il télécharge un fichier (qui est correct) mais moi je voudrais qu'il le lise directement dans explorer sans télécharger aucun fichier.
Voici mon header() que je transmet.
// Envoyer le fichier généré MP3
	header("Pragma: no-cache");
	header('Cache-Control:  no-cache, must-revalidate');
	header('Content-Type: audio/mepeg');
	header("Content-Disposition: inline; filename=\"validate.mp3\"");
	header("Content-Transfer-Encoding: binary");
	header("Content-length:" . strlen($mp3));
    echo $mp3;
J'ai dû oublier de transmettre quelque chose mais jene voie pas quoi #-o

D'avance merci

Administrateur PHPfrance
Administrateur PHPfrance | 449 Messages

20 mai 2008, 23:45

Par defaut les navigateur ne lisent pas les fichier MP3 sans avoir un plugins de lecture.
mais je ne vois pas comment apporter une solution ...
Cordialement
Saeveas

http://saeveas.labrute.fr

ViPHP
ViPHP | 4674 Messages

21 mai 2008, 09:43

Hey :),

Normalement un captcha audible est une solution alternative à un captcha de type image (entre autre). Tu proposes donc un lien qui ouvre une popup (en le signalant), et dans cette popup, tu te débrouilles pour lancer un plugin quelconque (Quicktime par exemple).
Ça me paraît être une solution plutôt propre, non ?
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Mammouth du PHP | 1668 Messages

21 mai 2008, 10:48

http://www.siteduzero.com/tuto-3-16759- ... -site.html

En théorie on fais ça par streaming...

Ce lien t'en dira plus je penses...
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

ViPHP
ViPHP | 2291 Messages

21 mai 2008, 16:29

Salut,

@HyWaN non j'ai un lien qui pointe vers mon fichier son (captcha_son.php) je lui transmet mes valeur de session, mais je n'ouvre aucune fenêtre.
@katagoto merci pour le lien mais je connaissais déjà :wink:, mais je voulais en faire un moi-même sans bêtement recopier celui-là.
@SAEVEAS bin c'est dommage , je vais essayer en changeant de format :?

Merci pour vos réponses je vais chercher :wink:

ViPHP
ViPHP | 2291 Messages

25 mai 2008, 00:05

Bonjour,

Juste pour info la solution est de placer un SWF qui lit le code de la session
demo ici

J'utilise le lecteur Dewplayer

test IE et firefox OK.
Modifié en dernier par dunbar le 25 mai 2008, 10:40, modifié 1 fois.

Administrateur PHPfrance
Administrateur PHPfrance | 449 Messages

25 mai 2008, 04:29

plutôt intéressant merci d'avoir mis la solution.
Il serait intéressant de récupérer les sources si elles sont dispos pour le passer en français.

Seul bémol il faut avoir flash d'installé ...^^
Cordialement
Saeveas

http://saeveas.labrute.fr

ViPHP
ViPHP | 2291 Messages

25 mai 2008, 09:03

plutôt intéressant merci d'avoir mis la solution.
Il serait intéressant de récupérer les sources si elles sont dispos pour le passer en français.

Seul bémol il faut avoir flash d'installé ...^^
Je termine l'enregistrement des sons en français et je mettrais mes sources à disposition.
Quand à flash quand on connaît le niveau de pénétration je ne pense pas que cela pose pas réellement problème. :wink:
Modifié en dernier par dunbar le 25 mai 2008, 10:41, modifié 1 fois.

ViPHP
ViPHP | 4674 Messages

25 mai 2008, 10:30

C'est très intéressant en effet, mais il faudrait proposer le flash avant le champ de texte.
Et 2 fois de suite, ils m'ont lowercase alors que c'était uppercase, je ne sais pas si c'est normal ou un bug connu :).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ViPHP
ViPHP | 2291 Messages

25 mai 2008, 10:38

C'est très intéressant en effet, mais il faudrait proposer le flash avant le champ de texte.
Et 2 fois de suite, ils m'ont lowercase alors que c'était uppercase, je ne sais pas si c'est normal ou un bug connu :).
Oui je sais mais de toute façon je ne compte plus indiquer s’il s'agit d'une lettre minuscule ou majuscule, je ne place que des chiffres et lettre en minuscule (c’est largement assez je pense :lol: ).
Quand à placer le flash avant oui pourquoi pas, mais ici je travaillais principal a rendre la lecture du code compatible entre IE et le renard. :wink:

Et une question serais t'il utile de placer mes sources dans le forum contribution :?:

ViPHP
ViPHP | 4674 Messages

25 mai 2008, 10:50

Pourquoi pas oui. Moi, je suis assez curieux de voir comment tu as fait ça ;-).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ViPHP
ViPHP | 4674 Messages

26 juin 2008, 10:31

Alors, t'as fait comment ;-) ?
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ViPHP
ViPHP | 2291 Messages

26 juin 2008, 16:03

Je met tout mon code propre et commenter pour éviter de me faire démonté par certain et je te montre :wink:

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

ViPHP
ViPHP | 4674 Messages

26 juin 2008, 16:08

Je met tout mon code propre et commenter pour éviter de me faire démonté par certain et je te montre :wink:
Cyrano n'est pas là, vas-y !
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ViPHP
ViPHP | 2291 Messages

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)