Bonjour,
Voilà, je souhaite afficher l'extension de mon image, dans le profil d'un utilisateur. Pour cela, j'utilise le pseudo de l'utilisateur pour afficher l'image qu'il à choisi. Pourquoi j'ai choisi de prendre le pseudo ? Car en effet, lorsqu'il upload son image, l'image en question va être redimensionner et placer dans un dossier appelé "affiche" et l'autre image (l'original) va être déplacé dans le dossier (afforiginal). Donc c'est pour bien mettre en égal les images. Je sais pas si vous m'avez compris mais bon.
Je suis maintenant confronté à un problème, j'aimerai récupérer l'extenssion de mon image, mais comment faire ? Vu que j'utilise le pseudo de l'utilisateur?
Voilà mon script d'inscription :
<?php
if(isset($_POST['submit']))
{
$prenom = ucfirst(htmlspecialchars($_POST['prenom']));
$nom = ucfirst(htmlspecialchars($_POST['nom']));
$pseudo = ucfirst(htmlspecialchars($_POST['pseudo']));
$mdp = htmlspecialchars($_POST['mdp']);
$email = htmlspecialchars($_POST['email']);
$verifmdp = htmlspecialchars($_POST['verifmdp']);
$ListeExtension = array('jpg' => 'image/jpeg', 'jpeg'=>'image/jpeg', 'png' => 'image/png', 'gif' => 'image/gif');
$ListeExtensionIE = array('jpg' => 'image/pjpeg', 'jpeg'=>'image/pjpeg');
if($pseudo == true && $mdp == true && $email == true && $verifmdp == true && $prenom == true && $nom == true)
{
if(email_existe($email)==0)
{
if(pseudo_existe($pseudo)==0)
{
if(ctype_alnum(str_replace(array('-', '_'), '', $pseudo)))
{
if(strlen($pseudo) > 2 && strlen($pseudo) < 10 && strlen($prenom) < 10 && strlen($prenom) > 2 && strlen($nom) < 10 && strlen($nom) > 2 && strlen($mdp) < 10 && strlen($mdp) > 2)
{
if(preg_match('~[A-Z][a-z]*(-[A-Z][a-z]?)?~', $prenom))
{
if(preg_match('~[A-Z][a-z]*(-[A-Z][a-z]?)?~', $nom))
{
if($verifmdp == $mdp)
{
if(preg_match('#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#', $email))
{
if(empty($affiche)){ $affiche = "defaut.jpg"; }
if($_FILES['affiche']['size'] <= 2097152)
{
$ImageNews = $_FILES['affiche']['name'];
$ExtensionPresumee = explode('.', $ImageNews);
$ExtensionPresumee = strtolower($ExtensionPresumee[count($ExtensionPresumee)-1]);
if($ExtensionPresumee == 'jpg' || $ExtensionPresumee == 'jpeg' || $ExtensionPresumee == 'jpeg' || $ExtensionPresumee == 'gif' || $ExtensionPresumee == 'png')
{
$ImageNews = getimagesize($_FILES['affiche']['tmp_name']);
if($ImageNews['mime'] == $ListeExtension[$ExtensionPresumee] || $ImageNews['mime'] == $ListeExtensionIE[$ExtensionPresumee])
{
if($ExtensionPresumee == 'jpg' OR $ExtensionPresumee == 'jpeg' OR $ExtensionPresumee == 'pjpeg')
{
$ImageChoisie = imagecreatefromjpeg($_FILES['affiche']['tmp_name']);
}
elseif ($ExtensionPresumee == 'gif')
{
$ImageChoisie = imagecreatefromgif($_FILES['affiche']['tmp_name']);
}
elseif ($ExtensionPresumee == 'png')
{
$ImageChoisie = imagecreatefrompng($_FILES['affiche']['tmp_name']);
}
$TailleImageChoisie = getimagesize($_FILES['affiche']['tmp_name']);
$NouvelleLargeur = 100; // Largeur choisie à 350 px mais modifiable
$NouvelleHauteur = ($TailleImageChoisie[1] * (($NouvelleLargeur)/$TailleImageChoisie[0]));
$NouvelleImage = imagecreatetruecolor($NouvelleLargeur , $NouvelleHauteur) or die ("Erreur");
imagecopyresampled($NouvelleImage, $ImageChoisie, 0, 0, 0,0, $NouvelleLargeur, $NouvelleHauteur, $TailleImageChoisie[0], $TailleImageChoisie[1]);
imagedestroy($ImageChoisie);
$NomImageChoisie = explode('.', $_FILES['affiche']['name']);
if($ExtensionPresumee == 'jpg' OR $ExtensionPresumee == 'jpeg' OR $ExtensionPresumee == 'pjpeg')
{
imagejpeg($NouvelleImage , 'affiche/'.$pseudo.'.'.$ExtensionPresumee, 100);
}
elseif ($ExtensionPresumee == 'gif')
{
imagegif($NouvelleImage , 'affiche/'.$pseudo.'.'.$ExtensionPresumee, 100);
}
elseif ($ExtensionPresumee == 'png')
{
imagepng($NouvelleImage , 'affiche/'.$pseudo.'.'.$ExtensionPresumee, 9);
}
$affiche = 'affiche/'.$pseudo.'.'.$ExtensionPresumee;
if( move_uploaded_file($_FILES['affiche']['tmp_name'], "afforiginal/".$pseudo.'.'.$ExtensionPresumee) )
{
$mdp = sha1($_POST['mdp'].'@#]##ù%');
$req2 = $bdd->prepare('INSERT INTO login (pseudo, mdp, email) VALUES (:pseudo, :mdp, :email)');
$req2->execute(array('pseudo' => $pseudo, 'mdp' => $mdp, 'email' => $email));
$last = $bdd->lastInsertId();
$req4 = $bdd->prepare('INSERT INTO membre (id_login, affiche, prenom, nom) VALUES (:idlogin, :affiche, :prenom, :nom)');
$req4->execute(array('idlogin' => $last, 'affiche' => '', 'prenom' => $prenom, 'nom' => $nom ));
echo "<div class='alert alert-success'>Bravo ! Vous êtes inscrit.</div>";
}
else
{
if( file_exists('affiche/'.$pseudo.'.'.$ExtensionPresumee) ) // Supprimer l'image redimentionnée (l'utilisateur n'a pas été ajouté).
unlink('affiche/'.$pseudo.'.'.$ExtensionPresumee);
echo "<div class='alert alert-danger'>Impossible d'enregistrer l'image sur le serveur, une erreur s'est produite</div>";
}
}
else
{
echo "<div class='alert alert-danger'>Le type MIME de l'image n'est pas bon</div>";
}
}
else
{
echo "<div class='alert alert-danger'>L'extension choisie pour l'image est incorrecte</div>";
}
}
else
{
echo "<div class='alert alert-danger'>Votre affiche est trop lourde.</div>";
}
}
else
{
echo "<div class='alert alert-danger'>Votre email n'est pas valide.</div>";
}
}
else
{
echo "<div class='alert alert-danger'>La confirmation du mot de passe ne correspond pas.</div>";
}
}
else
{
echo "<div class='alert alert-danger'>Votre nom ne doit pas contenir de caractères spéciaux.</div>";
}
}
else
{
echo "<div class='alert alert-danger'>Votre prenom ne doit pas contenir de caractères spéciaux.</div>";
}
}
else
{
echo "<div class='alert alert-danger'>Veuillez respecter le format requis pour votre pseudo et votre mot de passe</div>";
}
}
else
{
echo "<div class='alert alert-danger'>Votre pseudo ne peut pas contenir de caractères spéciaux (&*@#, etc).</div>";
}
}
else
{
echo "<div class='alert alert-danger'>Ce pseudo est déjà utilisé.</div>";
}
}
else
{
echo "<div class='alert alert-danger'>Cette adresse email est déjà utilisée.</div>";
}
}
else
{
echo "<div class='alert alert-danger'>Veuillez remplir tous les champs.</div>";
}
}
?>
Et voici le début de mon affichage, ici le problème que l'image va toujours être en jpg alors que j'ai d'autres extenssion donc c'est problèmatique :
<?php
$verif_idprofil_exist = verification_profilid($_GET['id']);
if ($verif_idprofil_exist === true)
{
$reponse = $bdd->prepare('SELECT membre.prenom, login.pseudo, membre.nom, membre.affiche, membre.idmembre
FROM membre, login WHERE idmembre=:id AND membre.id_login = login.id');
$reponse->execute(array('id' => $_GET['id']));
while ($data = $reponse->fetch())
{
?>
<div class="image" style="background-image:url(affiche/<?php echo $data["pseudo"];?>.jpg)">
<img src="affiche/<?php echo $data["pseudo"];?>.jpg" alt="image profil"/>
</div>
Salut,
Plusieurs solutions pour moi :
(la plus simple serait la première, surtout niveau perf - enfin je pense)