Script pour afficher l'action actuelle des membres.

Craw
Invité n'ayant pas de compte PHPfrance

18 mai 2007, 21:03

Bonjour, :D

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 :wink:

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

Mammouth du PHP | 991 Messages

18 mai 2007, 21:17

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
DevOps, Symfony4, Hoa

Craw
Invité n'ayant pas de compte PHPfrance

18 mai 2007, 21:27

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 + ;)

Mammouth du PHP | 991 Messages

18 mai 2007, 22:44

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
DevOps, Symfony4, Hoa

Mammouth du PHP | 991 Messages

18 mai 2007, 22:47

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
DevOps, Symfony4, Hoa

Craw
Invité n'ayant pas de compte PHPfrance

19 mai 2007, 15:26

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 :wink:

A +

Mammouth du PHP | 991 Messages

19 mai 2007, 16:57

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
DevOps, Symfony4, Hoa

Craw
Invité n'ayant pas de compte PHPfrance

19 mai 2007, 17:34

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 ;)

Mammouth du PHP | 991 Messages

19 mai 2007, 18:38

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
DevOps, Symfony4, Hoa

Craw
Invité n'ayant pas de compte PHPfrance

19 mai 2007, 20:00

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 + :wink:

Mammouth du PHP | 991 Messages

19 mai 2007, 21:07

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
DevOps, Symfony4, Hoa

Craw
Invité n'ayant pas de compte PHPfrance

19 mai 2007, 22:10

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à ;)

Mammouth du PHP | 804 Messages

20 mai 2007, 17:27

tu aura intérêt à optimiser si ton site est très visité :lol: , moi j'avais fais la même chose mais pour tout les visiteurs , j'ai vite arrêté le masacre :shock:

Craw
Invité n'ayant pas de compte PHPfrance

20 mai 2007, 18:40

Oui je sais ;)
Sinon pour mon problème, j'ai fait la table pour le moment :wink:

Mammouth du PHP | 804 Messages

20 mai 2007, 20:03

sinon c'est asser facile à faire :wink: