IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques & Frameworks Discussion :

Impossible de gérer une image anti-spam en asynchrone


Sujet :

Bibliothèques & Frameworks

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif

    Inscrit en
    Août 2005
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 401
    Par défaut Impossible de gérer une image anti-spam en asynchrone
    Bonjour,

    je souhaite depuis ce matin modifier à la volée une image anti-spam. Je ne comprend pas pourquoi elle ne change pas. Le problème c'est qu'au lieu de me remplacer l'image il m'affiche l'image GIF avec plein de caractère étrange...

    Exemple : GIF87a��C����

    Enfin il me renvoi l'image que je génère mais elle est pas remplacer.

    Mon code HTML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <label for="captcha">Anti-spam *<br><br>
    En saisissant ce code, vous nous aidez à empêcher le spam et les enregistrements illégitimes.  :</label>
    				<span id="imageAntiSpam"><img src="Ajax.php?action=10" width="100" height="50" id"imagecc"></span> 
    				<a href="#" onclick="changeCaptcha()">Réinitialiser le code anti-spam</a><br>
    Mon code javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    /*
    *Change l'image du captcha si elle n'apparait pas ou n'est pas bien visible
    */
    function changeCaptcha()
    {
     
    new Ajax.Request(
    		'Ajax.php?action=12',
    		{
    			method: 'GET',
    			onSuccess: function(transport, json) {
    		    		var Response=transport.responseText;
    		    		//document.getElementById('imageAntiSpam').innerHTML=Response;
    		    		document.getElementById('imagecc').src='<img src="'+Response+'">';
    		    	}
    		}
    	);
     
     
     
    }
    Mon code Ajax.php?action=12
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    unset($_SESSION['captcha-control']);
     
    $captcha = new CaptchaExposeHome();
    $captcha->getCaptcha();
    Si vous y comprenez quelque chose... Pourquoi il ne me remplace pas l'image c'est bizarre en plus j'ai déjà réussit sur un autre site à le faire.

    bonne journée

  2. #2
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par défaut
    Je pense que c'est parce que quand tu écris ton captcha en PHP, tu ne set pas ton content type avec le bon mime type (image/gif)

  3. #3
    Membre très actif

    Inscrit en
    Août 2005
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 401
    Par défaut
    pourtant dans Firebug l'image envoyé est bien au format image\gif ...

    C'est à n'y rien comprendre...

    Vous utilisez quoi comme captcha en PHP ?

    Que je change car là c'est nulle cela ne marche pas...

    Bonne soirée

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Salut.
    En fait, ton script fait bien ce que tu lui demandes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var Response=transport.responseText;
    tu annonces que tu vas recevoir du texte, donc ton script affiche du texte...
    Ensuite, JavaScript est incapable de traiter autre chose que du texte. Donc tu ne peux pas lui renvoyer une image comme réponse à une requête AJAX.

    En revanche, logiquement, pour modifier un captcha généré en PHP, il suffit de modifier le src de l'image en question, pas besoin d'AJAX :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('imagecc').src='Ajax.php?action=12'
    en ajoutant éventuellement un timestamp pour outrepasser le cache.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par défaut
    J'avais pas bien regardé !

    Citation Envoyé par akrogames Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      onSuccess: function(transport, json) {
        var Response=transport.responseText;
        //document.getElementById('imageAntiSpam').innerHTML=Response;
        document.getElementById('imagecc').src='<img src="'+Response+'">';
      }
    ca ne risque pas de fonctionner !
    Il ne faut pas en ajax recuperer un flux binaire d'image, mais changer sa src donc pas ajax...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function changeCaptcha() {
      document.getElementById('imagecc').src='Ajax.php?action=12&ts=' + new Date().getTime();
    }

Discussions similaires

  1. Images anti spam
    Par namstou3 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 06/11/2007, 20h28
  2. [CKEditor] Impossible d'uploader une image
    Par SwiTz dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 27/03/2007, 17h01
  3. Impossible de supprimer une image
    Par X...FoR...X dans le forum Serveurs (Apache, IIS,...)
    Réponses: 2
    Dernier message: 04/02/2007, 16h28
  4. impossible de supprimer une image!
    Par pierrot67 dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/09/2006, 15h03
  5. Réponses: 1
    Dernier message: 30/12/2005, 17h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo