8732 sujets

Développement web côté serveur, CMS

Salut,

sans voir le code correspondant il est impossible de t'aider. Smiley murf

Cela ne ressemble pas à un message d'erreur mais à l'inclusion d'une image générée en PHP mais en ayant oublié le header correspondant au type mime de l'image (mais c'est bien sûr une simple suggestion en attendant de voir le code).

Ce qui est vraiment étrange c'est que ce code apparaisse après la balise </html>
Merci j'y vois un peu plus clair

je génére une image d'un captcha en php mais c'est un poil compliqué Smiley smile

en faite j'ai fais une architecture mvc :

dans mon controller de la page j'ai :


error_reporting(0);

//controller glabal index
include_once('models/connexion_sql.php');

//enleve les quotes
include_once('models/quotes.php');

include_once('models/words_limit.php');
//nombre limite de mots
$words_limit = 35;

// date en français
include_once('models/date_fr.php');

// connexion
include_once('models/connexion.php');

// controller index
include_once('controllers/home/index.php');

// captcha
include_once('models/captcha.php');

//contact
include_once('models/contact.php');



ini_set('session.use_trans_sid', 0); 




dans mon captcha.php >


session_start(); // On ouvre une session, car on va en utiliser plus loin.
header ("Content-type: image/png"); // On indique le format de l'image.
$image = imagecreate(70,20); // On indique les dimensions de l'image.
$fond = imagecolorallocate($image, 255, 255, 255); // On renseigne ici la couleur de fond.
$couleur_texte = imagecolorallocate($image, 0, 0, 0); // On indique la couleur du texte.

$nbre1 = rand(1,10);
$nbre2 = rand(1,10);
// On crée nos deux nombres avec chacun un chiffre aléatoire associé.

$_SESSION['resultat_captcha'] = $nbre1 + $nbre2; // Le résultat numérique de l'addition.
$_SESSION['addition'] = $nbre1.' + '. $nbre2; // L'addition sous forme textuelle.

imagestring($image, 6, 2, 2, $_SESSION['addition'], $couleur_texte);
// Enfin on insère le texte avec la couleur précisée dans l'image.

imagepng($image); // On génère l'image.
imagedestroy($image); // On libère la mémoire associée à l'image. 



et pour afficher le formulaire avec le captcha qui est inclus dans un fichier js/jquery


openContact : function(lien){ 
         
        mybox.lien = lien; 
        mybox.largeur = 400;    // largeur de la box 
        mybox.hauteur = 530;    // hauteur de la box 
         
         
        mybox.body(); 
        alert(lien); 
        mybox.contenu = "<fieldset id='connexion_form' style='display:block;'><legend>Contact</legend> 
<form action="+mybox.lien+"  method='post'  id='connexions_form' style='width:100%;float:left;'> 
<label id='label'>Email* :<br /> 
<input type='text' name='mail' id='mail_form' /></label><br /> 
<label id='label'>Nom* :<br /><input type='text' name='nom' id='nom_form' /></label><br /> 
<label id='label'>Pr&eacute;nom* :<br /> 
<input type='text' name='prenom' id='prenom_form' /></label><br /> 
<label id='label'>Votre demande* :</br> 
<textarea rows='8' cols='36' name='demande' id='demande_form' ></textarea></label><br /> 
<label id='label'>


<img src='models/captcha.php' alt='captcha' /> =<br /> 


<input id='captcha_input'  type='text' name='captcha' id='captcha'  /></label><div class='button_contact'> 
 <input type='reset' value='Annuler'  onClick='mybox.close();' id='connexion_button'/><input type='submit' value='Envoyer' name='send_contact' id='connexion_contact' /></div> 
</form><br /><br /><br /><br /> 
</fieldset><span style='font-size:10pt;'>* Les champs sont obligatoires.</span>"; 
 
                 
        mybox.animForm();


Smiley lol
Modifié par delsuza44 (04 Oct 2010 - 22:47)
Salut,

je pense que l'erreur vient de ton include :

// captcha 
include_once('models/captcha.php'); 


que tu fais dans ta partie controller. Vu le code de ton "captcha.php" il est fait pour donner en sortie une image et le fait d'en faire un include ça sort directement les données binaires sur la sortie standard (aka la page web). De plus si tu affiches les warnings tu verrais que tu as un problème de session (quasi-sûr). En réactiver l'affichage pour faire du débogage c'est souvent très utile.