Creer un jpg a partir d'une BDD

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Creer un jpg a partir d'une BDD

par sylvaing26 » 24 oct. 2008, 19:41

Merci beaucoup !!!!!
Effectivement il s'agissait de supprimer mon ?> à la fin de mon fichier connect.php

par Calimero » 19 oct. 2008, 14:24

j'ai supprimé mes retours chariot et toujours le problème ... :shock: je desespere
Faut pas, tu touches au but.

Le retour chariot que tu dois supprimer est soit :

- dans le code PHP, dans une instruction echo ou print (mais c'est peu probable)
- Hors du code PHP, soit avant une balise de début ( <?php ), soit après une balise de fin ( ?> ). Tu peux dans tous les cas supprimer les ?> situés en fin de fichier, comme dans le code que tu as posté ici, ils sont inutiles et peuvent engendrer le problème que tu rencontres. Et n'oublie pas de faire pareil pour admin/connect.php et tous les éventuels fichiers inclus.

Si ça peut te redonner de l'espoir j'ai réussi à voir les fleurs de ton fond d'écran, comme quoi la solution est vraiment à portée de main ;-)

par sylvaing26 » 19 oct. 2008, 14:18

j'ai supprimé mes retours chariot et toujours le problème ... :shock: je desespere

par Calimero » 19 oct. 2008, 13:26

Il y a des caractères parasites au début de ton image. Encore une victime du BOM ?

--------------------------

Edit : ah ben non :-) Tu as laissé traîner un retour à la ligne affiché quelquepart dans ce fichier (ou dans include/connect.php) qui empêche la validation du fichier jpeg et donc, son affichage.

Il suffit de supprimer ce retour chariot parasite.

par sylvaing26 » 19 oct. 2008, 10:37

j'avais ce message
Notice: Use of undefined constant nom - assumed 'nom' in /home/c/p/n/cpn-lours/www/wallpaper/fd_ecran_cpn.php on line 14
j'ai donc mis $nom = $result['nom'] et je n'ai plus le message d'erreur, juste les lignes de charabia. Lorsque je remet mon header cela ne fonctionne toujours pas
Voici le lien sans le header
http://cpn-lours.ovh.org/wallpaper/fd_e ... .php?id=59
et avec
http://cpn-lours.ovh.org/wallpaper/fd_e ... .php?id=59

par Calimero » 19 oct. 2008, 05:46

Comment avoir des messages d'erreur en trois étapes :

1/ Enlève tous les @ devant les noms de fonction, comme Ryle te l'indique.
2/ Commente provisoirement la ligne header() en début de script. Tu devrais voir une horrible bouillie de caractères à la place de ton image (avec, si tu as de la chance, un message d'erreur bien lisible dedans)
3/ Si tout cela ne suffit pas, ajoute en tout début de script un
error_reporting(E_ALL);
pour afficher tout message d'erreur.

par sylvaing26 » 19 oct. 2008, 02:19

Il ne me met rien, il m'affiche juste un carré avec une croix rouge comme quoi il ne trouve pas l'image.
Les chemins sont justes car si je fait le même script dans un php normal en ce qui concerne la recuperation du nom de la photos dans la base de donnée, il me renvoi bien le nom de la photo dans la base.
Je seche a fond sur ce coup là

par Ryle » 18 oct. 2008, 20:53

Et en l'occurence, ça t'affiche quoi ? :)

L'operateur de silence "@" permet de ne pas afficher les messages d'erreur de php... c'est pas forcément judicieux de les utiliser quand on essaye de débuger. S'il y a un problème avec la fonction imageCopyMerge() jamais tu ne le sauras... commence peut être par les virer et voir ce que te dis php :)

Les chemins vers les images depuis ce script sont-ils corrects ?

Creer un jpg a partir d'une BDD

par sylvaing26 » 18 oct. 2008, 19:19

Bonjour, j'ai ce code, la boucle pour recuperer le no mde la photo fonctionne je l'ai testée sur une autre page mais par contre dans ce code ca ne m'affiche pas l'image.
d'ou vient ke probkème ?
merci
<?php
//------------------------------------------------------------------------------------------
//     applcation d'un copyright  sur une photo
//------------------------------------------------------------------------------------------
// on spécifie le type de fichier créer (ici une image de type jpeg)  
header ("Content-type: image/jpeg");
$id = $_GET['id']; 
include("admin/connect.php");
@MYSQL_CONNECT($serveur,$utilisateur,$mdp) or die ("Connexion impossible");
@MYSQL_SELECT_DB($db) or die ("Connexion à la base $base impossible");
$sql=mysql_query("SELECT nom FROM wallpaper WHERE id='$id'");
while($result=mysql_fetch_array($sql)){ 
// on crée deux variables contenant les chemins d'accès à nos deux fichiers : $fichier_source contenant le lien vers l'image à "copyrighter", $fichier_copyright contenant le lien vers la petite vignette contenant le copyright (bien sur, on prendra soin de placer les images sources dans un répertoire "caché" sinon le copyright ne sert à rien si les visiteurs ont accès aux images sources)  
$fichier_source = $result[nom];
} 
$fichier_copyright = "copyright.png";  
// on crée nos deux ressources de type image (par le biais de la fonction ImageCreateFromJpeg)  
$im_source = ImageCreateFromJpeg ($fichier_source);  
$im_copyright = ImageCreateFrompng ($fichier_copyright);  
 
// on calcule la largeur de l'image qui va être copyrightée  
$larg_destination = imagesx ($im_source);  
$haut_destination = imagesy ($im_source);
// on calcule la largeur de l'image correspondant à la vignette de copyright  
$larg_copyright = imagesx ($im_copyright);  
// on calcule la hauteur de l'image correspondant à la vignette de copyright  
$haut_copyright = imagesy ($im_copyright);  
 
// on calcule la position sur l'axe des abscisses de la vignette  
//$x_destination_copyright = $larg_destination - $larg_copyright;  
$x_destination_copyright = $haut_destination - $haut_copyright - 100; 
$y = $larg_destination - $larg_copyright; 
 
// on réalise la superposition, le dernier paramètre étant le degré de transparence de la vignette (cependant, allez voir la fin de ce même tutorial pour une définition complète de tous les arguments de cette fonction)  
@imageCopyMerge ($im_source, $im_copyright, 
       $y, $x_destination_copyright, 0, 0, $larg_copyright, 
      $haut_copyright, 80);  
// on affiche notre image copyrightée  
Imagejpeg ($im_source);  
?>