par
scorleon » 23 févr. 2017, 10:53
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ées de l'éleveur numéro : <?php echo($result->Num_eleveur); ?><br /><br />
</td>
</tr>
<tr>
<td class="tableau-eleveurs" align="right" width="60%">
Numéro d'é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é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 à été correctement effectuée pour le numéro d\'éleveur : <b>'.$Num_eleveur.'</b>.</p>' ;
}
else{
echo '<p style="color: red; text-align: center">\!/ La modification à échouée. \!/ </p>' ;
}
}
}
?>
Merci pour votre aide car je bloque là.
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.
[php]</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ées de l'éleveur numéro : <?php echo($result->Num_eleveur); ?><br /><br />
</td>
</tr>
<tr>
<td class="tableau-eleveurs" align="right" width="60%">
Numéro d'é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é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 à été correctement effectuée pour le numéro d\'éleveur : <b>'.$Num_eleveur.'</b>.</p>' ;
}
else{
echo '<p style="color: red; text-align: center">\!/ La modification à échouée. \!/ </p>' ;
}
}
}
?>
Merci pour votre aide car je bloque là.[/php]