prepare('SELECT membre_pseudo, membre_avatar,
membre_email, membre_msn, membre_signature, membre_siteweb, membre_post,
membre_inscrit, membre_localisation
FROM forum_membres WHERE membre_id=:membre');
$query->bindValue(':membre',$membre, PDO::PARAM_INT);
$query->execute();
$data=$query->fetch();
//On affiche les infos sur le membre
echo '
Vous êtes ici : Index du forum -->
profil de '.stripslashes(htmlspecialchars($data['membre_pseudo']));
echo'
Profil de '.stripslashes(htmlspecialchars($data['membre_pseudo'])).'
';
echo'
';
echo'Adresse E-Mail :
'.stripslashes(htmlspecialchars($data['membre_email'])).'
';
echo'MSN Messenger : '.stripslashes(htmlspecialchars($data['membre_msn'])).'
';
echo'Site Web :
'.stripslashes(htmlspecialchars($data['membre_siteweb'])).'
';
echo'Ce membre est inscrit depuis le
'.date('d/m/Y',$data['membre_inscrit']).'
et a posté '.$data['membre_post'].' messages
';
echo'Localisation : '.stripslashes(htmlspecialchars($data['membre_localisation'])).'
';
$query->CloseCursor();
break;
?>
prepare('SELECT membre_pseudo, membre_email,
membre_siteweb, membre_signature, membre_msn, membre_localisation,
membre_avatar
FROM forum_membres WHERE membre_id=:id');
$query->bindValue(':id',$id,PDO::PARAM_INT);
$query->execute();
$data=$query->fetch();
echo 'Vous êtes ici : Index du forum --> Modification du profil';
echo '
Modifier son profil
';
echo '';
$query->CloseCursor();
}
else //Sinon on est dans la page de traitement
{
//On déclare les variables
$mdp_erreur = NULL;
$email_erreur1 = NULL;
$email_erreur2 = NULL;
$msn_erreur = NULL;
$signature_erreur = NULL;
$avatar_erreur = NULL;
$avatar_erreur1 = NULL;
$avatar_erreur2 = NULL;
$avatar_erreur3 = NULL;
//Encore et toujours notre belle variable $i :p
$i = 0;
$temps = time();
$signature = $_POST['signature'];
$email = $_POST['email'];
$msn = $_POST['msn'];
$website = $_POST['website'];
$localisation = $_POST['localisation'];
$pass = md5($_POST['password']);
$confirm = md5($_POST['confirm']);
//Vérification du mdp
if ($pass != $confirm || empty($confirm) || empty($pass))
{
$mdp_erreur = "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)
//On commence donc par récupérer le mail
$query=$db->prepare('SELECT membre_email FROM forum_membres WHERE membre_id =:id');
$query->bindValue(':id',$id,PDO::PARAM_INT);
$query->execute();
$data=$query->fetch();
if (strtolower($data['membre_email']) != strtolower($email))
{
//Il faut que l'adresse email n'ait jamais été utilisée
$query=$db->prepare('SELECT COUNT(*) AS nbr FROM forum_membres WHERE membre_email =:mail');
$query->bindValue(':mail',$email,PDO::PARAM_STR);
$query->execute();
$mail_free=($query->fetchColumn()==0)?1:0;
$query->CloseCursor();
if(!$mail_free)
{
$email_erreur1 = "Votre adresse email est déjà utilisé 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}$#", $email) || empty($email))
{
$email_erreur2 = "Votre nouvelle adresse E-Mail n'a pas un format valide";
$i++;
}
}
//Vérification de l’adresse MSN
if (!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $msn) && !empty($msn))
{
$msn_erreur = "Votre nouvelle adresse MSN n'a pas un format valide";
$i++;
}
//Vérification de la signature
if (strlen($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";
}
}
?>
Vous êtes ici : Index du forum --> Modification du profil';
echo 'Modification d\'un profil
';
if ($i == 0) // Si $i est vide, il n'y a pas d'erreur
{
if (!empty($_FILES['avatar']['size']))
{
$nomavatar=move_avatar($_FILES['avatar']);
$query=$db->prepare('UPDATE forum_membres
SET membre_avatar = :avatar
WHERE membre_id = :id');
$query->bindValue(':avatar',$nomavatar,PDO::PARAM_STR);
$query->bindValue(':id',$id,PDO::PARAM_INT);
$query->execute();
$query->CloseCursor();
}
//Une nouveauté ici : on peut choisis de supprimer l'avatar
if (isset($_POST['delete']))
{
$query=$db->prepare('UPDATE forum_membres
SET membre_avatar=0 WHERE membre_id = :id');
$query->bindValue(':id',$id,PDO::PARAM_INT);
$query->execute();
$query->CloseCursor();
}
echo'Modification terminée
';
echo'Votre profil a été modifié avec succès !
';
echo'Cliquez ici
pour revenir à la page d accueil
';
//On modifie la table
$query=$db->prepare('UPDATE forum_membres
SET membre_mdp = :mdp, membre_email=:mail, membre_msn=:msn, membre_siteweb=:website,
membre_signature=:sign, membre_localisation=:loc
WHERE membre_id=:id');
$query->bindValue(':mdp',$pass,PDO::PARAM_INT);
$query->bindValue(':mail',$email,PDO::PARAM_STR);
$query->bindValue(':msn',$msn,PDO::PARAM_STR);
$query->bindValue(':website',$website,PDO::PARAM_STR);
$query->bindValue(':sign',$signature,PDO::PARAM_STR);
$query->bindValue(':loc',$localisation,PDO::PARAM_STR);
$query->bindValue(':id',$id,PDO::PARAM_INT);
$query->execute();
$query->CloseCursor();
}
else
{
echo'Modification interrompue
';
echo'Une ou plusieurs erreurs se sont produites pendant la modification du profil
';
echo''.$i.' erreur(s)
';
echo''.$mdp_erreur.'
';
echo''.$email_erreur1.'
';
echo''.$email_erreur2.'
';
echo''.$msn_erreur.'
';
echo''.$signature_erreur.'
';
echo''.$avatar_erreur.'
';
echo''.$avatar_erreur1.'
';
echo''.$avatar_erreur2.'
';
echo''.$avatar_erreur3.'
';
echo' Cliquez ici pour recommencer
';
}
} //Fin du else
break;
default; //Si jamais c'est aucun de ceux là c'est qu'il y a eu un problème :o
echo'Cette action est impossible
';
} //Fin du switch
?>