Liste des connectés

Fermé
Ika Pro Messages postés 149 Date d'inscription lundi 12 novembre 2012 Statut Membre Dernière intervention 30 octobre 2013 - 6 déc. 2012 à 20:52
Ika Pro Messages postés 149 Date d'inscription lundi 12 novembre 2012 Statut Membre Dernière intervention 30 octobre 2013 - 8 déc. 2012 à 14:44
Bonjour,


Je reviens vers vous afin d'avoir de l'aide sur un point.

En faite, j'aimerais que les visiteurs "ENREGISTRE" donc, ils voient ma liste des membres connecté mais, car, il y à un mais, j'aimerais que les membres puissent directement cliquer sur le pseudo du membre connecté pour tomber sur le profil du membre choisi.

Voici ma ligne de code qui affiche les pseudo connecté :

echo $dn2['username'];

Si vous avez une idée, je suis preneur merci bien par avance.

4 réponses

ced3E Messages postés 101 Date d'inscription mardi 28 décembre 2010 Statut Membre Dernière intervention 9 janvier 2013 2
Modifié par ced3E le 6/12/2012 à 21:37
je ne sais pas comment est ton code, il est difficile de répondre . . .

tu fais une boucle pour afficher les membres connectés normalement.

Donc dans ton select tu prend l' id aussi que tu mets en lien sur le pseudo.

Exemple :

<a href="Ta page membre?id=<?php echo $data['id']; ?>"> <?php echo $data['pseudo']; ?> </a>
mais bon je ne sais pas comment est charger ta page membre .
1
Ika Pro Messages postés 149 Date d'inscription lundi 12 novembre 2012 Statut Membre Dernière intervention 30 octobre 2013 4
6 déc. 2012 à 21:49
Tu veux que je t'envoie mon code de ma page ou se trouve le profile des membre (profile.php chez moi)

Si c'est ça, voila le code :

