Page 1 sur 1

Probléme de modification d'avatar avec un formulaire.

Posté : 23 févr. 2017, 10:53
par scorleon
Bonjour,
Voila j'ai fait la modification et j'ai mit tout dans une seule page.
Tout fonctionne bien sauf la modification de la photo,
J'affiche bien les coordonnées ainsi l'ancienne photo dans le formulaire.
Je modifie la photo, je choisie une nouvelle .
je valide le formulaire pour qu'il puisse prendre mes modifications en compte, sauf que dans la base je remarque qu'il n'a pas modifier l'ancien nom et n'a pas chargé la nouvelle photo.
L'algo est le suivant ;
A chaque enregistrement d'un nouveau éleveur, je lui associe une photo par défaut "profil.jpg" si il n'a pas choisi une photo.
Lors de la modification, il peut choisir une nouvelle photo par rapport à sa photo existante, il suffit de choisir une.
Si il choisis une nouvelle, alors j'upload cette dernière et je lui donne un nouveau nom (s'il existe déjà, elle sera écrasé)
sinon il garde l'ancien nom de la photo.
Dans la base j'enregistre que le nom de la photo.


</head>
<script type="text/javascript">
    function getfile(){
        document.getElementById('hiddenfile').click();
    }
    function getvalue(){
        document.getElementById('selectedfile').value=document.getElementById('hiddenfile').value;
    }
</script>
<body>
<?php
//récupération de la variable d'URL,
//qui va nous permettre de savoir quel enregistrement modifier
$id  = $_GET["idEleveur"];
 
//requête SQL:
$sql = "SELECT Num_eleveur,Prenom_eleveur,Nom_eleveur,Photo_eleveur FROM $nom_table_e WHERE id = '$id'";

//exécution de la requête:
$requete = mysqli_query($db_link, $sql);
 
//affichage des données:
if( $result = mysqli_fetch_object($requete))
  {
?>


<form name="insertion" action="modif_eleveur.php" method="POST">
  <input type="hidden" name="id" value="<?php echo($id) ;?>">
  <input type="hidden" name="afph_eleveur" value="<?php echo($result->Photo_eleveur) ;?>">
 	<table width="430" border="0" align="center" cellpadding="2" cellspacing="2">
 	<tr>
 		<td class="tableau-eleveurs-entete" colspan="2">
      <br />Modification des donn&eacute;es de l'&eacute;leveur num&eacute;ro : <?php echo($result->Num_eleveur); ?><br /><br />
 		</td>
 	</tr>
 	<tr>
 		<td class="tableau-eleveurs" align="right" width="60%">
      Num&eacute;ro d'&eacute;leveur (*): 
 		</td>
 		<td class="tableau-eleveurs" align="left">
      <input type="text" name="num_eleveur" placeholder="Num STAM" size="<?php echo(strlen($result->Num_eleveur));?>" value="<?php echo($result->Num_eleveur) ;?>" readonly="true">
 		</td>
 	</tr>
 	<tr>
 		<td class="tableau-eleveurs" align="right">
      <label for="annee_canari">P&eacute;nom (*):</label>
    </td>
    <td class="tableau-eleveurs" align="left">
      <input type="text" name="prenom_eleveur" value="<?php echo($result->Prenom_eleveur) ;?>">
    </td>
  </tr>
  <tr>
 		<td class="tableau-eleveurs" align="right">
      Nom (*): 
    </td>
    <td class="tableau-eleveurs" align="left">
    <input type="text" name="nom_eleveur"  value="<?php echo($result->Nom_eleveur) ;?>">
    </td>
  </tr>
  <tr>
 		<td class="tableau-eleveurs" align="right" width="40%">
      Photo : 
    </td>
    <td class="tableau-eleveurs" align="center" width="40%">
      <img align="middle" alt="avatar" width="60" height="60" src="_photos/<?php echo($result->Photo_eleveur) ;?>" />
      <input type="file" id="hiddenfile" style="display:none" name="mon_image" onChange="getvalue();"/>
      <input type="text" id="selectedfile" value="Modifiez votre photo"/>
      <input type="button" value="Choisir" onclick="getfile();"/>
      
    </td>
      
    </td>
  </tr>
  <tr>	
    <td class="tableau-eleveurs" colspan="2" align="center">
      <input type="submit" name="modifier_eleveur" value="Modifier">
    </td>
 	</tr>
 	</table>
 	</form>
 </div>

<?php
  }//fin if 

if (isset($_POST['modifier_eleveur']) && $_POST['modifier_eleveur'] == 'Modifier') {
  if ((isset($_POST['prenom_eleveur']) && !empty($_POST['prenom_eleveur'])) && 
    (isset($_POST['nom_eleveur']) && !empty($_POST['nom_eleveur'])) 
    ) {
      $Id    				= $_POST["id"] ;
      $Num_eleveur		= mysqli_real_escape_string($db_link,trim($_POST["num_eleveur"])) ;
      $Prenom_eleveur		= mysqli_real_escape_string($db_link,trim($_POST["prenom_eleveur"])) ;
      $Nom_eleveur		= mysqli_real_escape_string($db_link,trim($_POST["nom_eleveur"])) ;
      
      if (isset($_FILES['mon_image']) AND $_FILES['mon_image']['error'] == 0){
       //Testons si le fichier n'est pas trop gros
        if ($_FILES['mon_image']['size'] <= 1000000)
          {
          // Testons si l'extension est autorisée
          $infosfichier = pathinfo($_FILES['mon_image']['name']);
          $extension_upload = $infosfichier['extension'];
          $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
          //$ph_eleveur = md5(uniqid(rand(), true)).'jpg';
          $ph_eleveur = $s_prenom_eleveur."-".$s_nom_eleveur."_".$s_numero_eleveur.".".$extension_upload;
          if (in_array($extension_upload, $extensions_autorisees)){
                        // On peut valider le fichier et le stocker définitivement
                        move_uploaded_file($_FILES['mon_image']['tmp_name'], '_photos/'.$ph_eleveur);
          }
        }
      }else {
        $ph_eleveur = $_POST["afph_eleveur"] ;
      }
            
      //création de la requête SQL:
      $sqlup = "UPDATE $nom_table_e SET 
          Prenom_eleveur = '$Prenom_eleveur',
      Nom_eleveur   = '$Nom_eleveur',
      Photo_eleveur   = '$ph_eleveur'
      WHERE Id = '$Id'" ;
      //exécution de la requête SQL:
      echo $sqlup;
      $requeteup = mysqli_query($db_link, $sqlup) or die('Erreur SQL !'.$requeteup.'<br />'.mysqli_error($db_link));
      if($requeteup){
        echo '<p style="color: red; text-align: center">La modification &agrave; &eacute;t&eacute; correctement effectu&eacute;e pour le num&eacute;ro d\'&eacute;leveur : <b>'.$Num_eleveur.'</b>.</p>' ;
        }
      else{
        echo '<p style="color: red; text-align: center">\!/ La modification &agrave; &eacute;chou&eacute;e. \!/ </p>' ;
      }
    }
}

?>

Merci pour votre aide car je bloque là.

Re: Probléme de modification d'avatar avec un formulaire.

Posté : 23 févr. 2017, 10:59
par moogli
salut,

il te manque le enctype="multipart/form-data" en attribut du tag form
du coup pas d'envoie de fichier.

@+

Re: Probléme de modification d'avatar avec un formulaire.

Posté : 23 févr. 2017, 11:41
par scorleon
Encore une erreur de débutant, Merci ça fonctionne bien. ;)