Page 1 sur 2
Script pour afficher l'action actuelle des membres.
Posté : 18 mai 2007, 21:03
par Craw
Bonjour,
Je poste ici car je cherche depuis un bon moment comment faire un script qui affiche ce que mes membres font actuellement sur mon site, je veux en gros afficher le titre de la page sur laquelle ils sont mais je ne sais pas comment faire
On m'a déjà expliqué quelques trucs (faire une fonction) mais ça m'affichait une page blanche
Sachant que j'ai déjà mon espace membre (j'ai une table membres) et il ne me manque plus que ce script pour que mon espace membre soit complet
J'ai aussi une administration (à part, ça marche avec les sessions et non avec l'espace membre).
Voilà, je voudrai donc faire ceci mais je ne sais pas du tout comment procéder
Si quelqu'un peut m'aider ce serait gentil
Merci d'avance.
Craw
Posté : 18 mai 2007, 21:17
par thehawk
Tu peux suivre une methode similaire :
Tu crée un table pour contenir les actions par exemple : traqueur
dedans tu met 3 champ ou plus :
1- Id en auto_incremente
2- Ip afin de determiner les actions de qui
3- Page le titre de la page
4- Date au format timestamp ou autre
Ensuite pour chaque page tu fais appel a une fonction par exemple traqueur()
qui a aura pour but de mettre dans ta base les action action par un simple
mysql_query("INSERT INTO traqueur '',".$ip.",".$nom_de_la_page.",".$timestamp."");
Puis enfin tu liste dans une autre page le contenu de la table traqueur en fonction de la date
@+ thehawk
Ps: ceci est un exemple coder a la va vite et il ne represente que les actions majeurs a faire tu auras sans doutes besoin d'étapes intermediaire mais cela ne depend que tes facultés a coder , la complexité de ton projet , et la disposition de ton site...
bon codage
Posté : 18 mai 2007, 21:27
par Craw
Au faite c'est ce qu'on m'avait dit de faire mais je bloque, à la fin j'ai une page blanche.
Moi c'était pareil sauf que c'était une table
actions.
Sinon comment détecter que par exemple c'est
Craw qui visite telle ou telle page si on ne se connecte même pas à la table
membres de mon espace membre, je n'arrive pas à voir le rapport, désolé
PS : Le reste j'y suis arrivé comme un rien mais avec ce script je bloque je ne sais pas pourquoi ...
Merci de m'aider et/ou de me montrer un tutoriel qui explique tout ça, ce serait le top
A +