<?php
include('config.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
<title>Profil d'un utilisateur</title>
</head>
<body>
<div class="header">
<a href="<?php echo $url_home; ?>"><img src="<?php echo $design; ?>/images/logo.png" alt="Espace Membre" /></a>
</div>
<div class="content">
<?php
//On verifie que lidentifiant de lutilisateur est defini
if(isset($_GET['id']))
{
$id = intval($_GET['id']);
//On verifie que lutilisateur existe
$dn = mysql_query('select username, email, rang, avatar, signup_date from users where id="'.$id.'"');
if(mysql_num_rows($dn)>0)
{
$dnn = mysql_fetch_array($dn);
//On affiche les donnees de lutilisateur
?>
Voici le profil de "<?php echo htmlentities($dnn['username']); ?>" :
<table style="width:500px;">
<tr>
<td><?php
if($dnn['avatar']!='')
{
echo '<img src="'.htmlentities($dnn['avatar'], ENT_QUOTES, 'UTF-8').'" alt="Image Perso" style="max-width:100px;max-height:100px;" />';
}
else
{
echo 'Cet utilisateur n\'a pas d\'image perso.';
}
?></td>
<td class="left"><h1><?php echo htmlentities($dnn['username'], ENT_QUOTES, 'UTF-8'); ?></h1><br />
Rang : <?php echo htmlentities($dnn['rang'], ENT_QUOTES, 'UTF-8'); ?></br>
Email : confidentielle<br />
Cet utilisateur s'est inscrit le <?php echo date('d/m/Y',$dnn['signup_date']); ?></td>
</tr>
</table>
<?php
//On affiche un lien pour envoyer un mp a lutilisateur
if(isset($_SESSION['username']))
{
?>
<br /><a href="new_pm.php?recip=<?php echo urlencode($dnn['username']); ?>" class="big">Envoyer un MP à "<?php echo htmlentities($dnn['username'], ENT_QUOTES, 'UTF-8'); ?>"</a>
<?php
}
}
else
{
echo 'Cet utilisateur n\'existe pas.';
}
}
else
{
echo 'L\'identifiant de l\'utilisateur n\'est pas défini.';
}
?>
</div>
<div class="foot"><a href="index.php">Retour à l'acceuil</a></div>
</body>
</html>
0
ced3E Messages postés 101 Date d'inscription mardi 28 décembre 2010 Statut Membre Dernière intervention 9 janvier 2013 2
6 déc. 2012 à 22:15
comment fais tu pour afficher ta page profile.php tu un lien du style : http//tonsite/ profile.php?id=1
0
Ika Pro Messages postés 149 Date d'inscription lundi 12 novembre 2012 Statut Membre Dernière intervention 30 octobre 2013 4
Modifié par Ika Pro le 6/12/2012 à 23:13
elle se trouve dans ma page "user.php".

<td class="left"><a href="profile.php?id=<?php echo $dnn['id']; ?>"><?php echo htmlentities($dnn['username'], ENT_QUOTES, 'UTF-8'); ?></a></td>

et j'appel ma page "user.php" comme ça :

<a href="users.php">voir la liste des utilisateurs</a>.
0
ced3E Messages postés 101 Date d'inscription mardi 28 décembre 2010 Statut Membre Dernière intervention 9 janvier 2013 2
6 déc. 2012 à 23:57
a tu déjà l' affichage des profiles ? quel est le nom de l' id que tu a donner dans ta table membre en auto incrémentation ?
0
Rodolphe_ Messages postés 1498 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 décembre 2014 285
7 déc. 2012 à 00:46
on parlait de poo la dernière fois.
Si ton site commences à se complexifier tu devrais peut-être y songer.
Déjà utiliser un moteur de template tel smarty pour avoir un minimum de code php mélangé au html.
L'utilité de la poo est que tu crée une classe user avec des méthodes (fonctions) pour la connexion, la déconnexion, l'ajout, l'effacement, le changement de mot de passe, l'affichage des membres connectés ....
L'avantage est que dans ton template tu n'as qu'à créer une instance de la classe user puis appeler les méthodes.
Par exemple quelque chose du genre:
$utilisateur = new user();
$utilisateur->création('paul', '26', 'paris');
$utilisateur->setPassword;
...


c'est vrai que ton site devient plus compliqué à écrire mais ensuite pour la maintenance ou pour ajouter des fonctions ou recréer des pages c'est tout bénef.
0
ced3E Messages postés 101 Date d'inscription mardi 28 décembre 2010 Statut Membre Dernière intervention 9 janvier 2013 2
8 déc. 2012 à 00:21
ok si je comprend bien tu a que la liste et pas la page de chaque utilisateurs

Donc pour faire une page propre a chaque utilisateurs tu a besoin de charger l' id dans le liens de ta page.

exemple : http//tonsite/profil.php?id=10

Sur cette page tu fais une requete sql avec get pour charger tout le contenu de l' utilisateur.

Pour lancer cette page tu mets un lien sur chaque nom d' utilisateur de ta liste.

Pour l' ip utilise cette fonction php $_SERVER["REMOTE_ADDR"]
0
Ika Pro Messages postés 149 Date d'inscription lundi 12 novembre 2012 Statut Membre Dernière intervention 30 octobre 2013 4
8 déc. 2012 à 01:22
Merci beaucoup pour ton aide.

J'aurais encore un petit trucs à demander.

J'aimerais que le mot de passe des membres soit haché dans ma base de donnée.

- Aurais-tu un code d'exemple pour m'aider ?

- Et par la suite que s'il perd sont mot de passe, il puisse récuperer sont mot de passe par mail.

Merci pour le temps que tu m'accorde.
0
si le mot de passe est hashé il n'est pas possible de renvoyer le même mot de passe , il faut en renvoyer un nouveau générer aléatoirement .

il existe plusieurs méthode de hash tel que le md5 , sha256 etc ,, en php on utilise soit la fonction md5() ou hash()
0
Rodolphe_ Messages postés 1498 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 décembre 2014 285
8 déc. 2012 à 01:40
https://www.php.net/manual/fr/function.md5.php
https://www.php.net/manual/fr/function.hash.php

s'il perd son mdp, il vaut mieux lui envoyer un nouveau par mail.
Le principe du chiffre est qu'on ne peux pas le déchiffrer.
0
Ika Pro Messages postés 149 Date d'inscription lundi 12 novembre 2012 Statut Membre Dernière intervention 30 octobre 2013 4
8 déc. 2012 à 01:43
oui ça, je le sais mais quand j'utilise cette fonction, j'ai fais le test avec mon propre compte, quand j'utilise cette fonction md5() ou hash() bin sa hash bien mon mot de pass dans ma base mais quand je veux me connecter sa me met que la combinaison mdp et pseudo est fausse.

Tu aurais pas une solution ?
0
Rodolphe_ Messages postés 1498 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 décembre 2014 285
8 déc. 2012 à 01:45
tu chiffre aussi le mot de passe rentré dans le formulaire de connexion avant de le comparer à la bdd?
0
parcequ'il faut hash le mot de passe inseré dans le champs de saisie , sinon tu compares une chaine de caractere normal avec un hash de 32caracteres donc normal que ça ne correspond pas
0
ced3E Messages postés 101 Date d'inscription mardi 28 décembre 2010 Statut Membre Dernière intervention 9 janvier 2013 2
8 déc. 2012 à 01:44
alors pour le mot de passe tu a la fonction md5

a mettre juste avant l' insertion dans la bdd

exemple :

$password = isset($_POST['password']) ? trim(md5($_POST['password'])) : '';

Pour le login ne pas oublier de mettre md5

exemple : md5($password)


Pour le mot de passe regarde du coté de l' envoi de mail avec php ;)

Par contre comme tu vas utilisé md5 tu es obliger de recré un mot de passe je pense ;)
0
ced3E Messages postés 101 Date d'inscription mardi 28 décembre 2010 Statut Membre Dernière intervention 9 janvier 2013 2
8 déc. 2012 à 01:49
Petit code pour faire un mot de passe aléatoire :

