Se connecter / S'enregistrer
Votre question

mettre un avatar ou un avatar par défault

Tags :
  • Programmation
Dernière réponse : dans Programmation
29 Janvier 2008 11:31:48

bonjour

j'ai juste un soucie avec les avatars

je voudrais avoir 2 sortes avatars

dés qu'un membre s'inscrit on lui intribu un avatar par défaut d'office

et s'il veut mettre son propre avatar il upload dans modifier son profil et ensuite ça vas remplacé l'avatar qui est par défaut par l'avatar qui as choisit

et j'ai aussi mis un bouton Delete pour supprimé son propre avatar et ensuite il retrouveras l'avatar par défaut


mais quand je met un avatar il ne met pas dans le forum et ni dans la base sql mais par contre on le voit dans le serveur ftpp les avatars

voilà le code qui permet upload son avatar :

Citation :
<label for="avatar">Changer votre avatar :</label>
<input type="file" name="avatar" id="avatar" />
(Taille max : 10 ko)<br /><br />
<label><input type="checkbox" name="delete" value="Delete" />
Supprimer l'avatar</label>


dés qu'il as mis son avatar normalement il le trouveras sur son profil
donc voilà le code

Citation :
<?php

if(empty($data2['membre_avatar']))
{
echo'<img src="images/avatar.gif" alt="avatar par défault" title="avatar par défault" />';
}else{
echo' <img src="images/avatars/'.$data2['membre_avatar'].'" alt="son avatar" title="son avatar" />';
}
?>


donc dans leur profil on trouveras soit l'avatar par défault ou soit l'avatar à eux qui ont choisit sur leur pc

donc pour celà on vas sur la page :

modifprofil.php

on met ce code pour supprimé l'avatar :

Citation :
if (($_FILES['avatar']['size'])!= NULL)
{
//On déplace l'avatar
$avatar = time();
$nom_avatar = str_replace(' ','',$avatar).".".$extension_upload;
$avatar = "images/avatars/".str_replace(' ','',$avatar).".".$extension_upload;
move_uploaded_file($_FILES['avatar']['tmp_name'],$avatar);
}
else
{
$pas_davatar = true;
}

if($pas_davatar)
{
$nom_avatar = 'pas_davatar';
}


//Une nouveauté ici : on peut choisisr de supprimer l'avatar
if ($_POST['delete']=='Delete')
{
$nomavatar = 'pas_davatar';
mysql_query("UPDATE forum_membres
SET membre_avatar = '".$nomavatar."'
WHERE membre_id = '".$_SESSION['id']."'");
}


je ne sais pas coment on peux dire mettre un avatar par défault quand on s'inscrit ou bien

il met un avatar et un jour il veut supprimé son propre avatar donc il appui sur le boutton délette que j'ai mis dans le formulaire et là il retrouve son avatar par défault

moi j'ai pensé mettre un code qui permettras dire d'affiché soit l'avatar par défault ou soit l'avatar à eux dans ce bout de code :

car là c'est pur l'avatar qui on upluad:

Citation :
/On déplace l'avatar
$avatar = time();
$nom_avatar = str_replace(' ','',$avatar).".".$extension_upload;
$avatar = "images/avatars/".str_replace(' ','',$avatar).".".$extension_upload;
move_uploaded_file($_FILES['avatar']['tmp_name'],$avatar);
}


donc à mon avie il faut rajouté un code avec ce chemin là :

images/avatar.gif

si je me trompe pas

merci d'avance

Autres pages sur : mettre avatar avatar default

29 Janvier 2008 12:08:07

Un truc assez simple :

Si le champ avatar de la BDD est à null alors mettre l'avatar par défaut, sinon mettre l'avatar perso.
Après tu regarde si lors que la création du profil (ou de la modification du profil) si il a mi un avatar ... si c'est le cas tu upload l'avatar et tu met le nom du fichier dans la BDD.
Pour la suppression de l'avatar il te faut simplement mettre le hamps avatar à null dans la BDD.

Mais tu n'as pas besoin d'uploarder l'avatar par défaut (puisqu'il est déjà sur ton serveur dans un des dossiers).

En gros lors de l'affichage :

si champs_avatar_bdd est vide
alors
afficher image par défaut (par exemple images/avatar.gif)
sinon
afficher image de la personne (images/avatar/nom_avatar_de_la_personne)
fin si.

Citation :
<?php

if(empty($data2['membre_avatar']))
{
echo'<img src="images/avatar.gif" alt="avatar par défault" title="avatar par défault" />';
}else{
echo' <img src="images/avatars/'.$data2['membre_avatar'].'" alt="son avatar" title="son avatar" />';
}
?>


En faite c'est cela qu'il faut faire ... (et tu as deja le code puisque je viens de faire un copier coller de ton message)
29 Janvier 2008 16:44:48

re

c sur que l'avatar par défault il est dans le serveur dans un dossier

mais alors comment on fait

et aussi entre parenthese ça signifie quoi le code data1 ou data2

juste pour que je sache perso

merci d'avance
Contenus similaires
29 Janvier 2008 21:25:58

re

j'ai trouvé pour quoi il y as un soucy c'est dans mon upload pour mettre un avatar qui as un soucy

car si je met une image dans le serveur ou dans la base sql il s'affiche donc ça vien dans le code upload

je vais éssayé trouvé pour quoi il beugue dés quand on upload un avatar

merci d'avance pour ta réponse
1 Février 2008 16:17:36

re

j'ai refais et il y as toujour un soucy il ne veut pas upload l'avatar des membvre il reste toujour l'avatar par défault

