Zingwai |
Le 04/08/2007 à 10:30 |
|
|
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. |
Anthony |
Le 04/08/2007 à 12:19 |
|
 Admin |
Si tu mets tout en haut un $i = -1; ça donne quoi ? -- 
|
Zingwai |
Le 04/08/2007 à 12:43 |
|
|
C'est pareil |
Anthony |
Le 04/08/2007 à 13:22 |
|
 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>';
-- 
|
Zingwai |
Le 04/08/2007 à 15:33 |
|
|
Oui, je confirme |
Anthony |
Le 04/08/2007 à 19:31 |
|
 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 ;) -- 
|
Zingwai |
Le 05/08/2007 à 11:20 |
|
|
Le problème persiste :( |
Anthony |
Le 05/08/2007 à 20:18 |
|
 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 ;) -- 
|
Zingwai |
Le 05/08/2007 à 20:30 |
|
|
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. |
Anthony |
Le 05/08/2007 à 20:54 |
|
 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 ? -- 
|