Bonjour à tous, je suis debutant en developpement et tout nouveau ici.. desolé si je ne suis pas vos regles.
Pour résumer :
je dois m'occuper de faire un mailing pour mon entreprise.
- J'ai réalisé une page php " fondAvecMosaique.php "
Cette page me crée une image en fonction de la variable $email predefinie.
- J'ai ensuite réalisé mon email "email.php" qui va chercher la page php comme ceci :
Voilà mon probleme ... Lorsque je lance ma page email.php en local, l'image de mosaiqueAvecFond.php s'affiche tres bien au milieu de l'email ! Par contre, lorsque je met tout ca en ligne sur mon ftp, ca ne marche plus. J'ai pourtant essayé de remplacé le lien en absolu comme ceci :
mais non.. mon email s'affiche, mais a la place de l'image demandée, il s'affiche une image manquante !
D'ailleurs, si je lance la page " mosaiqueAvecFond.php?email=<?= $test@quimarche.com ?> "depuis mon ordinateur, le navigateur ne m'affiche bien qu'une image jpeg avec " test@quimarche.com " ecrit en mosaique.
mais si j'upload mosaiqueAvecFond.php et que je lance le meme lien, Internal Server Error.
D'ou vient mon erreur ? de mon code php ? pourtant il marche en local !
Voici mon code php ..
Modifié par sheikah (22 May 2012 - 14:54)
Pour résumer :
je dois m'occuper de faire un mailing pour mon entreprise.
- J'ai réalisé une page php " fondAvecMosaique.php "
Cette page me crée une image en fonction de la variable $email predefinie.
- J'ai ensuite réalisé mon email "email.php" qui va chercher la page php comme ceci :
<?php
$email = $_GET['email'];
?>
<!DOCTYPE HTML>
<html>
<body>
( ... )
<img src="mosaiqueAvecFond.php?email=<?= $email ?>">
( ... )
</body>
</html>
Voilà mon probleme ... Lorsque je lance ma page email.php en local, l'image de mosaiqueAvecFond.php s'affiche tres bien au milieu de l'email ! Par contre, lorsque je met tout ca en ligne sur mon ftp, ca ne marche plus. J'ai pourtant essayé de remplacé le lien en absolu comme ceci :
<img src="http://www.xxxx.xxx/Email/mosaiqueAvecFond.php?email=<?= $email ?>">
mais non.. mon email s'affiche, mais a la place de l'image demandée, il s'affiche une image manquante !
D'ailleurs, si je lance la page " mosaiqueAvecFond.php?email=<?= $test@quimarche.com ?> "depuis mon ordinateur, le navigateur ne m'affiche bien qu'une image jpeg avec " test@quimarche.com " ecrit en mosaique.
mais si j'upload mosaiqueAvecFond.php et que je lance le meme lien, Internal Server Error.
D'ou vient mon erreur ? de mon code php ? pourtant il marche en local !
Voici mon code php ..
<?php
header("Content-Type: image/jpeg");
if ( !isset($_GET['email']) && !isset($_POST['email'])) {
$_GET['email'] = ' test@quimarche.com '; // 26 caractËres
}
if ( isset($_POST['email']) ) {
$_GET['email'] = stripslashes($_POST['email']);
}
if ( isset($_GET['melange']) ) {
$_GET['email'] = str_shuffle($_GET['email']);
}
$email = strtolower($_GET['email']);
$largeurCaracteres = array('0'=>25,'1'=>19,'2'=>25,'3'=>24,'4'=>23,'5'=>28,'6'=>29,'7'=>28,'8'=>31,'9'=>29,'a'=>32,'@'=>49,'b'=>25,'c'=>26,'d'=>33,'e'=>25,'f'=>23,'g'=>27,'h'=>32,'i'=>17,'j'=>24,'k'=>32,'l'=>19,'m'=>49,'n'=>31,'o'=>32,'p'=>33,'.'=>17,'q'=>30,'r'=>24,'s'=>22,'_'=>28,'t'=>16,'-'=>24,'u'=>31,'v'=>25,'w'=>41,'x'=>30,'y'=>30,'z'=>23);
$largeur = largeur() + 20;
$hauteur = 100;
$image = imageCreateTrueColor($largeur, $hauteur);
$fond = imageCreateFromJpeg('Images/fond.jpg');
imageCopy($image, $fond, 0, 0, 0, 0, $largeur, $hauteur);
$x = 10;
for($i=0; $i < strlen($email); $i++) {
if ( array_key_exists($email[$i], $largeurCaracteres) ) {
$caractere = imageCreateFromPng('Images/CaracteresSylvain/' . caractere2nomFichier($email[$i]) . '.png');
imageCopy($image, $caractere, $x, ($hauteur-imagesy($caractere))/2, 0, 0, imagesx($caractere), imagesy($caractere));
$x += imagesx($caractere);
}
}
if ( 700 < imagesx($image) ) {
$x = 700;
$y = round( ( imagesy($image) * $x ) / imagesx($image) );
$imageRetaillee = imagecreatetruecolor ($x, $y);
imagecopyresampled ($imageRetaillee, $image, 0, 0, 0, 0, $x, $y, imagesx($image), imagesy($image));
imageJPEG($imageRetaillee);
}
else {
imageJPEG($image);
}
function caractere2nomFichier($caractere) {
$f = array('@'=>'arobase', '.'=>'point', '-'=>'tiret', '_'=>'souligne');
if ( array_key_exists($caractere, $f) ) {
return $f[$caractere];
}
else {
return $caractere;
}
}
function largeur() {
global $email, $largeurCaracteres;
$largeur = 0;
for($i=0; $i < strlen($email); $i++) {
if ( array_key_exists($email[$i], $largeurCaracteres) ) {
$largeur += $largeurCaracteres[$email[$i]];
}
}
return $largeur;
}
?>
Modifié par sheikah (22 May 2012 - 14:54)