function chaine_aleatoire($nb_car, $chaine = 'azertyuiopqsdfghjklmwxcvbn123456789')
{
$nb_lettres = strlen($chaine) - 1;
$generation = '';
for($i=0; $i < $nb_car; $i++)
{
$pos = mt_rand(0, $nb_lettres);
$car = $chaine[$pos];
$generation .= $car;
}
return $generation;
}

$pw = chaine_aleatoire(8);
0
ced3E Messages postés 101 Date d'inscription mardi 28 décembre 2010 Statut Membre Dernière intervention 9 janvier 2013 2
8 déc. 2012 à 01:49
pour le mail :

$headers ='From: "nom"<adresse@fai.fr>'."\n";
$headers .='Content-Type: text/html; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';

$message ='<html><head><title>Demande de nouveau mot de passe</title></head><body>Votre nouveau mot de passe est : </body></html>';

if(mail('" . $email . "', 'Sujet', $message, $headers))
{
echo 'Le message a été envoyé';
}
else
{
echo 'Le message n\'a pu être envoyé';
}
0
Ika Pro Messages postés 149 Date d'inscription lundi 12 novembre 2012 Statut Membre Dernière intervention 30 octobre 2013 4
8 déc. 2012 à 02:04
Tout d'abord merci pour ton aide.

Par contre le : md5($passeword) je le met ou dans ma page car, il me met toujours combinaison invalide.

Et pour les 2 codes suivant pour la génération aléatoire de mdp et l'envoie du mail, je les met l'un en dessous de l'autre ou faut que je créé une autre page ?

Désolé j'ai jamais fais de renvoye aléatoire de mot de passe
0
Ika Pro Messages postés 149 Date d'inscription lundi 12 novembre 2012 Statut Membre Dernière intervention 30 octobre 2013 4
8 déc. 2012 à 02:14
Réctification, pour le md5($passeword), c'est bon, j'ai trouvé^^

J'aimerais juste savoir ou mettre le code pour la génération de mdp et pour l'envoie du mail.
0
ced3E Messages postés 101 Date d'inscription mardi 28 décembre 2010 Statut Membre Dernière intervention 9 janvier 2013 2
8 déc. 2012 à 02:15
Je sais pas trop comment est ton code pour le login un exemple :

$username = isset($_POST['username']) ? mysql_real_escape_string($_POST['username']) : '';
$password = isset($_POST['password']) ? mysql_real_escape_string(trim($_POST['password'])) : '';
$result = mysql_query("SELECT * FROM members WHERE username = '" . $username . "' AND password = '" . md5($password) . "'");

if(mysql_num_rows($result) > 0 && md5($password)

header ('Location: tonlien');
}
else {
echo 'Impossible de vous connecter.';
}
0