et pour temps il met dans mon serveur mais pas dans la base sql

voilà le code :

Citation :
<label for="avatar">Changer votre avatar :</label>

<input type="file" name="avatar" id="avatar" /> (Taille max : 10 ko)
<br />
<br />
<label><input type="checkbox" name="delete" value="Delete" /> Supprimer l'avatar</label>


et l'autre code qui permet upload qui pose probléme

Citation :
// Si $i est vide, il n'y a pas d'erreur

{
if (($_FILES['avatar']['size'])!= 0)
{

//On déplace l'avatar

$avatar = time();
$nom_avatar = str_replace(' ','',$avatar).".".$extension_upload;
$avatar = "images/avatars/".str_replace(' ','',$avatar).".".$extension_upload;
move_uploaded_file($_FILES['avatar']['tmp_name'],$avatar);
}
else
{
$pas_davatar = true;
}
if($pas_davatar)
{
$nom_avatar = 'pas_d\'avatar';
}

//Une nouveauté ici : on peut choisisr de supprimer l'avatar

elseif( isset($_POST['delete']) )
if ($_POST['delete']=='Delete')
{
$nomavatar = 'pas_d\'avatar';
mysql_query("UPDATE forum_membres
SET membre_avatar = '".$nomavatar."'
WHERE membre_id = '".$_SESSION['id']."'");
}


j'ai modifié

Citation :
if (($_FILES['avatar']['size'])!= 0)
et j'ai mis 0 au lieu null

et j'ai rajouté

Citation :
elseif( isset($_POST['delete']) )


peux être à la mauvaise place

comment je pourrais faire car là je ne comprend pas je suis un peux perdu

merci d'avance

si tu veux un autre code ou autre cose dite le moi

et encore merci de m'aidé

1 Février 2008 20:40:47

il faut que tu nous montre ta requete dinsertion dans la base de données aussi ... insert into ...
1 Février 2008 22:39:08

re

j'ai éssayé d'ajouté un morceau de code et modifié 1 ou 2 codes mais ça n'a rien fait

pour mettre un avatar :

Citation :

<label for="avatar">Changer votre avatar :</label>

<input type="file" name="avatar" id="avatar" /> (Taille max : 10 ko)
<br />
<br />
<label><input type="checkbox" name="delete" value="Delete" /> Supprimer l'avatar</label>


donc si on ajoute l'avatar il s'affiche dns voir profil donc voilà le code

Citation :
//On récupère les infos du membre

$requete1 = mysql_query('SELECT membre_pseudo, membre_avatar,
membre_email, membre_msn, membre_signature, membre_siteweb, membre_post,
membre_inscrit, membre_derniere_visite, membre_localisation
FROM forum_membres WHERE membre_id='.$membre.'');
if ($data1 = mysql_fetch_assoc($requete1))
{

//On affiche les infos sur le membre

echo'<h1>Profil de '.$data1['membre_pseudo'].'</h1>';

//on affiche l'avatar par défault ou l'avatar des membres

?>

<table align="center">
<tr>
<td>

<?php

if(empty($data1['membre_avatar']))
{
echo'<img src="images/avatar.gif" alt="avatar par défault" title="avatar par défault" />';
}else{
echo' <img src="images/avatars/'.$data1['membre_avatar'].'" alt="son avatar" title="son avatar" />';
}

?>


donc pour affiché l'avatar par défault soit l'atar qui veulent :

voilà la page modifprofil.php

Citation :

<?php

//Cette fonction doit être appelée avant tout code html

session_start();

//On donne ensuite un titre à la page, puis on appelle notre fichier debut.php

$titre = "Modification du profil";
include("includes/debut.php");

?>

<?php

//Maintenant, on se connecte à la base de données

include("includes/identifiants.php");
mysql_connect($adresse, $nom, $motdepasse);
mysql_select_db($database);

//Encore est toujours notre belle variable $i :p 

$i = 0;

//Vérification du mdp

if ($_POST['password'] != $_POST['confirm'] && !empty($_POST['confirm']) && !empty($_POST['password']))
{
$mdp_erreur = "<p class=\"texte_blanc\">Votre mot de passe et votre confirmation diffèrent ou sont vides";
$i++;
}

//Vérification de l'adresse email
//Il faut que l'adresse email n'ait jamais été utilisée (sauf si elle n'a pas été modifiée)

$requete1 = mysql_query('SELECT membre_email FROM forum_membres WHERE membre_id = '.$_SESSION['id'].'');
$data1 = mysql_fetch_assoc($requete1);
if (strtolower($data1['membre_email']) != strtolower($_POST['email']))
{
$nombremail = mysql_result(mysql_query("SELECT COUNT(*) FROM forum_membres WHERE membre_email = '".$_POST['email']."'"), 0);

if ($nombremail!= 0)
{
$email_erreur1 = "Votre adresse email est déjà utilisée par un membre";
$i++;
}

//On vérifie la forme maintenant

if (!preg_match("#^[a-z0-9A-Z._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['email']) || empty($_POST['email']))
{
$email_erreur2 = "Votre nouvelle adresse E-Mail n'a pas un format valide";
$i++;
}
}

//Vérification de l'adrese msn

if (!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['msn']) && !empty($_POST['msn']))
{
$msn_erreur = "Votre nouvelle adresse MSN n'a pas un format valide";
$i++;
}

//Vérification de la signature

if (strlen($_POST['signature']) > 200)
{
$signature_erreur = "Votre nouvelle signature est trop longue";
$i++;
}

//Vérification de l'avatar

if (!empty($_FILES['avatar']['size']))
{

//On définit les variables :

$maxsize = 30072; //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 :
(".$_FILES['avatar']['size']." Octets
contre".$maxsize." Octets)";
}

$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 :
(".$image_sizes[0]."x".$image_sizes[1]." contre
".$maxwidth."x".$maxheight.")";
}

$extension_upload = strtolower(substr( strrchr($_FILES['avatar']['name'], '.') ,1));
if (!in_array($extension_upload,$extensions_valides) )
{
$i++;
$avatar_erreur3 = "Extension de l\'avatar incorrecte</p>";
}
}

?>

<?php

echo'<p><a href ="./index.php">Index du forum</a> / <a href="./voirprofil.php?action=modifier">Modification du profil</a></p>';
if ($i == 0)

// Si $i est vide, il n'y a pas d'erreur

{
if (($_FILES['avatar']['size'])!= 0)
{

//On déplace l'avatar

$avatar = time();
$nom_avatar = str_replace(' ','',$avatar).".".$extension_upload;
$avatar = "images/avatars/".str_replace(' ','',$avatar).".".$extension_upload;
move_uploaded_file($_FILES['avatar']['tmp_name'],$avatar);

/* on met à jour la bdd */

mysql_query("UPDATE forum_membres
SET membre_avatar = '".$nomavatar."'
WHERE membre_id = '".$_SESSION['id']."'");
}
else
{
$pas_davatar = true;
}
if($pas_davatar)
{
$nom_avatar = 'pas_d\'avatar';
}

//Une nouveauté ici : on peut choisisr de supprimer l'avatar

elseif( isset($_POST['delete']) )
if ($_POST['delete']=='Delete')
{
$nomavatar = 'pas_d\'avatar';
mysql_query("UPDATE forum_membres
SET membre_avatar = '".$nomavatar."'
WHERE membre_id = '".$_SESSION['id']."'");
}

echo'<h1>Modification terminée</h1>';

echo'<p class="texte_blanc">Votre profil à été modifié avec succès !<br />';
echo'Cliquez <a href="./index.php">ici</a> pour revenir à la page d\'accueil</p>';

//On vérifie que les champs ne contiennent pas de html
//et on crypte le mot de passe

$pass = md5($_POST['password']);
$signature = htmlentities($_POST['signature'], ENT_QUOTES);
$signature = nl2br($signature);
$email = htmlspecialchars($_POST['email'], ENT_QUOTES);
$msn = htmlspecialchars($_POST['msn'], ENT_QUOTES);
$website = htmlspecialchars($_POST['website'], ENT_QUOTES);
$localisation = htmlspecialchars($_POST['localisation'], ENT_QUOTES);

//On modifie la table

mysql_query("
UPDATE forum_membres
SET membre_mdp ='".$pass."' , membre_email = '".$email."' , membre_msn = '".$msn."' , membre_siteweb = '".$website."', membre_signature = '".$signature."' , membre_localisation = '".$localisation."'

WHERE membre_id = '".$_SESSION['id']."'") or die (mysql_error());

//Et on définit de nouvelles variables de sesssion
//Pour celà on a besoin de la bdd

$requete = mysql_query('
SELECT membre_id, membre_rang
FROM forum_membres
WHERE membre_id = '.$_SESSION['id'].'');

if ($data = mysql_fetch_assoc($requete))
{
$_SESSION['id'] = $data['membre_id'];
$_SESSION['level'] = $data['membre_rang'];
}
}
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>'.$mdp_erreur.'</p>';
echo'<p>'.$email_erreur1.'</p>';
echo'<p>'.$email_erreur2.'</p>';
echo'<p>'.$msn_erreur.'</p>';
echo'<p>'.$signature_erreur.'</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="./voirprofil.php?action=modifier">ici</a> pour recommencer</p>';
}

?>

</div>
<!-- fin div class="cadre_du_programme" -->
</div>
<!-- fin div class="cadre_du_bas" -->
</div>
<!-- fin div class="cadre_principale" -->
</body>
</html>


merci
3 Février 2008 00:48:01

re j'ai remodifié et ce n'est pas le commit qu'il faut rajouté

car là j'ai modifié 2 ou 3 codes là on peux mettre des avatars mais maintenant il y as un soucy on ne peux supprimé l'avatar des membres pour qu'il redevient l'avatar par défault

voilà ceux que j'ai fais

le formulaire :

Citation :

<label for="avatar">Changer votre avatar :</label>

<input type="file" name="avatar" id="avatar" /> (Taille max : 10 ko)
<br />
<br />
<label><input type="checkbox" name="delete" value="Delete" /> Supprimer l'avatar</label>


donc il s'affiche le profil avec ce code

Citation :
<?php

if(empty($data1['membre_avatar']))
{
echo'<img src="images/avatar.gif" alt="avatar par défault" title="avatar par défault" />';
}else{
echo' <img src="images/avatars/'.$data1['membre_avatar'].'" alt="son avatar" title="son avatar" />';
}

?>


là quand on met des avatars il s'affiche bien

mais si on veux le supprimé avec le boutton delette il ne veux pas supprimé l'avatar pourr remettre l'avatar par défault

voilà le code

Citation :
// Si $i est vide, il n'y a pas d'erreur

if ($i == 0)
{
if (($_FILES['avatar']['size'])!= 0)
{

//On déplace l'avatar

$avatar = time();
$nom_avatar = str_replace(' ','',$avatar).".".$extension_upload;
$avatar = "images/avatars/".str_replace(' ','',$avatar).".".$extension_upload;
move_uploaded_file($_FILES['avatar']['tmp_name'],$avatar);

//* on met à jour la bdd */

mysql_query("UPDATE forum_membres
SET membre_avatar = '".$nom_avatar."'
WHERE membre_id = '".$_SESSION['id']."'");
}
else
{
mysql_query("UPDATE forum_membres SET membre_avatar ='pas_d\'avatar' WHERE membre_id = '".$_SESSION['id']."'");
}

//Une nouveauté ici : on peut choisisr de supprimer l'avatar

if (isset($_POST['delete']))
{
mysql_query("UPDATE forum_membres SET membre_avatar ='pas_d\'avatar' WHERE membre_id = '".$_SESSION['id']."'");
}
}


et j'ai fais un menu de gauche avec l'avatar mais il ne veux pas mettre l'avatar des membres et il reste toujour l'avatar par default

dans le menue de gauche

Citation :
<?php
if (isset($_SESSION['pseudo']))

// Si le membre est connecté

{
echo'<p align="center" class="texte_blanc">Bienvenue, <a href="./voirprofil.php?m='.$_SESSION['id'].'&action=consulter" class="texte_vert" >'.$_SESSION['pseudo'].'</a><br /><br />';
$avatarmembre=addslashes($data2['membre_avatar']);
if($avatarmembre=='pas_d\'avatar')
{
echo '<img src="images/avatar.gif" alt="avatar par défault" title="avatar par défault" />';
}
else
{
echo'<img src="images/avatars/'.$data2['membre_avatar'].'" alt="son avatar" /></p>';
}
?>

<ul class="carre">

<li><a href="voirprofil.php" class="texte_vert">Votre Profil</a></li>
<li><a href="messagesprives.php" class="texte_vert">Voir sa messagerie</a></li>
<li><a href="voirprofil.php?action=modifier" class="texte_vert">Modification du profil</a></li>
</ul>
<?php
}
else
{
echo '<p align="center" class="texte_blanc">Bienvenue, Visiteurs<br /><br />';
echo '<img src="images/avatar.gif" alt="avatar par défault" title="avatar par défault" /></p>';
}
?>

<?php
if (isset($_SESSION['pseudo']))

// Si le membre est connecté

{

?>


voilà le réssultat

http://le.coffre.free.fr/forum/index.php

merci
3 Février 2008 11:58:38

Pourquoi tu ne mais pas membre_avatar=NULL plutot que 'pas-d\'avatar' ?
3 Février 2008 12:21:43

re

j'ai une amie qu'il m'a fait et elle as trouvé pour quoi ça beugué donc là on peux mettre les avatars mais on ne peux plus les supprimé pour retrouvé l'avatar par défault


http://le.coffre.free.fr/forum/index.php

donc voilà les derniers corrections

modifprofil.php

Citation :
//Vérification de l'avatar

if (!empty($_FILES['avatar']['size']))
{

//On définit les variables :

$maxsize = 30072; //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 :
(".$_FILES['avatar']['size']." Octets
contre".$maxsize." Octets)";
}

$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 :
(".$image_sizes[0]."x".$image_sizes[1]." contre
".$maxwidth."x".$maxheight.")";
}

$extension_upload = strtolower(substr( strrchr($_FILES['avatar']['name'], '.') ,1));
if (!in_array($extension_upload,$extensions_valides) )
{
$i++;
$avatar_erreur3 = "Extension de l\'avatar incorrecte</p>";
}
}

?>

<?php

echo'<p><a href ="./index.php">Index du forum</a> / <a href="./voirprofil.php?action=modifier">Modification du profil</a></p>';

// Si $i est vide, il n'y a pas d'erreur

if ($i == 0)
{
if (($_FILES['avatar']['size'])!= 0)
{

//On déplace l'avatar

$avatar = time();
$nom_avatar = str_replace(' ','',$avatar).".".$extension_upload;
$avatar = "images/avatars/".str_replace(' ','',$avatar).".".$extension_upload;
move_uploaded_file($_FILES['avatar']['tmp_name'],$avatar);

//* on met à jour la bdd */

mysql_query("UPDATE forum_membres
SET membre_avatar = '".$nom_avatar."'
WHERE membre_id = '".$_SESSION['id']."'");
}
else
{
mysql_query("UPDATE forum_membres SET membre_avatar ='pas_d\'avatar' WHERE membre_id = '".$_SESSION['id']."'");
}

//Une nouveauté ici : on peut choisisr de supprimer l'avatar

if (isset($_POST['delete']))
{
mysql_query("UPDATE forum_membres SET membre_avatar ='pas_d\'avatar' WHERE membre_id = '".$_SESSION['id']."'");
}
}


donc là on peut mettre des avatars mais on ne peut plus les supprimé pour retrouvé l'avatar

et j'ai mis dans voir profil

Citation :
<?php

if(empty($data1['membre_avatar']))
{
echo'<img src="images/avatar.gif" alt="avatar par défault" title="avatar par défault" />';
}else{
echo' <img src="images/avatars/'.$data1['membre_avatar'].'" alt="son avatar" title="son avatar" />';
}

?>


et aussi dans mon menu de gauche mais il ne veux pas affiché mon avatar il reste l'avatar par défault malgré les petits modifications que j'ai fait

voilà

Citation :
<?php
if (isset($_SESSION['pseudo']))

// Si le membre est connecté

{
echo'<p align="center" class="texte_blanc">Bienvenue, <a href="./voirprofil.php?m='.$_SESSION['id'].'&action=consulter" class="texte_vert" >'.$_SESSION['pseudo'].'</a><br /><br />';
$avatarmembre=addslashes($data2['membre_avatar']);
if($avatarmembre=='pas_d\'avatar')
{
echo '<img src="images/avatar.gif" alt="avatar par défault" title="avatar par défault" />';
}
else
{
echo'<img src="images/avatars/'.$data2['membre_avatar'].'" alt="son avatar" /></p>';
}
?>

<ul class="carre">

<li><a href="voirprofil.php" class="texte_vert">Votre Profil</a></li>
<li><a href="messagesprives.php" class="texte_vert">Voir sa messagerie</a></li>
<li><a href="voirprofil.php?action=modifier" class="texte_vert">Modification du profil</a></li>
</ul>
<?php
}
else
{
echo '<p align="center" class="texte_blanc">Bienvenue, Visiteurs<br /><br />';
echo '<img src="images/avatar.gif" alt="avatar par défault" title="avatar par défault" /></p>';
}
?>

<?php
if (isset($_SESSION['pseudo']))

// Si le membre est connecté

{

?>

<ul class="carre">

<li><a href="deconnexion.php" class="texte_vert">Déconnexion</a></li>
</ul>

<?php

}
else
{

?>

<p align="center" class="texte_blanc">

<form method="post" action="connexionok.php">

<input size="15" type="text" name="pseudo" id="pseudo" value="Votre Pseudo" maxlength="25" onfocus="if(this.value=='Votre Pseudo'){this.value='';}" />
<br />
<br />
<input size="15" type="password" name="password" id="password" value="password" maxlength="25" onfocus="if(this.value=='password'){this.value='';}" />
<br />
<label>Se souvenir de moi ?</label><input type="checkbox" name="souvenir" />
<br />
<input type="submit" value="Connexion" /></form>
<br />
<a href="./register.php" class="texte_vert">Pas encore inscrit ?</a>
<br />
<br />
------------------</p>

<?php
}
?>


tu peux t'inscrire si ça te dit et voir par toi même quan tu met un avatar et ensuite tu le supprime tu verras il resteras toujour l'avatar par défault et dans voir profil il met bien l'avatar et si on le supprime il reste toujour avec l'avatar malgrés qu'on l'a supprimé

je t'autorise de t'inscrire pour que tu regarde qu'es ce que ça fais

merci d'avance
3 Février 2008 20:50:58

Citation :
Pourquoi tu ne mais pas membre_avatar=NULL plutot que 'pas-d\'avatar' ?


toujours la même question ...

(Au moment de la suppression)
3 Février 2008 20:56:50

modifprofil.php :

  1. //Vérification de l'avatar
  2.  
  3. if (!empty($_FILES['avatar']['size']))
  4. {
  5.  
  6. //On définit les variables :
  7.  
  8. $maxsize = 30072; //Poid de l'image
  9. $maxwidth = 100; //Largeur de l'image
  10. $maxheight = 100; //Longueur de l'image
  11.  
  12. //Liste des extensions valides
  13.  
  14. $extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' );
  15.  
  16. if ($_FILES['avatar']['error'] > 0)
  17. {
  18. $avatar_erreur = "Erreur lors du tranfsert de l'avatar : ";
  19. }
  20. if ($_FILES['avatar']['size'] > $maxsize)
  21. {
  22. $i++;
  23. $avatar_erreur1 = "Le fichier est trop gros :
  24. (".$_FILES['avatar']['size']." Octets
  25. contre".$maxsize." Octets)";
  26. }
  27.  
  28. $image_sizes = getimagesize($_FILES['avatar']['tmp_name']);
  29. if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight)
  30. {
  31. $i++;
  32. $avatar_erreur2 = "Image trop large ou trop longue :
  33. (".$image_sizes[0]."x".$image_sizes[1]." contre
  34. ".$maxwidth."x".$maxheight." )";
  35. }
  36.  
  37. $extension_upload = strtolower(substr( strrchr($_FILES['avatar']['name'], '.') ,1));
  38. if (!in_array($extension_upload,$extensions_valides) )
  39. {
  40. $i++;
  41. $avatar_erreur3 = "Extension de l\'avatar incorrecte</p>";
  42. }
  43. }
  44.  
  45. ?>
  46.  
  47. <?php
  48.  
  49. echo'<p><a href ="./index.php">Index du forum</a> / <a href="./voirprofil.php?action=modifier">Modification du profil</a></p>';
  50.  
  51. // Si $i est vide, il n'y a pas d'erreur
  52.  
  53. if ($i == 0)
  54. {
  55. if (($_FILES['avatar']['size'])!= 0)
  56. {
  57.  
  58. //On déplace l'avatar
  59.  
  60. $avatar = time();
  61. $nom_avatar = str_replace(' ','',$avatar).".".$extension_upload;
  62. $avatar = "images/avatars/".str_replace(' ','',$avatar).".".$extension_upload;
  63. move_uploaded_file($_FILES['avatar']['tmp_name'],$avatar);
  64.  
  65. //* on met à jour la bdd */
  66.  
  67. mysql_query("UPDATE forum_membres
  68. SET membre_avatar = '".$nom_avatar."'
  69. WHERE membre_id = '".$_SESSION['id']."'" );
  70. }
  71. else
  72. {
  73. mysql_query("UPDATE forum_membres SET membre_avatar =NULL WHERE membre_id = '".$_SESSION['id']."'" );
  74. }
  75.  
  76. //Une nouveauté ici : on peut choisisr de supprimer l'avatar
  77.  
  78. if (isset($_POST['delete']))
  79. {
  80. mysql_query("UPDATE forum_membres SET membre_avatar=NULL WHERE membre_id = '".$_SESSION['id']."'" );
  81. }
  82. }




menu de gauche :

  1. <?php
  2. if (isset($_SESSION['pseudo']))
  3.  
  4. // Si le membre est connecté
  5.  
  6. {
  7. echo'<p align="center" class="texte_blanc">Bienvenue, <a href="./voirprofil.php?m='.$_SESSION['id'].'&action=consulter" class="texte_vert" >'.$_SESSION['pseudo'].'</a><br /><br />';
  8. $avatarmembre=addslashes($data2['membre_avatar']);
  9. if(empty($data1['membre_avatar']))
  10. {
  11. echo '<img src="images/avatar.gif" alt="avatar par défault" title="avatar par défault" />';
  12. }
  13. else
  14. {
  15. echo'<img src="images/avatars/'.$data2['membre_avatar'].'" alt="son avatar" /></p>';
  16. }
  17. ?>
  18.  
  19. <ul class="carre">
  20.  
  21. <li><a href="voirprofil.php" class="texte_vert">Votre Profil</a></li>
  22. <li><a href="messagesprives.php" class="texte_vert">Voir sa messagerie</a></li>
  23. <li><a href="voirprofil.php?action=modifier" class="texte_vert">Modification du profil</a></li>
  24. </ul>
  25. <?php
  26. }
  27. else
  28. {
  29. echo '<p align="center" class="texte_blanc">Bienvenue, Visiteurs<br /><br />';
  30. echo '<img src="images/avatar.gif" alt="avatar par défault" title="avatar par défault" /></p>';
  31. }
  32. ?>
  33.  
  34. <?php
  35. if (isset($_SESSION['pseudo']))
  36.  
  37. // Si le membre est connecté
  38.  
  39. {
  40.  
  41. ?>
  42.  
  43. <ul class="carre">
  44.  
  45. <li><a href="deconnexion.php" class="texte_vert">Déconnexion</a></li>
  46. </ul>
  47.  
  48. <?php
  49.  
  50. }
  51. else
  52. {
  53.  
  54. ?>
  55.  
  56. <p align="center" class="texte_blanc">
  57.  
  58. <form method="post" action="connexionok.php">
  59.  
  60. <input size="15" type="text" name="pseudo" id="pseudo" value="Votre Pseudo" maxlength="25" onfocus="if(this.value=='Votre Pseudo'){this.value='';}" />
  61. <br />
  62. <br />
  63. <input size="15" type="password" name="password" id="password" value="password" maxlength="25" onfocus="if(this.value=='password'){this.value='';}" />
  64. <br />
  65. <label>Se souvenir de moi ?</label><input type="checkbox" name="souvenir" />
  66. <br />
  67. <input type="submit" value="Connexion" /></form>
  68. <br />
  69. <a href="./register.php" class="texte_vert">Pas encore inscrit ?</a>
  70. <br />
  71. <br />
  72. ------------------</p>
  73.  
  74. <?php
  75. }
  76. ?>



Test avec ce code ...

Et utilise les balises CODE plutot que QUOTE lorsque tu veux mettre du code sur le forum ;) 
3 Février 2008 21:22:02

merci ça m'a l'air de fonctionne en tout cas pour la page voir profil

mais pas dans le menu de gauche il ne veux pas mettre l'avatar que j'ai upload et il reste toujour par l'avatar par défault

et aussi il y as un probléme au niveau de la connexion

car j'ai mis un checkbox donc ce code

<label>Se souvenir de moi ?</label><input type="checkbox" name="souvenir" />
mais ça je sais ou ça viens c'est dans ce code :

  1. if (isset($_POST['souvenir']))
  2. {
  3. $expire = time() + 365*24*3600;
  4. setcookie('pseudo', $_SESSION['pseudo'], $expire);
  5. }


enfin si tu t'est déconnecter et si tu veux éssayé de te reconnecter tu pourras pas à cause du code que j'ai mentionné et pour temps j'ai bien mis en sous des codes ou on vérifie le pseudo et le mdp.

mais on verras aprés avoir résolu l'avatar du menue de gauche qu'il ne veux pas afficher

merci pour ton aide
3 Février 2008 21:24:40

Pour le menu de gauche j'ai fait une erreur dans le code que je t'ai filé ...

  1. if(empty($data1['membre_avatar']))


C'est pas $data1 mais $data2 ...
3 Février 2008 21:31:04

re

ca n'a pas marché data 2
3 Février 2008 23:22:35

Tu as bien fait la modif dans le code du menu de gauche ?
3 Février 2008 23:32:00

oui

j'ai modifié data1 par data2 comme tu as dit


3 Février 2008 23:41:56

Regarde le code HTML de ton menu de gauche lorsque tu es connecté ... je pense que cela vient de la fonction addslashes!

$avatarmembre=addslashes($data2['membre_avatar']);

Je ne pense pas que cette fonction doivent être utilisé dans le menu de gauche ... bien au contraire ! Je pense que le chemin de ton image que tu essaye d'afficher contient toujours les slashes donc qu'il ne la trouve pas sur le serveur...
4 Février 2008 00:07:12

oui le chemin est bon vue que c'est le même code que dans voir profil donc je ne comprend pas mais je verrais ça demain tranquillement

en tout cas je t'en remercie pour ton aide
4 Février 2008 00:18:32

Oui justement mais tu rajoute la fonction addslashes alors qu'elle ne l'est pas dans voir profil ! Donc elle doit être de trop ...
4 Février 2008 00:22:59

j'ai éssayé d'enlenvé le code

$avatarmembre=addslashes($data2['membre_avatar']);

mais ça n'a rien fais et j'ai aussi laissé ce code en enlevant addslashes pour voir mais ça n'a rien fais non plus

et là j'entrain testé d'autre chose pour voir si je trouve

4 Février 2008 00:51:02

et comme tu as pu remarqué il y as soucy à la page connexionok car j'ai mis un cookie pour mémorisé les pseudo et mdp

et j'ai mis un code pour dire souvenir au niveau du pseudo mais il ne veux plus se connecté dés qu'on se déconnecte c'est pour ça il faut se réinscrire à chaque fois

et là j'éssay de voir a ce niveau mais il beugue au niveau de la connexion donc j'entrain de voir ce cours :

http://www.siteduzero.com/tuto-3-11529-1-inscription-et...

mais j'ai bien mis tout les codes ou il faut mais ça n'a pas marché donc c'est pour ça dés qu'on se déconnecte et si tu éssay te connecté il n'a pas voulu donc on est obligé de se réinscrire à chaque fois et pour temps j'(ai bien mis le code ou il faut mais bon j'entrain de revoir ça

4 Février 2008 20:31:53

Fait voir ton code de connexion si tu veux que je (on si d'autres personnes veulent filer un coup de main) regarde voir si je trouve quelque chose.
4 Février 2008 20:58:15

re

je n'ai pas vue ta réponse

voilà j'ai suivie ce tuto

http://www.siteduzero.com/tuto-3-11529-1-inscription-et...

donc voilà le formulaire avec un boutton souvenir de moi

Citation :
<h1>Connexion</h1>

<fieldset>

<form method="post" action="connexionok.php">

<legend>Connexion</legend>
<br />
<label for="pseudo">Pseudo :</label><input name="pseudo" type="text" id="pseudo" />
<br />
<label for="password">Mot de Passe :</label><input type="password" name="password" id="password" />
<br />
<label>Se souvenir de moi ?</label><input type="checkbox" name="souvenir" />
<br />
<p align="center">
<input type="submit" value="Connexion" />
</p>
</form>

<a href="./register.php">Pas encore inscrit ?</a>
</fieldset>


voilà ma page debut.php

Citation :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<?php

if (!empty($titre))

//Si le titre est indiqué, on l'affiche entre les balises <title>

{
echo '<title> '.$titre.' </title>';
}
else

//Sinon, on écrit forum par défaut

{
echo '<title> Forum </title>';
}

?>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="../../design/par_default/par_default.css" rel="stylesheet" media="screen" type="text/css" title="Design"/>
<script type="text/javascript" src="bbcode.js"></script>
</head>

<?php
if (isset ($_COOKIE['souvenir']) && !isset ($_SESSION['pseudo']))
{
$_SESSION['pseudo'] = $_COOKIE['souvenir'];

/* On créé la variable de session à partir du cookie pour ne pas avoir à vérifier 2 fois sur les pages qu'un membre est connecté. */

}
if (isset ($_COOKIE['souvenir']) && isset ($_SESSION['pseudo']))
{
//On est connecté
}
if (!isset ($_COOKIE['souvenir']) && !isset ($_SESSION['pseudo']))
{
//On n'est pas connecté
}
?>
<body>


et pour la page connexionok.php

il faut mettre ce code

Citation :
if (isset($_POST['souvenir']))
{
$expire = time() + 365*24*3600;
setcookie('pseudo', $_SESSION['pseudo'], $expire);
}


et j'ai mis à ce niveau

Citation :
<?php

session_start();

// Message

if (empty($_POST['pseudo']) || empty($_POST['password']) )

//Oublie d'un champ

{
$message = '<p class="texte_blanc">une erreur s\'est produite pendant votre identification. Vous devez remplir tous les champs Cliquez <a href="./connexion.php">ici</a> pour revenir</p>';
}
else

{

//Acces interdit : le membre est déjà connecté

if (isset($_SESSION['pseudo']))

{
$message ='<p class="texte_blanc">Désolé mais vous ne pouvez pas accéder à cette page</p>';
}
else

// Autorisation ok : il reste à voir le mot de passe

{
include("includes/identifiants.php");
mysql_connect($adresse, $nom, $motdepasse);
mysql_select_db($database);

//On enlève les balises html éventuelles

$pseudo = htmlspecialchars($_POST['pseudo'], ENT_QUOTES);
$password = htmlspecialchars($_POST['password'], ENT_QUOTES);

$requete1 = mysql_query(' SELECT membre_mdp, membre_id, membre_rang
FROM forum_membres WHERE membre_pseudo = "'.$pseudo.'" ')
or die (mysql_error());
$data1 = mysql_fetch_assoc($requete1);

if ($data1['membre_mdp'] == md5($password))

// Acces OK !

{
$_SESSION['pseudo'] = $pseudo;
$_SESSION['level'] = $data1['membre_rang'];
$_SESSION['id'] = $data1['membre_id'];

$message = '<p class="texte_blanc">Bienvenue '.$_SESSION['pseudo'].', vous êtes maintenant connecté!
<br />
Cliquez <a href="./index.php">ici</a> pour revenir à la page d\'accueil</p>';
}

else

if (isset($_POST['souvenir']))
{
$expire = time() + 365*24*3600;
setcookie('pseudo', $_SESSION['pseudo'], $expire);
}

// Acces pas OK !

{
$message = '<p class="texte_blanc">Une érreur s\'est produite pendant votre identification. Le mot de passe ou le pseudo entré n\'est pas correcte. Cliquez <a href="./connexion.php">ici</a> pour revenir à la page précédente.
<br />
<br />
Cliquez <a href="./index.php">ici</a> pour revenir à la page d\'accueil</p>';
}
}
}

//Ici seulement on affiche la page

include("includes/debut.php");

?>

<?php

echo $message;

?>


voilà le probléme pour la connexion comme ta pu remarqué

je ne sais pas ou est mon érreur car j'ai suivi le tuto

et pour l'histoire de l'avatar es ce que ta pu trouvé pour quoi il ne veut pas affiché l'avatar des membres

merci d'avance
4 Février 2008 22:02:59

Essaye cela plutot :

  1. <?php
  2.  
  3. session_start();
  4.  
  5. // Message
  6.  
  7. if (empty($_POST['pseudo']) || empty($_POST['password']) )
  8.  
  9. //Oublie d'un champ
  10.  
  11. {
  12. $message = '<p class="texte_blanc">une erreur s\'est produite pendant votre identification. Vous devez remplir tous les champs Cliquez <a href="./connexion.php">ici</a> pour revenir</p>';
  13. }
  14. else
  15.  
  16. {
  17.  
  18. //Acces interdit : le membre est déjà connecté
  19.  
  20. if (isset($_SESSION['pseudo']))
  21.  
  22. {
  23. $message ='<p class="texte_blanc">Désolé mais vous ne pouvez pas accéder à cette page</p>';
  24. }
  25. else
  26.  
  27. // Autorisation ok : il reste à voir le mot de passe
  28.  
  29. {
  30. include("includes/identifiants.php" );
  31. mysql_connect($adresse, $nom, $motdepasse);
  32. mysql_select_db($database);
  33.  
  34. //On enlève les balises html éventuelles
  35.  
  36. $pseudo = htmlspecialchars($_POST['pseudo'], ENT_QUOTES);
  37. $password = htmlspecialchars($_POST['password'], ENT_QUOTES);
  38.  
  39. $requete1 = mysql_query(' SELECT membre_mdp, membre_id, membre_rang
  40. FROM forum_membres WHERE membre_pseudo = "'.$pseudo.'" ')
  41. or die (mysql_error());
  42. $data1 = mysql_fetch_assoc($requete1);
  43.  
  44. if ($data1['membre_mdp'] == md5($password))
  45.  
  46. // Acces OK !
  47.  
  48. {
  49. $_SESSION['pseudo'] = $pseudo;
  50. $_SESSION['level'] = $data1['membre_rang'];
  51. $_SESSION['id'] = $data1['membre_id'];
  52.  
  53. $message = '<p class="texte_blanc">Bienvenue '.$_SESSION['pseudo'].', vous êtes maintenant connecté!
  54. <br />
  55. Cliquez <a href="./index.php">ici</a> pour revenir à la page d\'accueil</p>';
  56.  
  57. if (isset($_POST['souvenir']))
  58. {
  59. $expire = time() + 365*24*3600;
  60. setcookie('pseudo', $_SESSION['pseudo'], $expire);
  61. }
  62.  
  63. }
  64.  
  65. else
  66.  
  67. // Acces pas OK !
  68.  
  69. {
  70. $message = '<p class="texte_blanc">Une érreur s\'est produite pendant votre identification. Le mot de passe ou le pseudo entré n\'est pas correcte. Cliquez <a href="./connexion.php">ici</a> pour revenir à la page précédente.
  71. <br />
  72. <br />
  73. Cliquez <a href="./index.php">ici</a> pour revenir à la page d\'accueil</p>';
  74. }
  75. }
  76. }
  77.  
  78. //Ici seulement on affiche la page
  79.  
  80. include("includes/debut.php" );
  81.  
  82. ?>
  83.  
  84. <?php
  85.  
  86. echo $message;
  87.  
  88. ?>



Ton code pour tester si la case se souvenir de moi est mal placé il me semble... et STP, n'utilise plus les sitations (QUOTE) lorsque tu met du code mais plutit les balises CODES car c'est vraiment super chiant de lire du code dans les sitations ... c'est tout gris et c'est pas bien aligné...
4 Février 2008 22:29:24

excuse moi je n'ai pas encore pris l'habitude

mais pour ton code à vrai dire j'avais déjà éssayer de mettre le code plus haut pour voir et j'ai aussi mis autre part mais ça n'as rien fait il ne veut pas se connecté
4 Février 2008 22:42:52

En tout cas une chose est sur il n'était pas bien placer dans ton code ... après en effet e n'est peut-etre pas la seule erreur ...
4 Février 2008 22:47:07

c 'est sur il est mal placé mais j'entrin de revoir ça

mais en tout cas je t'en remercie pour ton aide
4 Février 2008 22:56:46

normalement il devrait etre placer comme sur le code que j'ai mis plus haut
4 Février 2008 23:12:19

oui moi aussi vue qu'il dit il faut qu'il soit placé vers le pseudo et le mot de pass donc je suis tout à fait ok avec toi et j'ai vue sur un forum qu'une personne à rencontrer le même probléme mais il n'a jamais eu de réponse

mais je vais le posé sur un autre forum peux être ils doivent savoir

mais en tout ça je te souhaite une bonne soirée
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS