Redimensionnement photo a l'upload (php)

Bonjour!

J’ai un site http://webenn.com. Je propose aux membres lors de leur inscription de pouvoir mettre une photo avec leur profil. J’aimerais un bon de code pour ajouter au mien pour redimensionner la photo lors de l’upload. Mon script est le suivant:

if (isset($_GET[‘a’])) $a = $_GET[‘a’]; else if (isset($_POST[‘a’])) $a = $_POST[‘a’]; else $a="";
switch($a){

default:
?>
<form name="inscription" method="post" action="inscription.php" enctype="multipart/form-data">
<input type="hidden" name="a" value="inscription">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="3"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr bgcolor="#174105">
<td width="41" height="27" bgcolor="#FFFFFF"><img src="/images/icones/inscription.gif" width="41" height="27"></td>
<td valign="bottom" background="./images/bloc_top_2.gif" bgcolor="#FFFFFF" class="titre">Inscription</td>
<td width="14" background="./images/bloc_top_3.gif" bgcolor="#FFFFFF">&nbsp;</td>
</tr>
</table>
</td>
</tr>

                    		&lt;tr&gt;
                    				&lt;td width=&quot;16&quot; background=&quot;./images/bloc_ctr_1.gif&quot;&gt;&amp;nbsp;&lt;/td&gt;
                    				
      								&lt;td width=&quot;478&quot; bgcolor=&quot;#FFFFFF&quot;&gt;
									
									&lt;table cellpadding=&quot;2&quot; cellspacing=&quot;2&quot; align=&quot;center&quot; border=&quot;0&quot;&gt;
										&lt;tr&gt;
										&lt;td colspan=&quot;2&quot;&gt;Les champs marqués d'une &lt;font color=&quot;RED&quot;&gt;*&lt;/font&gt; sont obligatoires.&lt;/td&gt;
									&lt;/tr&gt;
									&lt;tr&gt;
										&lt;td colspan=&quot;2&quot;&gt;&lt;br&gt;&lt;/td&gt;
									&lt;/tr&gt;
										&lt;tr&gt;
										&lt;td&gt;Votre photo :&lt;/td&gt;
										&lt;td&gt;&lt;input type=&quot;file&quot; name=&quot;image&quot;&gt;&lt;/td&gt;
									&lt;/tr&gt;
									&lt;tr&gt;
										&lt;td&gt;Votre nom d'utilisateur :&lt;/td&gt;
										&lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;pseudo&quot; size=&quot;30&quot; maxlength=&quot;30&quot;&gt; &lt;font color=&quot;RED&quot;&gt;*&lt;/font&gt;&lt;/td&gt;
									&lt;/tr&gt;
									&lt;tr&gt;
										&lt;td&gt;Votre mot de passe :&lt;/td&gt;
										&lt;td&gt;&lt;input type=&quot;password&quot; name=&quot;pass&quot; size=&quot;30&quot; maxlength=&quot;30&quot;&gt; &lt;font color=&quot;RED&quot;&gt;*&lt;/font&gt;&lt;/td&gt;
									&lt;/tr&gt;
									&lt;tr&gt;
										&lt;td&gt;Votre email :&lt;/td&gt;
										&lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;email&quot; size=&quot;30&quot; maxlength=&quot;150&quot;&gt; &lt;font color=&quot;RED&quot;&gt;*&lt;/font&gt;&lt;/td&gt;
									&lt;/tr&gt;
									&lt;tr&gt;
										&lt;td&gt;Votre nom :&lt;/td&gt;
										&lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;nom&quot; size=&quot;30&quot; maxlength=&quot;30&quot;&gt; &lt;font color=&quot;RED&quot;&gt;*&lt;/font&gt;&lt;/td&gt;
									&lt;/tr&gt;
									&lt;tr&gt;
										&lt;td&gt;Votre prénom :&lt;/td&gt;
										&lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;prenom&quot; size=&quot;30&quot; maxlength=&quot;30&quot;&gt; &lt;font color=&quot;RED&quot;&gt;*&lt;/font&gt;&lt;/td&gt;
									&lt;/tr&gt;
									&lt;tr&gt;
										&lt;td&gt;Votre Age :&lt;/td&gt;
										&lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;age&quot; size=&quot;2&quot; maxlength=&quot;2&quot;&gt; &lt;font color=&quot;RED&quot;&gt;*&lt;/font&gt;&lt;/td&gt;
									&lt;/tr&gt;
									&lt;tr&gt;
										&lt;td&gt;Votre sexe :&lt;/td&gt;
										&lt;td&gt;&lt;input type=&quot;radio&quot; name=&quot;sexe&quot; value=&quot;1&quot; checked&gt; Homme &lt;input type=&quot;radio&quot; name=&quot;sexe&quot; value=&quot;2&quot;&gt; Femme &lt;font color=&quot;RED&quot;&gt;*&lt;/font&gt;&lt;/td&gt;
									&lt;/tr&gt;
									&lt;tr&gt;
										&lt;td&gt;Votre situation :&lt;/td&gt;
										&lt;td&gt;&lt;select name=&quot;situation&quot;&gt;&lt;option value=&quot;1&quot;&gt;Célibataire&lt;/option&gt;&lt;option value=&quot;2&quot;&gt;En couple&lt;/option&gt;&lt;/select&gt; &lt;font color=&quot;RED&quot;&gt;*&lt;/font&gt;&lt;/td&gt;
									&lt;/tr&gt;
									&lt;tr&gt;
										&lt;td&gt;Votre adresse :&lt;/td&gt;
										&lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;adresse&quot; size=&quot;30&quot; maxlength=&quot;50&quot;&gt; &lt;font color=&quot;RED&quot;&gt;*&lt;/font&gt;&lt;/td&gt;
									&lt;/tr&gt;
									&lt;tr&gt;
										&lt;td&gt;Votre code postal :&lt;/td&gt;
										&lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;code_postal&quot; size=&quot;5&quot; maxlength=&quot;5&quot;&gt; &lt;font color=&quot;RED&quot;&gt;*&lt;/font&gt;&lt;/td&gt;
									&lt;/tr&gt;
									&lt;tr&gt;
										&lt;td&gt;Votre ville :&lt;/td&gt;
										&lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;ville&quot; size=&quot;30&quot; maxlength=&quot;30&quot;&gt; &lt;font color=&quot;RED&quot;&gt;*&lt;/font&gt;&lt;/td&gt;
									&lt;/tr&gt;
									&lt;tr&gt;
										&lt;td&gt;Vos centres d'intérêt :&lt;/td&gt;
										&lt;td&gt;&lt;textarea name=&quot;centres&quot; rows=&quot;5&quot; cols=&quot;40&quot;&gt;&lt;/textarea&gt;&lt;/td&gt;
									&lt;/tr&gt;
										&lt;tr&gt;
										&lt;td colspan=&quot;2&quot;&gt;&lt;br&gt;&lt;/td&gt;
									&lt;/tr&gt;
									&lt;tr&gt;
										&lt;td colspan=&quot;2&quot; align=&quot;center&quot;&gt;&lt;input type=&quot;submit&quot; value=&quot;Valider mon inscription &gt;&gt;&quot;&gt; &lt;input type=&quot;reset&quot; value=&quot;Effacer&quot;&gt;&lt;/td&gt;
									&lt;/tr&gt;
									&lt;/table&gt;
									
									
							  &lt;/td&gt;
                    				&lt;td width=&quot;14&quot; background=&quot;./images/bloc_ctr_2.gif&quot;&gt;&amp;nbsp;&lt;/td&gt;
       				  &lt;/tr&gt;
                    		&lt;tr&gt;
                    				&lt;td&gt;&lt;img src=&quot;./images/bloc_bas_1.gif&quot; width=&quot;16&quot; height=&quot;11&quot;&gt;&lt;/td&gt;
                    				&lt;td background=&quot;./images/bloc_bas_2.gif&quot;&gt; &lt;/td&gt;
                    				&lt;td&gt;&lt;img src=&quot;./images/bloc_bas_3.gif&quot; width=&quot;14&quot; height=&quot;11&quot;&gt;&lt;/td&gt;
       				  &lt;/tr&gt;

</table>
</form>
<?
break;

##########################

Inscription

##########################
case "inscription":

// Declaration des variables
if (isset($_POST[‘pseudo’])) $pseudo = $_POST[‘pseudo’]; else $pseudo = “”;
if (isset($_POST[‘pass’])) $pass = $_POST[‘pass’]; else $pass = “”;
if (isset($_POST[‘email’])) $email = $_POST[‘email’]; else $email = “”;
if (isset($_POST[‘nom’])) $nom = $_POST[‘nom’]; else $nom = “”;
if (isset($_POST[‘prenom’])) $prenom = $_POST[‘prenom’]; else $prenom = “”;
if (isset($_POST[‘age’])) $age = $_POST[‘age’]; else $age = “”;
if (isset($_POST[‘sexe’])) $sexe = $_POST[‘sexe’]; else $sexe = “”;
if (isset($_POST[‘situation’])) $situation = $_POST[‘situation’]; else $situation = “”;
if (isset($_POST[‘adresse’])) $adresse = $_POST[‘adresse’]; else $adresse = “”;
if (isset($_POST[‘code_postal’])) $code_postal = $_POST[‘code_postal’]; else $code_postal = “”;
if (isset($_POST[‘ville’])) $ville = $_POST[‘ville’]; else $ville = “”;
if (isset($_POST[‘centres’])) $centres = $_POST[‘centres’]; else $centres = “”;

// Verification des champs obligatoires
if($pseudo==""||$pass==""||$email==""||$nom==""||$prenom==""||$age==""||$sexe==""||$adresse==""||$code_postal==""||$ville==""){
erreur("Veuillez remplir les champs obligatoires !");
}

// Verification de la validité de l’email
if(!check_email($email)){
erreur(“Votre email n’est pas valide, veuillez en entrer une valide !”);
}

// Verifie si l’age est un nombre
if(!ereg("^[0-9]{2}$",$age)){
erreur(“Votre âge n’est pas un nombre !”);
}

// Verification que le nom d’utilisateur n’existe pas
$sql = “SELECT COUNT(*) AS nbre FROM “.$GLOBALS[“table_membres”].” WHERE pseudo=’”.$pseudo."’";
$query = mysql_query($sql) or die(“Erreur sur $sql :<br><br>”.mysql_error());
$data = mysql_fetch_array($query);

if($data[“nbre”]>0){
erreur(“Votre nom d’utilisateur est déjà présent dans la base de données, veuillez en choisir un autre !”);
}

// Verification que l’email n’existe pas
$sql = “SELECT COUNT(*) AS nbre FROM “.$GLOBALS[“table_membres”].” WHERE email=’”.$email."’";
$query = mysql_query($sql) or die(“Erreur sur $sql :<br><br>”.mysql_error());
$data = mysql_fetch_array($query);

if($data["nbre"]>0){
erreur("Votre email est déjà présent dans la base de données, veuillez en choisir une autre !");
}

$sql = “INSERT INTO “.$GLOBALS[“table_membres”].” VALUES (’’,’”.$pseudo."’,’".$pass."’,’".$email."’,’".$nom."’,’".$prenom."’,’".$age."’,’".$sexe."’,’".$situation."’,’".$adresse."’,’".$code_postal."’,’".$ville."’,’".$centres."’,‘0’,’’,’".date(“Y-m-d H:i:s”)."’);";
$query = mysql_query($sql) or die(“Erreur sur $sql :<br><br>”.mysql_error());
$id_membre = mysql_insert_id();

// Upload de la image
if($_FILES["image"]["name"]!=""){

$destination = "./".$GLOBALS["upload"]."/".$_FILES["image"]["name"];
$extension=substr($_FILES["image"]["name"],-3);
$rename = "photo-".$id_membre.".".$extension;
$destination_rename = "./".$GLOBALS["upload"]."/".$rename;

if ($_FILES[“image”][‘name’] && strpos($_FILES[“image”][‘type’], ‘image’) === false) {
erreur(“La photo choisie n’est pas une image !”);
}
if (!copy($_FILES[“image”][“tmp_name”],$destination))
{
erreur(“Problème de transfert de la photo ! Veuillez prévenir le webmaster !”);
}
if(file_exists($destination_rename)){
if(!unlink($destination_rename)){
erreur(“Problème pour supprimer l’ancienne photo ! Veuillez prévenir le webmaster !”);
}
}
if(!rename($destination,$destination_rename)){
erreur(“Problème pour renommer la photo ! Veuillez prévenir le webmaster !”);
}

mysql_query(“UPDATE “.$GLOBALS[“table_membres”].” SET photo=’”.$rename."’ WHERE id=’".$id_membre."’");
}

$mailTo = $email;
$mailSujet = "Votre inscription est validée …";
$mailFrom = $GLOBALS["email_admin"];

$mailEntete = "Content-type: text/html; charset=iso-8859-1\n";
$mailBody = "Bonjour <b>".stripslashes($prenom)." ".stripslashes($nom)."</b>,

Cet email vous est automatiquement envoyé pour vous confirmer que votre inscription sur Convexe s’est déroulée avec succès.

Voici un rappel de vos identifiants de connexion :

  • <u>Nom d’utilisateur</u> : “.stripslashes($pseudo).”
  • <u>Mot de passe</u> : ".stripslashes($pass)."

Merci pour l’intérêt que vous portez à notre site.

L’équipe Webenn";

mail($mailTo, stripslashes($mailSujet), nl2br(stripslashes($mailBody)), $mailEntete."Reply-To: ".$mailFrom."\nReturn-path: ".$mailFrom."");

confirmation(‘Validation de votre inscription’,‘Votre inscription s\‘est déroulée avec succès. Un email de confirmation vient de vous être envoyé à l\‘adresse email suivante : <b>’.$email.’</b> !’);

break;

}

Merci à tous.

Bonjour, bienvenue sur les forums de Clubic :slight_smile:

Je te prierai de mettre le langage informatique dans le titre, tel que requis par la charte du forum programmation - pour une meilleure compréhension les uns des autres.

A lire :
http://www.clubic.com/forum/charte-du-foru…on-t306797.html

Pour éditer:
Suffit de cliquer sur ce bouton, dans ton message : http://www.clubic.com/forum/style_images/persoclubic/editer.gif

Merci et bon courage pour ton problème :jap:


  1. j’ai effacé le doublon
  2. Quitte à changer le titre pour se conformer à la charte, n’oublie pas d’enlever les majuscules car ECRIRE EN MAJUSCULES C’EST L’EQUIVALENT ECRIT DE CRIER, ET ON CRIE PAS SUR LES FORUMS.
  3. Utilise les balises [code] et [//code] (vire le second /, c’est pour éviter que le forum les interprète) pour ton code, ça n’en sera que plus lisible.

Merci.

Pour ton problème, fait toi plaisir :

http://www.php.net/manual/fr/ref.image.php
http://www.php.net/manual/fr/function.imagecopyresized.php
http://www.php.net/manual/fr/function.imagecopyresampled.php

Je suis pas spécialiste de gd.

Renseigne-toi sur gd comme l’a dit Sans-Nom.
Un exemple très proche de ce que tu veux

Un grand merci pour cette aide apportée. En fait j’aimerais que cette photo soit automatiquement redimensionnée à l’upload sans être renomée. Serait-ce possible?