Posté : 18 mai 2007, 22:44
par thehawk
Montre nous ton code et on tentera de te le debuguer mais pour cela il nous faut un code a voir ainsi que toutes informations pouvant facilté le debugage
@+ thehawk
Posté : 18 mai 2007, 22:47
par thehawk
Sinon comment détecter que par exemple c'est Craw qui visite telle ou telle page si on ne se connecte même pas à la table membres de mon espace membre
Pour cela remplace la colonne pour les ip par l'id des membres qui se mettra a jour avec une session ou encore rajoute une colonne ip qui associera un id a une adresse ip
@+ thehawk
Posté : 19 mai 2007, 15:26
par Craw
Ok voici le code
Code : Tout sélectionner
<h2>Liste des membres</h2>
<?php
mysql_connect('localhost', 'root', '');
mysql_select_db('bdd');
function action($page = $_SERVER['SERVER_NAME'], $action = $page, $timestamp = time(), $membre_id) //$page = reponse.php; "action" = "réponse à un sujet" et l'id du membre
{
mysql_query('INSERT INTO membres VALUES($membre_id, $page, $action, $timestamp)');
return true;
}
?>
<table><tr>
<th>Pseudo</th>
<th>Son adresse e-mail</th>
<th>Ce qu'il fait en ce moment</th>
<th>Localisation</th>
</tr>
<?php
$retour = mysql_query('SELECT * FROM membres ORDER BY membre_id DESC');
while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les membres
{
?>
<tr>
<td><?php echo stripslashes($donnees['membre_pseudo']); ?></td>
<td><a href="mailto:<?php echo stripslashes($donnees['membre_email']); ?>">Envoyer un e-mail à ce membre</a>
<br/><strong>Email:</strong><?php echo stripslashes($donnees['membre_email']); ?></td>
<td><?php echo stripslashes($donnees['action']); ?></td>
<td><?php echo stripslashes($donnees['membre_localisation']); ?></td>
</tr>
<?php
} // Fin de la boucle qui liste les membres.
?>
</table>
Merci de m'aider
A +
Posté : 19 mai 2007, 16:57
par thehawk
Montre nous aussi la composition de ta base de données et les actions precises que tu veux faire , les action deja mit en place etc est peut etre le code qui ne ne marche pas
Posté : 19 mai 2007, 17:34
par Craw
Salut
Voici ma base de données pour la table
membres
Code : Tout sélectionner
- page, text.
- action (par défaut égale à page), varchar(255)
- timestamp, int(11)
- membre_id, int(11), auto_increment
- membre_pseudo, varchar(30)
- membre_email, varchar(250)
- membre_mdp, varchar(32)
- membre_msn, varchar(250)
- membre_siteweb, varchar(100)
- membre_localisation, varchar(100)
- membre_signature, varchar(200)
- membre_inscrit, int(11), valeur par défaut : 0
- membre_derniere_visite, int(11), valeur par défaut : 0
A noter que tous ces champs ont un NOT NULL et que le champ membre_id a une clef de type primaire (PRIMARY KEY).
Le code qui ne marche pas est celui que je t'ai donné.
Et je veux donc afficher dans mon troisième <td>...</td> ce que le membre fait actuellement sur mon site, je veux afficher le titre de la page sur laquelle il est.

Si possible afficher la catégorie puis l'action effectuée sur celle-ci. (exemple : Catégorie = Forum de PHPFrance | Action = Lecture d'un topic).
Merci de m'aider, a +
PS : Il y a des champs dont je ne me sert pas

Posté : 19 mai 2007, 18:38
par thehawk
je viens juste de penser a un truc ta regarder dans ta base si les donnée (action) sont exact ? car comment afficher une action si elle n'est pasinscrite dans la base
@+ thehawk
Posté : 19 mai 2007, 20:00
par Craw
Salut,
Bah au faite ça m'affiche une page blanche ce code rien du tout ne s'enregistre, c'est juste une erreur de code je pense mais je ne trouve pas
Quand j'enlève la fonction ça marche sinon rien
Merci de ton aide.
A +

Posté : 19 mai 2007, 21:07
par thehawk
On va proceder par etape :
La premiere inscrire dans la base de données les information voulue c'est a dire en fonction de chaque membre mettre l'action , je te conseillerai de mettre ca dans une table différentes qui comportera 4 colonne une pour l'id , l'autre pour l'id du membre , la troisième pour l'action et la quatrieme pour l'heure de l'action .
Une fois fait reconctacte nous
Posté : 19 mai 2007, 22:10
par Craw
Voilà c'est fait
J'ai crée ma table
actions avec 4 champs : id, ip, action et timestamp_action
id a une clef primaire et est en int(11) en auto_increment, ip est en int(11), action est en varchar(255) et enfin timestamp_action est en int(11).
Voilà

Posté : 20 mai 2007, 17:27
par dogmongo
tu aura intérêt à optimiser si ton site est très visité

, moi j'avais fais la même chose mais pour tout les visiteurs , j'ai vite arrêté le masacre

Posté : 20 mai 2007, 18:40
par Craw
Oui je sais

Sinon pour mon problème, j'ai fait la table pour le moment

Posté : 20 mai 2007, 20:03
par dogmongo
sinon c'est asser facile à faire
