Changement d'avatar
Hors ligneZingwai Le 04/08/2007 à 10:30 Profil de Zingwai Configuration de Zingwai

Bonjour.
Encore un soucis, mais cette fois dans le changement d'avatar des membres.
Je m'explique, le message disant que l'avatar a bien été changé reste toujours sur la page, avant, pendant et après le changement d'avatar.

Message de confirmation qui s'affiche toujours a écrit :
Avatar modifié

Votre avatar a été modifié avec succès !

Cliquez ici pour revenir à l'acceuil de votre espace membre.


Et ce message, comme il s'affiche toujours nous oblige a quitter la page (pour ne pas recommencer l'action de changement d'avatar) et de revenir dessus pour voir s'il a été changé.

Code de changement d'avatar :
<?php
include('inc/fonctions.php');
$titre 'Modifier mon avatar';
haut($titre);
if(!empty(
$_SESSION['pseudo']))
{

//Vérification de l'avatar
        if (!empty($_FILES['avatar']['size']))
        {
        //On définit les variables :
        $maxsize 71680//Poid de l'image
        $maxwidth 100//Largeur de l'image
        $maxheight 100//Longueur de l'image
        //Liste des extensions valides
        $extensions_valides = array( 'jpg' 'jpeg' 'gif' 'png''bmp' );

        if ($_FILES['avatar']['error'] > 0)
        {
        $avatar_erreur "Erreur lors du tranfsert de l'avatar : ";
        }
        if ($_FILES['avatar']['size'] > $maxsize)
        {
        $i++;
        $avatar_erreur1 "Le fichier est trop gros :
        (<strong>"
.$_FILES['avatar']['size']." Octets</strong>
        contre <strong>"
.$maxsize." Octets</strong>)";
        }

        $image_sizes getimagesize($_FILES['avatar']['tmp_name']);
        if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight)
        {
        $i++;
        $avatar_erreur2 "Image trop large ou trop longue :
        (<strong>"
.$image_sizes[0]."x".$image_sizes[1]."</strong> contre
        <strong>"
.$maxwidth."x".$maxheight."</strong>)";
        }

        $extension_upload strtolower(substr(  strrchr($_FILES['avatar']['name'], '.')  ,1));
        if (!in_array($extension_upload,$extensions_valides) )
        {
                $i++;
                $avatar_erreur3 "Extension de l'avatar incorrecte";
        }
}
?>
<h1>Modifier mon avatar</h1>
<p>Un avatar est une petite image personnel qui se trouve à la droite d'un message.<br />
Pour en choisir un, vous devez indiquer l'adresse en le cherchant sur votre bureau depuis le champ ci-dessous.</p>

<p><strong style="color: red;">Attention, votre avatar ne doit pas dépasser les 100x100 pixels et les 70 ko.</strong><br />
Nous nous réservons le droit de supprimer votre avatar si nous considérons que celui-ci ne respecte pas le règlement ou est trop volumineux.</p>

<form enctype="multipart/form-data" action="modifier_avatar.html" method="post">
<fieldset>
<legend><strong>Modifier mon avatar</strong></legend>
     
               <strong>Avatar actuel</strong><br />
<?php 
     $reponse 
mysql_query("SELECT avatar FROM membre WHERE pseudo = '" $pseudo "'");
     $donnees mysql_fetch_assoc($reponse);
     echo '<img src="images/avatars/'.$donnees['avatar'].'" alt="" />';
?>
                    <label for="avatar">Choisir un avatar</label><input type="hidden" name="MAX_FILE_SIZE" value="71680" /><input type="file" name="avatar" id="avatar" />
     <br /><br /><br />
<div style="text-align: center;"><input type="submit" name="send" value="Modifier mon avatar" /> <label><input type="checkbox" name="delete" value="Delete" />Supprimer mon avatar</label></div>
</fieldset>
</form>

<?php

if ($i == 0// Si $i est vide, il n'y a pas d'erreur
{
        if (!empty($_FILES['avatar']['size']))
        {
                //On déplace l'avatar
                $avatar time();
                $nomavatar str_replace(' ','',$avatar).".".$extension_upload;
                $avatar "images/avatars/".str_replace(' ','',$avatar).".".$extension_upload;
                move_uploaded_file($_FILES['avatar']['tmp_name'],$avatar);
                mysql_query("UPDATE membre
                SET avatar = '"
.$nomavatar."'
                WHERE id = '"
.$_SESSION['id']."'");
        }

        //Une nouveauté ici : on peut choisisr de supprimer l'avatar
        if (isset($_POST['Delete']))
        {
                mysql_query("DELETE avatar
                FROM membre WHERE id = '"
.$_SESSION['id']."'");
        }
           
          echo
'<h2>Avatar modifié</h2>';
        echo'<p>Votre avatar a été modifié avec succès !</p>';
        echo'<p>Cliquez <a href="modifier_avatar.html">ici</a> pour revenir à l\'acceuil de votre espace membre.</p>';
}
else
{
        echo'<h1>Modification interrompue</h1>';
        echo'<p>Une ou plusieurs erreurs se sont produites pendant la modification du profil</p>';
        echo'<p>'.$i.' erreur(s)</p>';
        echo'<p>'.$avatar_erreur.'</p>';
        echo'<p>'.$avatar_erreur1.'</p>';
        echo'<p>'.$avatar_erreur2.'</p>';
        echo'<p>'.$avatar_erreur3.'</p>';
        echo'<p> Cliquez
 <a href="modifier_avatar.html">ici</a> pour recommencer</p>'
;
}

}
else
{
     echo '<h1>Accés refusé</h1><p>Vous devez être <a href="login.html">connecté(e)</a> pour accéder à cette page</p>';
}
bas();
?>


Meri d'avance.
Hors ligneAnthony Le 04/08/2007 à 12:19 Profil de Anthony Configuration de Anthony

Admin
Si tu mets tout en haut un $i = -1; ça donne quoi ?
--

Hors ligneZingwai Le 04/08/2007 à 12:43 Profil de Zingwai Configuration de Zingwai

C'est pareil
Hors ligneAnthony Le 04/08/2007 à 13:22 Profil de Anthony Configuration de Anthony

Admin
Tu confirmes que c'est cette partie du code qui s'exécute tout le temps (avatar envoyé ou pas) ? :

          echo'<h2>Avatar modifié</h2>'; 
        echo'<p>Votre avatar a été modifié avec succès !</p>'; 
        echo'<p>Cliquez <a href="modifier_avatar.html">ici</a> pour revenir à l\'acceuil de votre espace membre.</p>';
--

Hors ligneZingwai Le 04/08/2007 à 15:33 Profil de Zingwai Configuration de Zingwai

Oui, je confirme
Hors ligneAnthony Le 04/08/2007 à 19:31 Profil de Anthony Configuration de Anthony

Admin
Donc ce bloc n'est exécuté que si $i est égal à 0.

Si tu mets un $i = -1; je ne vois pas comment c'est possible qu'il s'exécute :(


<?php 
include('inc/fonctions.php');


==>


<?php 
include('inc/fonctions.php');
$i=-1;


Ensuite pour l'upload de fichier il y a quelques règles que tu peux regarder ici pour faire un code plus propre : Upload en PHP car il te faut un is_uploaded_file() quelque part ;)
--

Hors ligneZingwai Le 05/08/2007 à 11:20 Profil de Zingwai Configuration de Zingwai

Le problème persiste :(
Hors ligneAnthony Le 05/08/2007 à 20:18 Profil de Anthony Configuration de Anthony

Admin
Bon et si tu mets

<?php 
$i 
= -1;
if (
$i === 0// Si $i est vide, il n'y a pas d'erreur
{
...


là je vois pas comment ça pourrait s'exécuter ;)
--

Hors ligneZingwai Le 05/08/2007 à 20:30 Profil de Zingwai Configuration de Zingwai

Bonsoir Anthony.

Merci à toi de chercher une solution à mon problème.
Avec la manipulation que tu m'as demandé de faire, le message est maintenant :

Message a écrit :
Modification interrompue

Une ou plusieurs erreurs se sont produites pendant la modification du profil

-1 erreur(s)

Cliquez ici pour recommencer


Merci.
Hors ligneAnthony Le 05/08/2007 à 20:54 Profil de Anthony Configuration de Anthony

Admin
Ok, déjà ça réagit un peu mieux, maintenant tu as regardé le lien que je t'ai passé plus haut qui explique comment recevoir et uploader des fichiers ?
--

Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels